Linux常用基本命令大全_linux基础命令大全-程序员宅基地

技术标签: Linux  运维  linux  服务器  

对服务器来讲,图形界面会占用更多的系统资源,而且会安装更多的服务、开放更多的端口,这对服务器的稳定性和安全性都有负面影响。但是,大家要理解,对服务器来讲,稳定性、可靠性、安全性才是最主要的。而简单易用不是服务器需要考虑的事情,所以学习Linux,这些枯燥的命令是必须学习和记忆的内容

一:命令的基本格式

1、命令提示符

登录系统后,第一眼看到的内容是:

[root@localhost ~]#

这就是Linux系统的命令提示符。那么,这个提示符的含义是什么呢?

  • []:这是提示符的分隔符号,没有特殊含义。
  • root:显示的是当前的登录用户,目前使用的是root用户登录。
  • @:分隔符号,没有特殊含义。
  • localhost:当前系统的简写主机名(完整主机名是localhost.localdomain)。更高主机名的命令: hostname 主机名
  • ~:代表用户当前所在的目录,此例中用户当前所在的目录是家目录。
  • #:命令提示符,Linux用这个符号标识登录的用户权限等级。如果是超级用户,提示符就是#;如果是普通用户,提示符就是$。

2、命令基本格式

接下来看linux中命令的基本格式:

[root@localhost ~]# 命令 [选项] [参数]

命令格式中的 [] 代表可选项,也就是有些命令可以不写选项或参数,也能执行。那么,我们就用Linux中最常见的ls命令来解释一下命令的格式。如果按照命令的分类,那么ls命令应该属于目录操作命令。

[root@localhost ~]# ls
anaconda-ks.cfg

2.1、选项的作用

ls命令之后不加选项和参数也能执行,不过只能执行最基本的功能,即显示当前目录下的文件名。那么加入一个选项,会出现什么结果?

[root@localhost ~]# ls -l
总用量 4
-rw-------. 1 root root 1213 93 15:43 anaconda-ks.cfg

4、命令使用技巧

4.1、善于利用TAB 键

在linux中,利用tab键可以自动不齐命令或路径,从而提高工作效率,通过键盘输入命令后按下 Tab键,即可补齐命令的后半截,当命令不唯一时,屏幕不会进行命令不全,例如输入 s ,按下tab屏幕不会自动补全,因为以s开头的命令不止一个,此时连续按两次tab键,既可以显示所有以这个开头的所有命令,供于我们所选择

4.2、使用命令历史

在linux中输入的命令会被记录,对于已经输入过的命令可以直接调用历史命令记录,使用命令历史最简单的方法就是通过上下键来翻阅历史命令,调用某一行命令可以使用 !32 来调用

4.3、适当清屏

使用Ctrl +l 或者 输入 clear 来清屏

总结:

命令的选项是用来调整命令的功能, 命令的参数是这个命令的操作对象

二:基本命令

1:查看其切换目录

文件或者目录的路径指定其唯一的文件系统位置,跟随文件路径会遍历一个或多个指定的子目录,用正斜杠(/)分割,直到到达目标位置,目录也称为文件夹,包含其他文件和子目录,他们的引用方式可以与文件相同。

绝对路径: 绝对路径是一个完全限定的名称,用于指定文件在文件系统层次结构中的确切位置,它从根(/)目录开始,并指定为到达特定文件所必须遍历的每个子目录,文件系统中的每个文件都有一个唯一绝对路径,可通过一个简单的规则识别:第一个字符是正斜杠(/) 的路径是绝对路径,例如。系统消息日志文件的决定路径是 /var/log/message。 绝对路径以 / 开头的

相对路径: 相对当前所在路径的位置,例如当前所在的位置为/usr,也就是在根目录的usr子目录下,则chsh文件相对当前位置的路径为:bin/chsh 相对路径不是以 / 开头的

1.1:ls

功能描述:列表(List)显示目录内容

**语法:**ls. [选项] [文件/目录]

选项:

-a 显示所有文件,包括隐藏文件与目录

-l 长格式详细信息显示 ( ll )

-d 查看目录属性,而非目录下的资料信息

-h 人性化显示容量信息

-c 显示文件或目录属性最后修改的时间

-t 以修改时间排序,默认按照文件名称排序

-u 显示文件或目录最后被访问的时间

[root@localhost ~]# ls                      #显示当前目录下的子文件与目录名称
[root@localhost ~]# ls /etc                 #显示/etc 目录下的子文件与目录名称
[root@localhost ~]# ls -a                   #查看以.开始的隐藏文件与目录
[root@localhost ~]# ls -l                   #查看文件与目录的详细信息
[root@localhost ~]# ls -ld /root            #查看当前root目录自身的详细信息
[root@localhost ~]# ls -lh                  #人性化显示容量信息
[root@localhost ~]# ls -lc /etc/passwd      #查看/etc/passwd文件的属性变更时间
[root@localhost ~]# ls -lu /etc/passwd      #查看/etc/passwd最后访问时间
[root@localhost ~]# ls -lt                  #查看档案信息并以修改时间排序

1.2:cd

功能描述:切换目录,其中 . 和 … 可以理解为相对路径,例如 cd ./test 表示以当前目录为参考,表示相对于当前, 而 cd /home/test 表示完整的路径,理解为绝对路径)

语法:cd [目录]

范例:
[root@localhost ~]# cd /usr/local/      #切换工作目录到/usr/local/
[root@localhost local]# cd ..           #切换工作目录到当前目录的上一级目录
[root@localhost usr]# cd -              #返回到/usr/local目录
[root@localhost local]# cd           #切换工作目录到当前用户的家目录(或使用命令  cd ~ )
[root@localhost ~]#

1.3:pwd

功能描述:显示当前所在的工作目录

语法:pwd [选项]

选项:

-P 显示链接的真实路径. (软连接)

范例:
[root@localhost bin]# pwd                   #表示返回当前工作目录 /bin
/bin
[root@localhost bin]# pwd -P       #表示返回链接的真实路径 /usr/bin
/usr/bin

1.4:du

功能描述:统计目录及文件的空间占用情况

**语法:**du [选项] [文件或目录]

选项:

-a:统计时包括所有的文件,而不仅仅只统计目录

-h:以更易读的字节单位(K、M等)显示信息

-s:只统计每个参数所占用空间总的大小

范例:
[root@localhost ~]# du -sh /                $查看根目录大小
[root@localhost /]# du -sh *

2:创建目录和文件

文件命名规则

(1)不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符的

(2)文件名不能超过255个字符

(3)区分大小写file File FILE fIle

(4)目录也是文件,在同一路径下,两个文件不能同名

2.1:touch

功能描述:新建空文件,或更新文件时间标记

语法: touch [文件名]

范例:
[root@localhost ~]# touch hellotest.txt                         # 创建一个名字为hellotest.txt 文件
[root@localhost ~]# ll
总用量 4
-rw-------. 1 root root 1213 93 15:43 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 911 10:13 hellotest.txt         #10:13
[root@localhost ~]# touch hellotest.txt                         # 修改名字为hellotest.txt 文件的时间
[root@localhost ~]# ll
总用量 4
-rw-------. 1 root root 1213 93 15:43 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 911 10:14 hellotest.txt         #10:14

2.2:mkdir

功能描述:创建新的目录(Make Directory)

语法: mkdir [选项] [/路径/]目录名

选项:

​ -p 递归创建多级目录

范例:
[root@localhost ~]# mkdir 123                                           #创建了一个目录123
[root@localhost ~]# ls  
123  anaconda-ks.cfg  hellotest.txt
[root@localhost ~]# mkdir -p aaa/bbb/ccc/ddd            #创建了层级目录aaa/bbb/ccc/ddd
[root@localhost ~]# tree ./         #这个命令后面在学,用来显示目录层级信息
./
├── 123
├── aaa
│   └── bbb
│       └── ccc
│           └── ddd
├── anaconda-ks.cfg
└── hellotest.txt

5 directories, 2 files
[root@localhost ~]#

2.3:ln

Linux中的链接文件不同于windows的快捷方式,linux的链接文件份为软链接和硬链接。软链接是可以跨分区,但源文件不可删除,硬链接不可以跨分区,但可以将源文件删除

软链接:

格式:ln -s 原文件 链接文件(目标文件)。一定要写绝对路径

1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

2.软链接可以 跨文件系统 ,硬链接不可以

3.软链接可以对一个不存在的文件名进行链接 (报错红色的)

4.软链接可以对目录进行链接

硬链接:

格式: ln 原文件 链接文件(目标文件)

  1. 硬链接,以文件副本的形式存在。但不占用实际空间。

2.不允许给目录创建硬链接

3.硬链接只有在同一个文件系统中才能创建

  1. 可以以不同的文件名中存在同一个目录中,或者以相同的文件名存在于不同的目录下

5.建立硬链接时,在另外的目录或本目录中增加目标文件的一个目录项,这样,一个文件就登记在多个目录中。

#软链接
[root@localhost ~]# touch hello.txt
[root@localhost ~]# ln -s /root/hello.txt /tmp/hi.txt       #创建文件的软链接
[root@localhost ~]# ll /tmp/hi.txt
lrwxrwxrwx. 1 root root 15 911 11:33 /tmp/hi.txt -> /root/hello.txt

[root@localhost ~]# mkdir test
[root@localhost ~]# ln -s /root/test/ /var/test                 #创建目录的软链接
[root@localhost ~]# ll /var/test
lrwxrwxrwx. 1 root root 11 911 11:33 /var/test -> /root/test/


#硬链接
[root@localhost ~]# ln /root/hello.txt /root/hello-1.txt        #创建硬链接
[root@localhost ~]# rm -rf hello.txt                        #源文件删除后,链接文件仍可以正常使用
[root@localhost ~]# ll /root/hello-1.txt            
-rw-r--r--. 1 root root 0 911 11:32 /root/hello-1.txt

stat  #显示出文件的详细内容 inode 

3:复制、删除、移动目录和文件

3.1:cp

功能描述:复制(Copy)文件或目录

**语法:**cp [选项]… 源文件或目录… 目标文件或目录

选项:

-r:递归复制整个目录树

-a 或-p:保持源文件的属性不变

-f:强制覆盖目标同名文件或目录

-i:需要覆盖文件或目录时进行提醒

[root@localhost ~]# cp /etc/passwd /tmp/         #复制文件/etc/passwd 到 /tmp目录下
[root@localhost ~]# cp /etc/passwd /tmp/password #复制文件 /etc/passwod 到 /tmp目录下并改名为password
[root@localhost ~]# cp -r /var/log/ /tmp/        #复制目录/var/log 到/tmp/目录下

3.2:mv

功能描述:移动(Move)文件或目录 —— 若如果目标位置与源位置相同,则相当于改名

语法: mv [选项]… 源文件或目录… 目标文件或目录

范例:
[root@localhost ~]# mv hellotest.txt hellotest.doc     #将hellotest.txt改名为hellotest.doc
[root@localhost ~]# mv hellotest.doc 123/              #将hellotest.doc移动到123目录下

3.3:rm

功能描述:删除(Remove)文件或目录

语法: rm [选项] [文件或目录]

选项:

-r 删除目录以及目录下的所有内容(递归删除)

-i 删除前,提示是否删除

-f 不提示,强制删除

范例:
[root@localhost ~]# touch test.txt                  #创建了一个名为test.txt的文件
[root@localhost ~]# rm test.txt                         #删除文件test.txt   
rm:是否删除普通空文件 'test.txt'?y           #输入y确认删除 “也是”
[root@localhost ~]# rm -rf 123/                         #删除目录且不提示

4:查找目录和文件

4.1:which

功能描述:查找Linux命令文件并显示所在的位置 —— 搜索范围由 PATH 环境变量指定

语法:which 命令或程序名

root@localhost ~]# which  mkdir   which ssh 
/bin/mkdir
[root@localhost ~]# echo  $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# which  cd           #cd是Shell内部命令,因此查不到对应文件
/usr/bin/which: no cd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

4.2:whereis

功能描述:该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。

该指令只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令。

语法:whereis 命令

选项:

​ -b   只查找二进制文件

​ -m  只查找说明文件

# 使用指令"whereis"查看指令"bash"的位置,输入如下命令:
[root@rhcsa-1 ~]# whereis bash
bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz
注意:以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径。
[root@rhcsa-1 ~]# whereis -b bash
bash: /usr/bin/bash
[root@rhcsa-1 ~]# whereis -m bash
bash: /usr/share/man/man1/bash.1.gz /usr/share/info/bash.info.gz

4.3:find

功能描述:用于查找文件或目录

语法:find [path] -option

选项:

常用查找条件

-name 按文件名称查找

-size 按文件大小查找

-user 按文件属主查找. --用的不多

-type 按文件类型查找

  • f: 文件
  • d: 目录
  • l: 符号链接,软连接

高级查找条件

-perm 按权限进行查找

-ctime(-cmin) 按文件创建时间(天为单位)查找

-atime(-amin) 按访问时间查找

-mtime(-mmin) 修改时间查找

-maxdepth 限制find的递归层级

-! 取反操作

-exec 查找后再执行操作

# 按照名字查找
find /etc -name "resol*.conf"    # 查找/etc/下名字为resol开头以.conf结尾的文件

# 检索空目录
find / -type d -empty            # 检索用户主目录下所有的空目录

# 反义匹配
find /usr -type f ! -name '*.txt'      # 检索 /usr 下所有文件名不以 .txt 为后缀的文件

# 按照时间相关
        -mtime 2 :该文件 2 天前被修改过
        -mtime -2:该文件 2 天以内被修改过
        -mtime +2:该文件距离上次修改已经超过 2 天时间
find /usr -type f -mtime +50 -mtime -100    # 检索 /usr 下 50100 天之前修改过的文件
find /usr -type f -mtime 2 -amin 5    # 检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件

# 按照文件大小查找
# 表示文件大小的单位由以下字符组成(使用 +- 符号表示大于或小于当前条件):
        c:字节
        k:KB
        MMB
        GGB
find / -size +1G 检索文件大小高于 1 GB 的文件
							-100M

# 按照权限查找
find /usr -perm 644     # 搜索 /usr 目录下权限为 644(即 rw-r--r--)的文件

# 限制递归层级
# find 命令默认是以递归的方式检索项目的,这有时候会导致得到的结果数量非常巨大。可以使用 -maxdepth 限制 find 命令递归的层数。
find / -maxdepth 3      # 搜索时向下递归的层数最大为 3

# 逻辑组合
# find 命令支持 “and” 和 “or” 两种逻辑运算,对应的命令选项分别是 -a 和 -o 通过这两个选项可以对搜索条件进行更复杂的组合。
find /   -name *.log  -a -type l
find /   -name *.log  -o -name "*.txt"

# 执行自定义命令
-exec 命令  {
    }  \;

 find  /  -type f  -exec grep -l root {
    } \;
 find   /etc -name “*| xargs grep -nH “root”    # 查找/etc下 name所有 过滤出内容包含hello 的文件内容

5:查看文件内容

5.1:cat

功能描述:显示文件内容(文件内容全部显示出来)

语法:cat [选项] [文件]

选项:

-b 显示行号,空白行不显示行号。

-n 显示行号,包括空白行

范例:
[root@localhost ~]# cat /etc/services
[root@localhost ~]# cat -n /etc/services
[root@localhost ~]# cat -b /etc/services

5.2:more

功能描述:全屏方式分页显示文件内容

语法:more [选项] 文件名…

(空格)或f 显示下一页

(Enter) 显示下一行

q或Q 退出

范例:
[root@localhost ~]# more /var/log/messages

5.3:head

功能描述:查看文件的前几行,默认显示前10行内容。

语法:head [选项] [文件名]

选项:

-c nK 显示文件前nKB的内容 m G

-n 显示文件的前n行的内容

范例:
[root@localhost ~]# head -c 2k /var/log/messages            #查看文件的前2KB的内容
[root@localhost ~]# head -20 /var/log/messages              #查看文件的前20行的内容

5.4:tail

功能描述:查看文件的尾部内容,默认显示末尾10行

语法:tail [选项] [文件]

选项:

-n 显示文件的后n行

-f 动态显示文件内容

-c nK 显示文件末尾nKB的内容

范例:
[root@localhost ~]# tail -c 2K /var/log/messages            #查看文件末尾2KB的内容
[root@localhost ~]# tail -20 /var/log/messages              #查看文件末尾20行内容
[root@localhost ~]# tail -f /var/log/messages                   #实时动态查看文件内容

5.5:less

功能描述:查看分页文件内容,空格(下一页)、方向键(上下回翻)、q键(退出查看)

[root@localhost ~]# less  /var/log/messages 

6:统计文件内容

6.1:wc

功能描述:统计文件中的单词数量(Word Count)等信息

语法:wc [选项]… 目标文件…

选项:

-l 统计行数

-w 统计单词个数

-c 统计字节数

[root@localhost ~]# wc /etc/passwd                      #依次显示文件的行数、单词数、字节数
  23   49 1147 /etc/passwd
[root@localhost ~]# wc -c /etc/passwd                   # 显示文件的字节信息
1147 /etc/passwd
[root@localhost ~]# wc -l /etc/passwd                   #显示文件的行数
23 /etc/passwd      
[root@localhost ~]# wc -w /etc/passwd                   #显示文件的单词个数
49 /etc/passwd

7:检索和过滤文件内容

7.1:grep

功能描述:在文件中查找并显示包含指定字符串的行

语法:grep [选项]… 查找条件 目标文件

常用命令选项:

-i 查找时忽略大小写

-v 反转查找,输出与查找条件不相符的行

-l 列出文件内容符合指定的样式的文件名称。

-A n 搜索时显示匹配到的那一行以及下n行

-B n 搜索时显示匹配到的那一行以及上n行

-C n 搜索时显示匹配到的那一行以及上下n行

查找条件设置

要查找的字符串以双引号括起来

“^……”表示以……开头

“……$”表示以……结尾

“^$”表示空行

[root@localhost ~]# grep root /etc/passwd                       #在/etc/passwd文件中过滤出包含root的行
[root@localhost ~]# grep --color root /etc/passwd       #对匹配的关键字显示颜色
[root@localhost ~]# grep -i ROOT /etc/passwd                #不区分大小写
[root@localhost ~]# grep -v root  /etc/passwd               #反向过滤
#过滤出hosts文件中的非注释行(不以”#“号开头的行)
[root@localhost ~]# grep -v "^#" /etc/hosts
127.0.0.1       localhost.localdomain   localhost
::1     localhost6.localdomain6 localhost6
#查找系统启动时识别的USB总线信息
[root@localhost ~]# dmesg | grep "USB"
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
USB Universal Host Controller Interface driver v3.0
uhci_hcd 0000:02:00.0: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
ohci_hcd: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ehci_hcd 0000:02:03.0: new USB bus registered, assigned bus number 2
ehci_hcd 0000:02:03.0: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
hub 2-0:1.0: USB hub found

7.2:cut

功能描述:命令用于显示每行从开头算起 num1 到 num2 的文字。

语法:cut [选项]

选项:

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。

-c :以字符为单位进行分割。

-d :自定义分隔符,默认为制表符。

-f :与-d一起使用,指定显示哪个区域。

-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除

# 打印/etc/passwd文件中每一行的第一个字段。
[root@rhcsa-1 ~]# cut -d ":" -f 1 /etc/passwd
root
bin
daemon
....
[root@rhcsa-1 ~]# grep '/bin/bash' /etc/passwd | cut -d ":" -f 1,6
root:/root
redhat:/home/redhat
xiaohong:/home/xiaohong

思考:

如何过滤出机器的IP地址?

7.3:sort

功能描述:用于将文本文件内容加以排序。

语法: sort [选项] [文件]

选项:

-b 忽略每行前面开始出的空格字符。

-c 检查文件是否已经按照顺序排序。

-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。

-f 排序时,将小写字母视为大写字母。

-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。

-m 将几个排序好的文件进行合并。

-M 将前面3个字母依照月份的缩写进行排序。

-n 依照数值的大小排序。

-k 定义排序键值字段

-u 意味着是唯一的(unique),输出的结果是去完重了的。

-o<输出文件> 将排序后的结果存入指定的文件。

-r 以相反的顺序来排序。

-t<分隔字符> 指定排序时所用的栏位分隔字符。

+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

–help 显示帮助。

–version 显示版本信息。

按照数值大小排序:sort -n 文件名
排序并去掉重复的:sort -u 文件名
逆序排序:sort -r 文件名
按照用户uid数字大小排序显示:
sort -t 指定分隔符 -k 指定第几列 -n /etc/passwd  

8:归档和压缩命令

8.1:gzip命令、bzip2命令

*.gz gzip程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.tar tar程序打包的数据,并没有经过压缩
*.tar.gz tar程序打包的文件,其中经过gzip的压缩
*.tar.bz2 tar程序打包的文件,其中经过bzip2的压缩

用途:制作压缩文件、解开压缩文件

命令格式:

​ gzip [-9] 文件名…

​ bzip2 [-9] 文件名…

​ gzip -d .gz格式的压缩文件

​ bzip2 -d *.bz2格式的压缩文件

yum -y install bzip2

常用命令选项

-9 表示高压缩比,多在创建压缩包时用

-d 用于解开已经压缩过的文件

8.2:tar命令

用途:制作归档文件、释放归档文件

格式:tar [选项]… 归档文件名 源文件或目录

​ tar [选项]… 归档文件名 [-C 目标目录]

常用命令选项

-c 创建 .tar 格式的包文件

-x 解开.tar格式的包文件

-v 输出详细信息

-f 表示使用归档文件

-p 打包时保留原始文件及目录的权限

-t 列表查看包内的文件

-C 解包时指定释放的目标文件夹

-z 调用gzip程序进行压缩或解压

-j 调用bzip2程序进行压缩或解压

创建:

​ -czvf

​ -cjvf

解压:

​ -xzvf

​ -xjvf

root@localhost ~]# tar -cjvf test.tar.bz2 /etc/httpd/
tar: 从成员名中删除开头的“/[root@localhost ~]# ls -lh test.tar.bz2
-rw-r--r-- 1 root root 21K 09-09 01:19 test.tar.bz2
[root@localhost ~]# tar jxf test.tar.bz2 -C /tmp
[root@localhost ~]# ls -ld /tmp/etc/httpd/
drwxr-xr-x 4 root root 4096 09-08 16:37 /tmp/etc/httpd/
[root@localhost ~]# rm -rf /tmp/etc/

8.3:如何从linux服务器上传/下载文件

1、客户端是linux的操作系统 服务器-服务器之间传输

从服务器下载普通文件:

scp     用户名@目标IP地址:文件名 目录名

向服务器上传文件:

scp 要上传文件的全路径  用户名@目标IP地址:文件名

2、客户端是windows的操作系统

从windows向linux上传:rz 或者xftp工具

从linux下载文件:sz 文件路径或者xftp工具

yum -y install lrzsz

9:帮助命令

man 手册分段

NAME                        命令名称及功能简要说明
SYNOPSIS                    格式说明,用法说明,包括可用的选项DESCRIPTION,命令功能的详尽说明,可能包括每一个选项的意义
DESCRIPTION                 选项,说明每一个选项的意义
AUTHOR              			作者
REPORTING BUGS      			bug反馈
COPYRIGHT          			 版权
SEE ALSO           			 参见

man 手册章节

一般从1到9哪个章节先出现就显示哪个,如man mount就显示第8章节,那如何知道命令有哪些章节呢?用whatis read去查看

如man read,man 2 read

1 可执行程序或用户命令,/bin,/usr/bin,/usr/local/bin

2 系统内核可调用的函数与工具

3 c库调用

4 特殊文件,如设备文件,系统上的设备文件只是设备的访问入口,文件中不存储任何内容

5 文件格式,配置文件的格式说明,举例passwd

6 games,游戏,休闲益智类的游戏使用帮助

7 杂项,不便归类的杂项,Miscellaneous

8 系统管理员可用的管理命令,/sbin,/usr/sbin,/usr/local/sbin

9 跟kernel有关的文件

man 手册符号说明:

[]表示可选内容

<>必须提供的内容

a|b|c多选一

…同类内容可出现多个

{} 分组

翻屏

下翻一页 空格

上翻一页 b

下翻一行 回车

上翻一行 k

查找关键字

/KEYWORD 向后

n 下一个

N 前一个

?KEYWORD

N 下一个

n 上一个

退出

q

9.1:man

命令名称:man

语法: man [命令或配置文件]

功能描述:获得帮助信息

范例:
$ man ls
......
NAME
     ls -- list directory contents

SYNOPSIS
     ls [-ABCFGHLOPRSTUW@abcdefghiklmnopqrstuwx1%] [file ...]

DESCRIPTION
     For each operand that names a file of a type other than directory, ls
     displays its name as well as any requested, associated information.  For
     each operand that names a file of type directory, ls displays the names
     of files contained within that directory, as well as any requested, asso-
     ciated information.

     If no operands are given, the contents of the current directory are dis-
     played.  If more than one operand is given, non-directory operands are
     displayed first; directory and non-directory operands are sorted sepa-
     rately and in lexicographical order.
......    
$ man services
    查看配置文件services的帮助信息

其中,NAME 为命令的名称与简单藐视

SYNOPSIS 为命令的语法格式

DESCRIPTION 为命令的详细描述,后面一般为命令的俄具体选项以及功能描述

通过<man 命令后> 这种方法可以找到绝大多数命令的用法与描述,

空格键 表示向下翻页

q键 表示退出man手册

在查看命令手册的过程中,随时可以通过</关键字> 来搜索你需要的内容(不包含尖括号),如/file 查看包含file的行,按键盘上的n键查看下一行。

9.2:info

指令名称:info

语法:info [任何命令]

功能描述:获得帮助信息

范例:
$ info ls
    查看ls指令的帮助信息

三:Vim文档编辑

文本编辑器的作用

创建或修改文本文件

维护Linux系统中的各种配置文件

Linux中最常用的文本编辑器

vi:类Unix系统中默认的文本编辑器

vim:vi编辑器的增强版本,习惯上也称为vi(高亮显示)

yum -y install vim

1、vim工作模式

vim具有多种工作模式,常用的工作模式有:普通模式、插入模式、命令模式。

普通模式可以实现基本的光标移动于大量的快捷键操作

插入模式可以实现文本的基本编辑功能

命令模式通过输入特定的指令实现特定的功能,如保存与退出等

直接输入vim命令,即可开启该文本编辑器,默认将创建一个新的文档(保存时需要指定文件名)另外,如果vim命令后跟了文件名参数,则需要看该文件是否存在,如果存在,vim将打开该文件,如果不存在,vim将创建该文件。

vim编辑器默认会进入普通模式,插入模式可以通过以下按键进入:

按键 功能描述
a 进入插入模式,后续输入的内容将插入至当前光标的后面
A 进入插入模式,后续输入的内容将插入至当前光标的断尾
i 进入插入模式,后续输入的内容将插入至当前光标的前面
I 进入插入模式,后续输入的内容将插入至当前光标的段首
o 进入插入模式并在当前行的后面创建新的空白行
O 进入插入模式并在当前行的前面创建新的空白行

当需要退回到普通模式或不知道自己当前处于什么模式时,可以通过Esc键返回到普通模式。

最后,在普通模式下输入“:”,即可进入命令模式; 在“:”后输入指令,即可实现特定的功能

2、vim光标操作

vim中最简单的移动光标的方式是使用方向键(上、下、左、右)操作,但这种方式效率低下,更高效的方式是使用快捷键,常用的快捷键如下,需要注意的是所有的快捷键均在普通模式下直接使用

快捷键 功能描述
h 光标向左移动一位
j 光标向下移动一行(以回车为换行符)
k 光标向上移动一位
I 光标向右移动一位
gg 移动光标至文件首行
G 移动光标至文件末尾
nG 移动光标至第n行(n为数字,如n为10时表示第10行)
^ 光标移至当前行的首字符
$ 光标移至当前行的尾字符
fx 光标移至当前行的下一个x字符处(任意字符)
Fx 光标移至当前行的上一个x字符处
w 光标向右移动一个单词
nw 光标向右移动n个单词(n为数字)
b 光标向左移动一个单词
nb 光标向左移动n个单词(n为数组)

插入模式:

ctrl+w 按照单词删除

3、vim编辑文档

在vim编辑器中编辑文档内容主要有两种常用的方式:进入编辑模式操作和快捷键操作。进入编辑模式后,即可以通过移动光标进行增加、删除、修改的基本操作,这种方法也是最简单的方式,另外,快捷键操作方式是在普通模式下输入相应的快捷键实现对应的功能,快捷键如下:

操作快捷键 功能描述
dd 删除一行
ndd 删除n行(n为数字)
d$ 删除光标至行尾的内容
J 删除换行符,可以将两行合并为一行
u 撤销上一步操作,可以多次使用uu表示撤销两步操作
rx 将光标当前字符替换为x (x为任何键盘单个输入)
yy 复制当前行
nyy 复制n行内容
p 粘贴至当前行之后
P 粘贴至当前行之前

4、vim查找与替换

当文档很长时,我们可以通过查找快速定位要找的内容,在vim中通过

“/” 关键词实现自上往下的查找功能

如 /host 在当前文档的光标处向下查找host并显示,如果一个文档中有多个host,可以通过快捷键 n 跳转至下一个匹配的关键词处, 快捷键 N 将跳转至上一个匹配的关键词处。

“?” 关键词实现了自下往上的查找功能

如 ?host 从房前文档的光标处向上查找host并显示,此时快捷键n表示查看上一匹配,N 表示查找 下一个匹配。

vim提供了非常好用的替换功能,可以快速完成大量的替换工作

例如:

[root@localhost ~]# cp /etc/passwd /root

[root@localhost ~]# vim /root/passwd

通过上面两条命令复制一份临时测试文档并编辑,我们可以对该文件实现多种替换功能

指令 功能描述
:\s/root/admin/ 将光标当前行中第一个出现的root替换为admin,没有则不替换
:\s/root/admin/g 将光标当前行中所有的root替换为admin
:3,5 s/sbin/bin/g 将第三行至第五行之间的所有sbin替换为bin
:% s/nologin/fault/g 将所有行的nologin都替换为fault

5、vim保存并退出

一般情况下,我们会通过命令模式输入特定的质量实现保存与退出功能,如下:

指令 功能描述
:q! 不保存并退出(强制退出)
:wq 保存并退出
:x 保存并退出
:w 保存(不退出)
:w b.txt 另存为 b.txt

6、vim扩展小知识

6.1、显示行号

显示当前行是第几行的方式有很多,可以通过为文档添加行号来实现,添加行号的方法是在命令模式下输入

:set number 或者简写为 :set nu 即可

6.2、忽略大小写

在vim中查找时,你可能不清楚所要找的关键词的大小写,而vim默认是区分大小写的,这个时候可以通过在命令模式下输入

:set ignorecase 实现忽略大小写

6.3、多窗口编辑

当需要同时编辑多个文档时,分割窗口就尤为重要了,最简单的方式是在命令模式下输入 :split 如此可以实现编辑同一个文档的不同行,至于窗口的切换,可以使用快捷键:
默认的 :split 为水平分割窗口,
在这里插入图片描述

垂直分割可以使用 :vsplit 指令。
在这里插入图片描述

记住 Ctrl+w w 跳转即可

Ctrl+w+h|Ctrl+w+I

---------------

Ctrl+w+j|Ctrl+w+k

Ctrl+w+h:快捷键表示跳转至左边一个窗口

Ctrl+w+I: 快捷键表示跳转至右边一个窗口

Ctrl+w+j: 快捷键表示跳转至上面一个窗口

Ctrl+w+k:快捷键表示跳转至下面一个窗口

在命令模式下输入 :close 可以关闭当前窗口

在命令模式下输入 :split second.txt 此命令会分割窗口并打开新的文件

如此实现多窗口多文件的编辑工作,

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/milu_nff/article/details/125812542

智能推荐

FX3/CX3 JLINK 调试_ezusbsuite_qsg.pdf-程序员宅基地

文章浏览阅读2.1k次。FX3 JLINK调试是一个有些麻烦的事情,经常有些莫名其妙的问题。 设置参见 c:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\doc\firmware 下的 EzUsbSuite_UG.pdf 文档。 常见问题: 1.装了多个版本的jlink,使用了未注册或不适当的版本 选择一个正确的版本。JLinkARM_V408l,JLinkA_ezusbsuite_qsg.pdf

用openGL+QT简单实现二进制stl文件读取显示并通过鼠标旋转缩放_qopengl如何鼠标控制旋转-程序员宅基地

文章浏览阅读2.6k次。** 本文仅通过用openGL+QT简单实现二进制stl文件读取显示并通过鼠标旋转缩放, 是比较入门的级别,由于个人能力有限,新手级别,所以未能施加光影灯光等操作, 未能让显示的stl文件更加真实。****效果图:**1. main.cpp```cpp#include "widget.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); _qopengl如何鼠标控制旋转

刘焕勇&王昊奋|ChatGPT对知识图谱的影响讨论实录-程序员宅基地

文章浏览阅读943次,点赞22次,收藏19次。以大规模预训练语言模型为基础的chatgpt成功出圈,在近几日已经给人工智能板块带来了多次涨停,这足够说明这一风口的到来。而作为曾经的风口“知识图谱”而言,如何找到其与chatgpt之间的区别,找好自身的定位显得尤为重要。形式化知识和参数化知识在表现形式上一直都是大家考虑的问题,两种技术都应该有自己的定位与价值所在。知识图谱构建往往是抽取式的,而且往往包含一系列知识冲突检测、消解过程,整个过程都能溯源。以这样的知识作为输入,能在相当程度上解决当前ChatGPT的事实谬误问题,并具有可解释性。

如何实现tomcat的热部署_tomcat热部署-程序员宅基地

文章浏览阅读1.3k次。最重要的一点,一定是degbug的方式启动,不然热部署不会生效,注意,注意!_tomcat热部署

用HTML5做一个个人网站,此文仅展示个人主页界面。内附源代码下载地址_个人主页源码-程序员宅基地

文章浏览阅读10w+次,点赞56次,收藏482次。html5 ,用css去修饰自己的个人主页代码如下:&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;html xmlns="http://www.w3.org/1999/xh..._个人主页源码

程序员公开上班摸鱼神器!有了它,老板都不好意思打扰你!-程序员宅基地

文章浏览阅读201次。开发者(KaiFaX)面向全栈工程师的开发者专注于前端、Java/Python/Go/PHP的技术社区来源:开源最前线链接:https://github.com/svenstaro/gen..._程序员怎么上班摸鱼

随便推点

UG\NX二次开发 改变Block UI界面的尺寸_ug二次开发 调整 对话框大小-程序员宅基地

文章浏览阅读1.3k次。改变Block UI界面的尺寸_ug二次开发 调整 对话框大小

基于深度学习的股票预测(完整版,有代码)_基于深度学习的股票操纵识别研究python代码-程序员宅基地

文章浏览阅读1.3w次,点赞18次,收藏291次。基于深度学习的股票预测数据获取数据转换LSTM模型搭建训练模型预测结果数据获取采用tushare的数据接口(不知道tushare的筒子们自行百度一下,简而言之其免费提供各类金融数据 , 助力智能投资与创新型投资。)python可以直接使用pip安装tushare!pip install tushareCollecting tushare Downloading https://files.pythonhosted.org/packages/17/76/dc6784a1c07ec040e74_基于深度学习的股票操纵识别研究python代码

中科网威工业级防火墙通过电力行业测评_电力行业防火墙有哪些-程序员宅基地

文章浏览阅读2k次。【IT168 厂商动态】 近日,北京中科网威(NETPOWER)工业级防火墙通过了中国电力工业电力设备及仪表质量检验测试中心(厂站自动化及远动)测试,并成为中国首家通过电力协议访问控制专业测评的工业级防火墙生产厂商。   北京中科网威(NETPOWER)工业级防火墙专为工业及恶劣环境下的网络安全需求而设计,它采用了非X86的高可靠嵌入式处理器并采用无风扇设计,整机功耗不到22W,具备极_电力行业防火墙有哪些

第十三周 ——项目二 “二叉树排序树中查找的路径”-程序员宅基地

文章浏览阅读206次。/*烟台大学计算机学院 作者:董玉祥 完成日期: 2017 12 3 问题描述:二叉树排序树中查找的路径 */#include #include #define MaxSize 100typedef int KeyType; //定义关键字类型typedef char InfoType;typedef struct node

C语言基础 -- scanf函数的返回值及其应用_c语言ignoring return value-程序员宅基地

文章浏览阅读775次。当时老师一定会告诉你,这个一个"warning"的报警,可以不用管它,也确实如此。不过,这条报警信息我们至少可以知道一点,就是scanf函数调用完之后是有一个返回值的,下面我们就要对scanf返回值进行详细的讨论。并给出在编程时利用scanf的返回值可以实现的一些功能。_c语言ignoring return value

数字医疗时代的数据安全如何保障?_数字医疗服务保障方案-程序员宅基地

文章浏览阅读9.6k次。十四五规划下,数据安全成为国家、社会发展面临的重要议题,《数据安全法》《个人信息保护法》《关键信息基础设施安全保护条例》已陆续施行。如何做好“数据安全建设”是数字时代的必答题。_数字医疗服务保障方案

推荐文章

热门文章

相关标签