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

智能推荐

TortoiseSVN使用简介_tortoisesvn 文件哪个版本好用-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏16次。TortoiseSVN使用简介_tortoisesvn 文件哪个版本好用

iOS 屏幕适配浅谈-程序员宅基地

文章浏览阅读379次。作者 | 钱凯杏仁移动开发工程师,前嵌入式工程师,关注大前端技术新潮流。前端开发的屏幕适配其实算是基本功,每个码农在长期实践中都有自己的总结。在 iOS 平台上,苹果爸爸对适配的支持个人感觉很不人性化,提供了 AutoLayout、sizeClass 等技术,感觉没有前端类似 flexBox 这样的技术来得灵活。像是点歪了技能树,过于重视使用 xib 配置_cgfloat left 适配

MATLAB中eval函数和cell型数组的组合使用_matlab eval cell-程序员宅基地

文章浏览阅读674次。MATLAB中eval函数和cell型数组的组合使用一、evaleval的功能简单来说就是可以把字符串当做命令来执行。经常用于循环当中,特别是有些变量的名字中含有有规律的数字。二、{ }大括号,用于cell型的数组(就是前面讲的单元数组)的分配或引用。比如 a{3,3}=‘china’就是建立了一个3*3的单元数组,a(3,3)就是‘china’三、应用我们在matlab中有事可能会遇到a1、a2、a3…这样的组合,想利用for语句使用里面的数据却无法成功。(例如ai未定义等原因)此时我们使_matlab eval cell

tomcat启动占了12g_tomcat服务为何报内存相关错误??-程序员宅基地

文章浏览阅读86次。本帖最后由 linux_love 于 2014-9-19 11:46 编辑多谢各位英雄支持,这个问题困扰我N久了,昨天终于让我给拿下了,在Linux下有个CommitLimit 用于限制系统应用使用的内存资源,#grep -i commit /proc/meminfoCommitLimit: 20389524 kBCommitted_AS: 18541832 kB其中:CommitLim..._commited_as 被谁占了

计算机基础知识判断题答案,计算机基础知识试题及答案判断题模板.docx-程序员宅基地

文章浏览阅读1.5k次。优质文档PAGE 页码页码/NUMPAGES 总页数总页数计算机基础知识试题及答案判断题(一)1、 冯?诺依曼原理是计算机的唯一工作原理。.( × )2、 计算机能直接识别汇编语言程序。.( × )3、 计算机能直接执行高级语言源程序。.( × )4、 计算机掉电后,ROM中的信息会丢失。( × )5、 计算机掉电后,外存中的信息会丢失。( √ )6、 应用软件的作用是扩大计算机的存储容量。( ×..._计算机判断题及答案

最新全流程GMS地下水数值模拟及溶质(包含反应性溶质)运移模拟技术深度应用-程序员宅基地

文章浏览阅读704次,点赞30次,收藏18次。最新全流程GMS地下水数值模拟及溶质(包含反应性溶质)运移模拟技术深度应用_gms地下水数值模拟

随便推点

python 特征选择卡方_4. 机器学习之特征选择-Python代码-程序员宅基地

文章浏览阅读719次。1. 特征选择------sklearn代码1.1 特征选择------方差法忽略warning错误import warningswarnings.filterwarnings("ignore")# 方差法from sklearn.feature_selection import VarianceThresholdX = [[0, 2, 0, 3], [0, 1, 4, 3], [0, 1, 1..._python 方差法选择特征

WebGL快速入门_webgl入门-程序员宅基地

文章浏览阅读2.3k次,点赞2次,收藏11次。WebGL是一种用于在Web浏览器中实现高性能3D图形的技术。本文将帮助读者快速入门WebGL,了解其基本概念和使用方法。我们将介绍WebGL的基本架构和API,包括如何创建WebGL上下文、渲染对象和着色器编程等。此外,我们还会深入探讨WebGL的基本原理和渲染管线,以及如何通过优化渲染流程来提升性能。通过学习本文,读者将能够理解WebGL的核心概念和使用方法,并能够开始开发高性能的3D应用程序。_webgl入门

C++中的String的常用函数用法总结_string函数-程序员宅基地

文章浏览阅读10w+次,点赞1.3k次,收藏6.1k次。一. string的构造函数的形式: string str:生成空字符串string s(str):生成字符串为str的复制品string s(str, strbegin,strlen):将字符串str中从下标strbegin开始、长度为strlen的部分作为字符串初值string s(cstr, char_len):以C_string类型cstr的前char_len个字..._string函数

金融风控训练营金融风控基础知识学习笔记_风控师学习笔记-程序员宅基地

文章浏览阅读162次。一、赛题理解和学习目标:本次挑战赛以个人信贷为背景,要求选手对金融风控之贷款是否违约进行预测,以此判断是否通过此项贷款的一项问题型比赛。通过学习Task1了解第一个学习内容,要求对金融风控的问题建立数学模型最后给定金融风险程度。在此过程中要了解混淆矩阵、AUC评价指标,KS统计量等二、学习内容:混淆矩阵就是一个2×2的矩阵分为真正类TP、真分类TN、假正类FT、假反类FNFP FN TP TN AUC被定义在ROC曲线下与坐标轴围成的面积(ROC曲线:以真阳性率._风控师学习笔记

哈希表 添加 增添 删除 获取方法 Js封装_js hash追加-程序员宅基地

文章浏览阅读237次。<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>D._js hash追加

JS数据结构-Set集合,创建Set,常用Set方法_js set-程序员宅基地

文章浏览阅读7.6k次,点赞7次,收藏12次。Set  ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。  很多时候我们把Set叫做 集合,但是,Set可以是集合,集合不一定是Set。  特性:唯一性=>不重复=>能够对数据进行去重操作。  注:集合去重,是全等匹配,===。创建Set  Set 本身是一个构造函数,调用构造函数用来生成 Set 数据结构。  关键词 标识符 = new Set();  例 let i = new Set();    Set 函数可以接受一个数组_js set

推荐文章

热门文章

相关标签