1Linux常用基础命令大全(详细整理)——Linux学习笔记

一、文件和命令使用规范

1. Linux 文件的命名规则

  1. Linux中一切皆文件
  2. 除了 / 之外,所有的字符都合法,但有些字符最好不用,如空格和字符 @ # $ & ( ) - 等
  3. 避免使用 . 作为文件名的第一个字符 (Linux中以.开头的文件都是隐藏文件)
  4. 大小写敏感,严格区分大小写(包括文件命名、命令、命令选项、用户名等)
  5. 长度不能大于255字符

2. Linux 命令格式

格式 :命令 -选项 参数(操作对象)

例 :ls -la /etc

  1. 当有多个选项时,可以写在一起(特殊情况除下有先后顺序)
  2. 两个特殊的目录 . 和 … ,分别代表当前目录和当前目录的父目录
  3. 部分命令不遵循此格式

3. Linux 命令提示符

[root@localhost /]#

[当前登录用户@当前主机名 当前所在目录的最后一个目录]# # 带表用户身份(root)

二、文件管理命令

1. ls 命令

  • 功能描述:用来显示指定目录内的文件列表 (可通过选项控制显示内容的详细程度和颜色高亮等)
  • 所在路径:/bin/ls
  • 命令格式:ls [-选项] [参数]
  • 常用选项:
    • -a:显示指定目录内的所有内容(包含隐藏文件和特殊目录)
    • -l:显示每一个文件的详细信息(权限、所有者、所属组、修改时间等),可缩写为ll
    • -h:文件大小显示为常见单位 ,常以-lh形式出现
    • -d:查看目录属性,而不显示目录内的文件列表,常以-ld形式出现
    • -i:显示文件索引节点号(inode),每个文件都拥有一个独一无二的索引节点号
    • -R 递归显示目录及其子目录
    • -n 显示文件的UID和GID

索引节点号(inode号):

每一个文件除了文件内的数据外,还有文件本身的一些数据需要保存,比如:文件的创建者、创建时间、文件大小等,此类信息我们统称为“元数据”,操作系统为每一个文件都单独创建了一块区域用来存储文件的元数据,并且在同一个分区内为每一个文件分配了一个独一无二的ID号码(即inode号)

[root@localhost ~]# ls -l
总用量 44
-rw-------. 1 root root  1245 1月   1 2020 anaconda-ks.cfg
-rw-r--r--. 1 root root 28250 1月   1 2020 install.log
-rw-r--r--. 1 root root  7572 1月   1 2020 install.log.syslog

第一列:类型和文件权限

第二列:引用计数,文本类文件的数值代表该文件有n-1个硬链接;目录文件的数值代表该目录下有多少个子目录数量

第三列:文件所有者(属主),文件属于哪个用户所有,默认情况谁创建的文件就属于谁

第四列:文件所属组(属组),一般情况下,该组是文件创建者所在的组

第五列:文件大小,默认以字节为单位显示,可使用-h选项显示为最合适单位

第六列:文件最后一次修改时间(内容修改时间)

第七列:文件名

结尾的.:这个点代表被SELinux所标记的文件,一般是在SELinux开启时所创建的文件

2. cd 命令

  • 功能描述:切换到指定的目录下
  • 所在路径:属于shell内置命令,没有路径
  • 命令格式:cd [-选项] [参数]
  • 语法:cd 目录

cd ~ 进入当前用户的家目录

cd - 进入上次目录

cd … 返回上一级目录

cd …/… 返回上两级目录

cd . 进入当前目录

特殊目录 作用
~ 切换到当前所在用户的家目录下
- 切换到刚才所在目录
. 当前目录
切换到上一级目录(父目录)

3. pwd 命令

  • 功能描述:显示当前所在路径
  • 所在路径:/bin/pwd
[root@localhost network-scripts]# pwd

/etc/sysconfig/network-scripts

4. mkdir 命令

  • 功能描述:创建目录
  • 所在路径:/bin/mkdir
  • 命令格式:mkdir [-选项] [参数]
  • 常用选项:
    • -p:递归创建多级目录
    • -v 显示创建过程
[root@localhost ~]# mkdir /data/text/
mkdir: 无法创建目录"/data/text/": 没有那个文件或目录
[root@localhost ~]#
[root@localhost ~]# mkdir -p /data/text/

5. rm 命令

  • 功能描述:删除指定文件或者目录
  • 所在路径:/bin/rm
  • 命令格式:rm [-选项] [参数]
  • 常用选项:
    • -i:删除已有文件或目录之前先询问用户
    • -f:不询问,强制删除
    • -r:递归处理,将指定目录下的所有文件与子目录一并处理
  • 近义词命令:rmdir 删除指定的空目录
    • -p 递归删除空目录
    • -v 显示指令执行过程

6. touch 命令

  • 功能描述:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件
  • 所在路径:/bin/touch
  • 命令格式:touch [文件名]
  • 常用选项:相关选项都是对文件时间进行修改的,此处不做讲解

Linux文件命名规则: 见最前面

7. stat 命令

  • 功能描述:用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细
  • 所在路径:/usr/bin/stat
  • 命令格式:stat [选项] [文件名]
  • 常用选项:
    • -f:不再显示指定文件的详细信息,而是显示该文件所在文件系统的信息(文件系统类型、Block数量、Inode数量等)
[root@localhost ~]# ls -l
总用量 44
-rw-------. 1 root root  1245 1月   1 2020 anaconda-ks.cfg
-rw-r--r--. 1 root root 28250 1月   1 2020 install.log
-rw-r--r--. 1 root root  7572 1月   1 2020 install.log.syslog
---------------------------------------------------------------------------------

[root@localhost ~]# stat install.log
File: "install.log"
Size: 28250     Blocks: 64         IO Block: 4096   普通文件
Device: 803h/2051d Inode: 262148     Links: 1
Access: (0644/-rw-r--r--) Uid: (    0/   root)   Gid: (    0/   root)
Access: 2020-01-01 22:52:00.643999989 +0800       #访问时间
Modify: 2020-01-01 23:00:00.507999787 +0800       #内容修改时间
Change: 2020-01-01 23:00:34.067999794 +0800       #属性修改时间(权限和归属)
---------------------------------------------------------------------------------

[root@localhost ~]# stat -f install.log
File: "install.log"
  ID: d2925608e3c65ff3 Namelen: 255     Type: ext2/ext3
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 4573121   Free: 4038984   Available: 3805013
Inodes: Total: 1171456   Free: 1103020

注意:Free和Available都是可用的意思,但是有所区别,Free当中有一部分需要充当缓存空间,虽然现在不用但是已经被预定出去了,所以对于程序来说Available才是真正可用的数量。

8. cat 命令

  • 功能描述:连接文件并打印到标准输出设备上,cat经常用来显示文件的内容(内容大于1页的仅显示最后一页:自动滚屏)
  • 所在路径:/bin/cat
  • 命令格式:cat [选项] 文件名
  • 常用选项:
    • -n:为每一行内容进行编号(从1开始)
    • -b:类似于-n,会主动忽略掉空白行(显示但不为其编号)

cat 显示多个文件内容

cat 将多个文件合并(按照文件先后顺序)

(如文件查过一页内容后只能显示最后一页的内容)

9. more 命令

  • 功能描述:一个文本过滤器,以全屏分页的方式显示文本内容,可以使用内置按键控制显示内容
  • 所在路径:/bin/more
  • 命令格式:more [文件名]
    • 空格space:向下翻页
    • 回车enter:向下翻行
    • b:向上翻页
    • q:退出文本

10. less 命令

  • 功能描述:作用与more相似,都是用来浏览文本内容的
  • 所在路径:/usr/bin/less
  • 命令格式:less [选项] [文件名]
  • 常用选项:
    • -N:显示文本内容并显示行号
  • 命令对比:more和less很相似,都是用来进行分屏/分页显示文本内容的,但是less要比more多一些交互按钮,以下是less模式下的一些交互按钮功能(显示文件内容的时候支持关键词查找。)
交互按钮 功能
PageUp(PaUp) & b 向上翻页
PageDown(PaDn) & 空格 向下翻页
Enter 向下换行(每次只新增一行显示)
/关键词 用于在less模式中进行关键词查询,并高亮显示关键词 使用n和N快速向下向上定位到每一个关键词
q 退出less模式

11. head 命令

  • 功能描述:显示指定文件的开头内容(默认显示前10行)
  • 所在路径:/usr/bin/head
  • 命令格式:head [选项] [文件名]
  • 常用选项:
    • -n:显示指定文件的前n行(n换成数字)

12. tail 命令

  • 功能描述:显示指定文件的结尾内容(默认显示后10行)
  • 所在路径:/usr/bin/tail
  • 命令格式:tail [选项] [文件名]
  • 常用选项:
    • -n:显示指定文件的后n行
    • -f:显示文件最后10行,并且对文件处于监听状态,实时更新和通知文件尾部的变化(tailf = tail -f)

13. cp 命令

  • 功能描述:将一个或多个源文件复制到指定位置,默认情况下保留源文件名称,也可以改名
  • 所在路径:/bin/cp
  • 命令格式:cp [选项] 源文件或目录 目标目录
  • 常用选项:
    • -d:当复制符号链接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
    • -p:复制文件时,保留源文件的属性
    • -r:递归处理,复制时将指定目录下的所有文件和子目录,子文件全部复制到指定位置
    • -a:相当于-dpr的集合,拥有三个选项的所有功能

14. mv 命令

  • 功能描述:将指定文件移动(剪切)到指定目标位置,默认情况下保留源文件名称,也可以改名
  • 所在路径:/bin/mv
  • 命令格式:mv [选项] 源文件或目录 目标目录
  • 常用选项:
    • -b:在进行文件移动时,若目标位置有同名文件存在,则将同名文件备份(备份文件名结尾有~标识)

可以直接使用y回答,提示虽然是覆盖,但会自动创建备份文件

拓展:rm、cp、mv命令的相同选项

-i:该选项的作用是在对文件操作时是否询问用户

-f:该选项的作用是在对文件操作时直接跳过询问用户的步骤

15. tree 命令

  • 功能描述:显示目录树
  • 命令格式:tree 目录
  • 常用选项:
    -d 只显示目录
    (在centos7.x下需要安装后才可使用)

16.pstree

  • 功能描述:查看进程树之间的关系

  • 命令格式:pstree [选项]

    -A:进程树之间的链接以ASCII码字符链接。
    
    -p:同时列出每个进程的PID。
    
    -u:同时列出每个进程的所属账号名称。
    

16. ln 命令

  • 功能描述:为指定文件创建软链接(符号链接)或者硬链接
  • 所在路径:/bin/ln
  • 命令格式:ln [OPTION]… SOURCE DEST
  • 常用选项:
    • -s:为指定的源文件创建一个符号链接文件(软链接),不加“-s”则创建硬链接

    注意:创建链接时,要使用绝对路径

    [root@localhost ~]# ln -s /etc/sysconfig/network-scripts/ifcfg-ens33 /root/

符号链接和硬链接区别:

符号链接(软链接)特征:

    • 源文件和软链接各自拥有不同的Inode号和Block块数
    • 两个文件不管修改哪一个均可同步
    • 删除源文件,软链接失效;删除软链接,源文件无影响
    • 软链接文件大小不受源文件变化而影响,仅仅记录源文件的位置信息(Inode)
    • 软链接文件权限为:rwxrwxrwx,但最终生效的权限以源文件为准
    • 软链接既可以链接文件,也可以链接目录,并且可以跨分区创建

    硬链接特征:

    • 源文件和硬链接文件拥有相同的Inode号和Block块数(实际为同一个文件)
    • 两个文件不管修改哪一个均可同步
    • 无论删除哪一个,都互不影响
    • 不能对目录创建硬链接,并且不能跨分区创建

三、权限管理命令

1. 权限的意义

通过ls -l命令我们可以看到文件的详细信息,其中第一列是关于文件类型和权限的表示位,我们来详细分析下

-rw-r–r–. 1 root root 28250 1月 1 2020 install.log

首先-rw-r–r–这个结构可以细分为四部分:文件类型、文件所有者权限、文件所属组权限、文件其他人权限

1Linux常用基础命令大全(详细整理)——Linux学习笔记_第1张图片

文件类型:

  • “-”:普通文件,普通文件类型下的子类型仍然有很多,比如压缩文件,文本文件,脚本文件等等,可以使用file命令查看
  • “d”:目录文件,Linux中一切接文件~
  • “l”:软链接文件,此处代表该文件为软链接,软链接是独立文件有自己的文件类型
  • “b”:块设备文件,存储类设备在Linux中的保存后的文件类型
  • “c”:字符设备文件,一般指用来进行数据传输的设备,输入输出设备等
  • “s”:套接字文件,一般用来实现两个进程之间通信的文件
  • “p”:管道文件,一般用来处理多个进程对同一个文件存取先后顺序问题

注意:设备类文件的详细信息中,文件大小位置显示的不是大小,而是主从设备号,主设备号代表着设备类型,从设备号代表着该类型设备的第几个。

其余九位为权限:

r w x r w x r w x

读 写 执行 读 写 执行 读 写 执行

4 2 1 4 2 1 4 2 1

文件所有者(u) 文件所属组(g) 其他用户(o)other

拓展:查看文件具体详细类型的命令

命令:file

[root@localhost test]# ls -l
总用量 36
-rw-r--r-- 1 root root 28250 3月  14 14:41 install.log
-rw-r--r-- 1 root root  7544 3月  14 14:41 ins.tar.gz
[root@localhost test]#
[root@localhost test]# file install.log
install.log: UTF-8 Unicode text
[root@localhost test]#
[root@localhost test]# file ins.tar.gz
ins.tar.gz: gzip compressed data, from Unix, last modified: Thu Mar 14 14:40:53 2020

权限类型:

  • 文本类文件:
    • r:内容查看权限
    • w:内容编写权限
    • x:执行权限
  • 目录类文件:
    • r:文件:查看目录下文件列表权限
    • w:文件:目录内文件创建删除权限
    • x:文件:进入目录权限

注意:若指定位置有字母代表拥有该权限,若没有权限则使用 - 代替 例如:rw-r–r-- {表示所有者有读写权限,所属组和其他人有读权限}

  • 用数字表示权限位:
    • r:4
    • w:2
    • x:1

例如:rw-r–r-- 的权限用数字表示就是 644{分别是所有者、所属组、其他人的权限}

拓展:用户添加&密码设置

  • 用户添加:useradd
  • 密码设置:passwd

2. 权限修改命令:chmod

  • 功能描述:修改文件指定位置的rwx权限
  • 所在路径:/bin/chmod
  • 常用选项:
    • chmod [augo] [±=] [rwx] file
    • chmod 644 file
    • -R:将设置的权限递归到该目录下的子文件上(一般针对目录使用)
  • 举例
    • chmod g+w,o+w 文件
    • chmod u=rwx 文件
    • chmod 644 文件

3. 归属修改命令:chown

  • 功能描述:修改文件的所有者或所属组
  • 所在路径:/bin/chown
  • 常用选项:
    • chown user:group file
    • chown user.group file
    • -R:将设置的递归到该目录下的子文件上(一般针对目录使用)

4. 属组修改命令:chgrp

  • 功能描述:改变文件或目录的所属组
  • 所在路径:/bin/chgrp
  • 常用选项:
    • chgrp 用户组 文件或目录
    • -R:将设置的递归到该目录下的子文件上(一般针对目录使用)

5. 掩码值修改命令:umask

  • 功能描述:查看或设置文件的权限掩码值
  • 所在路径:shell内置命令
  • 常用选项:
    • umask:以八进制的数值显示文件的权限掩码值
    • umask 002:按照给定的八进制数值覆盖掉原有的掩码值
  • 文件默认权限的计算方式(对位相减)
    • 目录类文件:777-掩码=默认权限
    • 文件类文件:666-掩码=默认权限

总结:Linux是一个权限管理十分严格的操作系统,默认情况下是不给普通文件分配 x 执行权限的

在默认掩码为0022下文件最大权限缺省为644,目录缺省最大权限为755.

四、查询相关命令

1. which

  • 功能描述:显示命令的绝对路径
  • 所在路径:/usr/bin/which
  • 命令格式:which [commands]

2. whereis

  • 功能描述:定位指定命令的二进制文件程序、源码文件和帮助手册页面等资源的位置
  • 所在路径:/usr/bin/whereis
  • 命令格式:whereis [-bms] filename
  • 常用选项:
    • -b:定位指定命令的绝对路径
    • -m:定位指定命令的帮助手册路径(即man帮助手册文档位置)
    • -s:定位指定命令的源码文件路径

3. locate

  • 功能描述:通过文件名进行文件位置查询 {locate命令进行文件查询并不是使用遍历的方式进行查找,而是事先创建好一个数据库,将所有文件的名称和对应路径保存在了其中,当查询文件时,只需要对数据库查询即可,速度上来说非常迅速}
  • 所在路径:/usr/bin/locate
  • 命令格式:locate 关键词
  • 常用选项:
    • -i:忽略查询对象的大小写
  • 数据库文件:/var/lib/mlocate/mlocate.db
  • 数据库更新:updatedb #建议每次查询前先更新下数据库
  • 更新规则文件:/etc/updatedb.conf #配置文件中记录一些忽略不更新的文件类型和目录
  • locate命令的使用实例: # locate /etc/sh 搜索etc目录下所有以sh开头的文件。

#在使用locate命令时,要使用绝对路径查询。

4. find

  • 功能描述:在目录树种进行文件查询
  • 所在路径:/bin/find
  • 命令格式:find 查找目录 [选项]
  • 根据名称查询:find /etc/ -name “*.txt”
    • -name 模式下默认精确查询,可以使用通配符进行模糊查询:* ? [];使用通配符查询时,查询对象必须用单双引号(通配符见后面)
  • 根据大小查询:find /etc/ -size 10K
    • -size 模式下默认使用精确大小查询,可以使用- +进行范围查询 { 常见单位:c:字节;w:子(2字节);b:块(512字节);k,M,G }
    • find ./ -size -10k 查找小于10k的文件或目录
    • find ./ -size -10M 查找小于10M的文件或目录
    • find ./ -size +10G 查找大于10G的文件或目录
  • 根据归属查询:find /etc/ -user zhangsan
    • -user|-group模式下,可以查询属于某用户或某组的文件
    • -nouser|-nogroup 模式可以查询出没有所有者或所属组的文件(异常文件)
  • 根据权限查询:find /etc/ -perm 777
    • -perm 模式可以查询出指定权限的文件,一般用来查询权限过大的普通文件
  • 根据类型查询:find /etc/ -type f
    • -type模式下可以查询出指定类型的文件 [ f:普通文件;d:目录文件;l:链接文件等 ]
  • 根据inode查询:find /etc/ -inum 262149
    • -inum 模式可以查询出所有inode相同的文件(查询硬链接文件)
  • 根据时间查询:
    • 访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
    • 修改时间(-mtime/天,-mmin/分钟):文件最后一次内容修改时间。
    • 变化时间(-ctime/天,-cmin/分钟):文件数据元(权限等)的最后一次修改时间。

1Linux常用基础命令大全(详细整理)——Linux学习笔记_第2张图片

      • -5:五天内或五分钟内访问过的文件
      • 5:恰好在第五天或第五分钟访问过的文件
      • +5:五天前或五分钟前被访问过的文件
  • 多条件同时查询:find /etc/ -name -a -type f
    • -a:and的意思,将两个或两个以上的查询条件结合在一起进行文件查询(必须同时符合所有条件)
    • -o:or的意思,多个条件结合后,其中一条条件符合就算符合查询要求
  • 查询结果批处理:将 find 查询到的结果交给指定命令继续操作,以下两个连接符都能实现
    • -exec|-ok:格式固定,稍复杂
      • find /etc -name “*.txt” -exec rm {} ;
      • {} :存储了find查询的结果集
      • ; :固定格式,\是转义符,不适用命令别名,直接使用命令本身 ;作为结束符号
    • |xargs:格式较简单,但不支持带空格的文件
    • find /etc/ -name “*.txt” |xargs rm

拓展:

转义符:在Linux中有个别名机制,如rm删除文件,执行的却是rm -i(用which rm 可以查看命令

别名)使用rm删除文件前会提示确认信息,就因为rm -i 这个参数。如果想使用命令原意,可以在加

\转义。如:\rm tese.txt 不会提示,直接删除。

5. grep

  • 功能描述:在指定文件内根据一定条件查询符合条件的字符串
  • 所在路径:/bin/grep
  • 命令格式:grep [选项] “字符串” 文件名
  • 常用选项:
    • -i:在查询时忽略查询对象的大小写
    • -n:查询时,显示符合条件对象的所在行号
    • -v:查询时,将条件反转,反向查询
    • –color=auto:将符合条件的对象高亮显示

6. “|” 和 “|xargs” 的作用

管道符:|

作用:将前一个命令的结果,作为后一个命令的输入(可以理解为把查询结果保存成了一个文本)

举例:find /var/log/ -name “*.log” | grep --color=auto da

xargs命令:|xargs

作用:将前一个命令的结果,作为后一个命令的参数(所有符合条件的文件逐个传递给后面的命令)

举例:find /var/log/ -name “*.log” |xargs grep --color=auto da

7. find、locate、grep的对比

  • find 和 locate 都是用来在系统内查询文件位置的命令
  • find 是通过对所有目录进行遍历的方式进行查找的,结果精准,但消耗大量系统资源和时间
  • locate 是通过实现创建数据库保存文件位置,再查询数据库的一种快速索引方式,节省资源速度快,但是精准度稍差
  • grep 是用来在指定文件内查询符合条件的关键词的命令,操作对象是指定某文件
  • find 默认情况下是精确匹配,可以使用通配符进行模糊匹配
  • grep 默认情况下是包含匹配,要想精确匹配需要使用正则表达式(后面来讲)

8. 通配符的意义

通配符 作用
? 匹配一个任意字符
* 匹配0个或任意多个任意字符
[ ] 匹配括号内的任意一个字符,[aoe]
[-] 匹配括号内字符串范围内的任意一个字符,[a-z] [0-9]
[^] 逻辑非,即取反,表示匹配除了括号内的任意一个字符

五、压缩相关命令

压缩文件是操作系统中常见的文件格式,对文件进行压缩的主要目的是为了方便对文件进行统一管理,节省空间,方便传输携带等,其主要原理是对文件的二进制代码进行压缩,例如000000,可简写为a60,意为6个0

Linux中常见的压缩格式有以下几种:.zip .gz .bz2 .tar .tar.gz .tar.bz2 等

1. zip

  • 解压缩:unzip filename.zip
  • 压缩:zip 压缩后名称 源文件
    • -r:压缩目录(递归处理目录下的子文件)

2. gz

  • 解压缩:gunzip filename.gz 或者 gzip -d filename.gz
  • 压缩:gzip filename

3. bz2

  • 解压缩:bunzip2 filename.bz2或 bzip2 -d filename.bz2
  • 压缩:bzip2 -z filename

4. tar

  • 解包:tar -xvf filename.tar
  • 打包:tar -cvf 打包后文件 源文件

5. tar.gz

  • 解压缩:tar -xvf file.tar.gz
  • 压缩:tar -zcvf 压缩后文件 源文件

6. tar.bz2

  • 解压缩:tar -xvf file.tar.bz2
  • 压缩:tar -jcvf 压缩后文件 源文件

7. 其他

除了上述格式外,还有一些不是特别常见,偶尔也会碰到的格式,我们只讲一下这些格式的解压缩方式

“.tar.xz” 和 “.tgz”压缩包的解压方式:tar-xvf filename

六、帮助相关命令

1. man

  • 功能描述:通过帮助手册显示命令的使用方式
  • 命令格式:man command
  • 常用选项:
    • -f:显示该命令有哪几个级别的帮助(有些可以显示对应配置文件的帮助)
  • 多种帮助级别的含义:
帮助等级 含义
1 查看命令的帮助信息(多数位普通用户能执行的命令)
2 查看可以被内核调用的函数的帮助信息
3 查看C语言相关函数的帮助信息
4 查看设备和特殊文件的帮助信息(主要存在于/dev/目录下)
5 配置文件的帮助信息
6 游戏的帮助信息(主要存在于个人版Linux)
7 查看其他杂项的帮助信息
8 查看超级管理员能执行的命令的帮助
9 内核信息的帮助文档
  • 交互模式下的快捷键:
快捷键 功能
上箭头 查看上一行
下箭头 查看下一行
PgUp 向上翻页
PgDn 向下翻页
g 回到首页
G 翻到尾页
q 退出交互模式
/ 在交互模式下根据指定关键词进行搜索
n 查询完成后,可以使用n快速定位到下一个符合条件的关键词

2. help

  • 功能描述:显示Linux内置命令相关帮助信息
  • 命令格式:help command
  • 常用选项:
    • -m:模拟man的格式显示帮助信息(鸡肋~)

拓展:–help选项

格式:ls --help

Linux中绝大多数的命令都可以是用–help作为选项显示帮助信息,只是显示的内容没有man和info全面而已。

3. info

  • 功能描述:查看指定命令的帮助信息等
  • 命令格式:info command
  • 常用选项:常用快捷键如下
快捷键 功能
上箭头 查看上一行
下箭头 查看下一行
PgUp 向上翻页
PgDn 向下翻页
Tab 快速切换到下一个以*开头的节点
回车 进入到当前以*开头的节点内,查看详细信息
u 退出节点,回到帮助首页
n 当处于某一节点内时,可以直接切换到下一个节点
p 当处于某一节点内时,可以直接切换到上一个节点
查看info所提供的的交互命令的帮助信息
q 退出info模式

注意:info是Linux系统中最高级的帮助信息,对于初学者不是很友好,不要求前期掌握。

七、关机与重启命令

1.sync

  • 功能描述:强制将缓冲区中的数据写入磁盘中
  • 命令格式:sync
  • 常用选项:无

Linux操作系统为了提高数据的处理速度会将数据放入到磁盘的缓冲区中(buffer),但是如果数据在缓冲区中时发生突然断电重启之类的操作数据可能就会丢失,为了预防这类事件发生,我们可以在将数据“写入”磁盘后,执行一次sync将数据强制写入到真正的磁盘中。当然,如果没有人为干预,操作系统也会自行执行sync只是时间和周期上不确定也不及时。

2.shutdown

  • 功能描述:用来关机或者重启的命令
  • 命令格式:shutdown [选项] 参数
  • 常用选项:
    • -h:halt,发送关机信号,后面指定倒计时时长(now,1200)
    • -r:reboot,发送重启信号,后面指定倒计时时长(now,1200)
  • 举例

shutdown +5 “system will shutdown after 5 minutes”

#设定5分钟后关机,发给所有用户关机提示信息告知登录用户。

此命令执行五分钟后,登录的用户将退出登录,但系统并不会关闭。

需要自行shutdown -h now进行关机(C7此命令直接关闭系统)。

shutdown +2 -h “system will shutdown after 1 minutes”

#如果想要关闭系统并提示用户即将关机信息那么要执行此命令

拓展:halt和poweroff

两个命令和shutdown -h 作用一致,都是用来关机的

halt 停机不关闭电源

poweroff 先关闭系统然后掉电关机

3.reboot

  • 功能描述:重启当前操作系统
  • 命令格式:reboot
  • 常用选项:无

4.init

  • 功能描述:临时修改操作系统的运行级别,可用来关机或重启
  • 命令格式:init N
  • 常用选项:
    • init 0 : 关机
    • init 6 :重启

八、常见网络命令

1. 红帽系列网络管理命令

**CentOS 6.x**

    命令:setup

1Linux常用基础命令大全(详细整理)——Linux学习笔记_第3张图片
CentOS 7.x

    命令:nmtui

1Linux常用基础命令大全(详细整理)——Linux学习笔记_第4张图片

2. 命令:ifconfig

2.ifconfig 查询本机网络信息

ifconfig命令使用方法

注意:下面操作使用root用户(动态修改)

命令:ifconfig

作用:用来配置网络或显示当前网络接口的状态

[root@localhost ~]# ifconfig
ens33: flags=4163  mtu 1500
        inet 192.168.12.18  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::c09d:975d:89cd:fd3f  prefixlen 64  scopeid 0x20
        ether 00:0c:29:02:83:db  txqueuelen 1000  (Ethernet)
        RX packets 3255  bytes 4458479 (4.2 MiB)        RX errors 0  dropped 26  overruns 0  frame 0
        TX packets 1130  bytes 81645 (79.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

上图信息大概说明:

第一行:

UP–>网卡开启状态

BROADCAST–>广播

RUNNING–>网线处理连接状态

MULTICAST–>支持组播

mtu 1500–>(Maximum Transmission Unit)最大传输单元大小为1500字节

第二行:该网卡的IP地址,子网掩码,广播地址

第三行:IPV6的配置信息

第四行:网卡的MAC地址

ether表示连接类型为以太网

txqueuelen 1000 --》传输队列的长度

第五六行:网卡接收数据包的统计信息和接收错误的统计信息

第七八行:网卡发送数据包的统计信息和发送错误的统计信息

临时修改IP地址

方法1:临时修改网卡IP地址

ifconfig 网卡名称 IP地址 —直接修改网卡的IP地址,重启失效

[root@localhost Desktop]# ifconfig ens33
ens33: flags=4163  mtu 1500
        inet 192.168.12.18  netmask 255.255.255.0  broadcast 192.168.1.255
[root@localhost Desktop]#ifconfig ens33 192.168.12.110 netmask 255.255.255.0

说明:修改后当前终端会终断,需要重新使用新的IP地址进行连接

[root@localhost Desktop]# ifconfig ens33
ens33: flags=4163  mtu 1500
       inet 192.168.12.110 netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fee8:ac4  prefixlen 64  scopeid 0x20
        ether 00:0c:29:e8:0a:c4  txqueuelen 1000  (Ethernet)
        RX packets 2028  bytes 198715 (194.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 385  bytes 51073 (49.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@localhost Desktop]# systemctl restart network     //CENTOS7的网卡重启方法
[root@localhost Desktop]# service network restart     //CENTOS6的网卡重启方法[root@localhost Desktop]# ifconfig ens33
ens33: flags=4163  mtu 1500
inet 192.168.12.18  netmask 255.255.255.0  broadcast 192.168.1.255 

方法2: 添加多个临时IP地址

ifconfig 网卡名称:0 第一个IP地址 (netmask 子网掩码) —增加一个IP

ifconfig 网卡名称:1 第二个IP地址 (netmask 子网掩码) —增加一个IP

[root@localhost ~]# ifconfig ens33:0 192.168.12.110 netmask 255.255.255.0 up
[root@localhost ~]# ifconfig
ens33: flags=4163  mtu 1500
       inet 192.168.12.18  netmask 255.255.255.0  broadcast 192.168.1.255
ens33:0: flags=4163  mtu 1500
       inet 192.168.12.110 netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:e8:0a:c4  txqueuelen 1000  (Ethernet)

删除临时IP

[root@localhost ~]# ifconfig ens33:0 del 192.168.12.110

[root@localhost ~]# ifconfig

ens33: flags=4163  mtu 1500
        inet 192.168.12.110  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fee8:ac4  prefixlen 64  scopeid 0x20
        ether 00:0c:29:e8:0a:c4  txqueuelen 1000  (Ethe rnet)
        RX packets 3056  bytes 311813 (304.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 961  bytes 145297 (141.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
ens33:1: flags=4163  mtu 1500
        inet 192.168.1.111  netmask 255.255.255.0  broadcast 192.168.1.255
        ether 00:0c:29:e8:0a:c4  txqueuelen 1000  (Ethernet)

添加真实网卡:

nmcli connection add con-name 网卡名称 type 接口类型 ifname 网卡名称

nmcli connection add con-name ens37 type ethernet ifname ens37

3. 命令:ip

功能1:查看ip等网络资源信息

[root@localhost ~]# ip address show
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen  1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33:  mtu 1500 qdisc pfifo_fast state UP group  default qlen 1000
    link/ether 00:0c:29:87:24:7b brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.120/24 brd 192.168.88.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7599:771:ff61:82a2/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

功能2:临时配置ip等网络参数

[root@localhost ~]# ip address add 192.168.88.121/24 dev ens33
[root@localhost ~]# ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen  1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33:  mtu 1500 qdisc pfifo_fast state UP group  default qlen 1000
    link/ether 00:0c:29:87:24:7b brd ff:ff:ff:ff:ff:ff
    inet 192.168.88.120/24 brd 192.168.88.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.88.121/24 scope global secondary ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::7599:771:ff61:82a2/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

#add 换成 del 可以删除新增的ip信息

功能3:查看当前生效的网关信息

[root@localhost ~]# ip route show
default via 192.168.88.2 dev ens33 proto static metric 100
192.168.88.0/24 dev ens33 proto kernel scope link src 192.168.88.120 metric 100

4. 命令:ifup & ifdown

功能:单独针对某一网卡的启动关闭命令

[root@localhost ~]# ifdown ens33

#关闭指定网卡

[root@localhost ~]# ifup ens33

#启动指定网卡

5. 命令:ping

功能:通过ICMP协议探测网络中的主机是否能正常通信

选项:

-c :用于指定ping的次数

-s :指定探测时使用的数据包大小(最大65507)
[root@localhost ~]# ping -c 4  192.168.88.1
PING 192.168.88.1 (192.168.88.1) 56(84) bytes of data.
64 bytes from 192.168.88.1: icmp_seq=1 ttl=128 time=0.158 ms
64 bytes from 192.168.88.1: icmp_seq=2 ttl=128 time=0.197 ms
64 bytes from 192.168.88.1: icmp_seq=3 ttl=128 time=0.187 ms
64 bytes from 192.168.88.1: icmp_seq=4 ttl=128 time=0.163 ms



--- 192.168.88.1 ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3002ms
#发出的包数、返回的包数、丢包率、往返消耗时间
rtt min/avg/max/mdev = 0.158/0.176/0.197/0.018 ms
#最小、平均、最大、硬件消耗时间

6. 命令:netstat

功能:查看网络连接状态的命令,可以查看本机开启的端口(TCP/UDP),最小化是没有安装的。

选项:

-a:列出所有网络状态

-n:以数字方式显示IP和端口信息

-t:显示TCP协议对应信息

-u:显示UDP协议对应信息

-p:显示进程的进程号和进程名

-l:显示监听状态的连接

组合1:-antp

[root@localhost ~]# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program  name   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd          
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6670/sshd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6822/master        
tcp        0      0 192.168.88.120:22       192.168.88.1:52506      ESTABLISHED 6980/sshd:  root@pts
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd          
tcp6       0      0 :::22                   :::*                    LISTEN      6670/sshd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      6822/master

组合2:-tlunp

[root@localhost ~]# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program  name   
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd          
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      6670/sshd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      6822/master        
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd          
tcp6       0      0 :::22                   :::*                    LISTEN      6670/sshd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      6822/master        
udp        0      0 0.0.0.0:1002            0.0.0.0:*                           6365/rpcbind       
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1/systemd          
udp        0      0 127.0.0.1:323           0.0.0.0:*                           6364/chronyd       
udp6       0      0 :::1002                 :::*                                6365/rpcbind       
udp6       0      0 :::111                  :::*                                1/systemd          
udp6       0      0 ::1:323                 :::*                                6364/chronyd

拓展

常见端口:

20 21 ftp服务 文件共享

22 ssh服务 安全的远程连接

23 telnet

25 smtp:简单邮件传输协议 发信

110 pop3:邮局协议 收信

80 http超文本传输协议 网页服务

3306 mysql端口

3389 Windows终端端口

/etc/service 所有常见的端口

netstat -tlun 查看本机所有监听的端口

例:

列出所有端口:netstat -a | more

列出所有tcp端口:netstat -at

列出所有udp端口:netstat -au

只显示监听端口:netstat -l

只列出所有监听tcp端口:netstat -lt

只列出所有监听udp端口:netstat -lu

7. 命令:ss

功能:类似于netstat命令

[root@localhost ~]# ss -atu
Netid State      Recv-Q Send-Q                 Local Address:Port                                   Peer Address:Port               
udp   UNCONN     0      0                                  *:1002                                              *:*                   
udp   UNCONN     0      0                                  *:sunrpc                                            *:*                   
udp   UNCONN     0      0                          127.0.0.1:323                                               *:*                   
udp   UNCONN     0      0                                 :::1002                                             :::*                   
udp   UNCONN     0      0                                 :::sunrpc                                           :::*                   
udp   UNCONN     0      0                                ::1:323                                              :::*                   
tcp   LISTEN     0      128                                *:sunrpc                                            *:*                   
tcp   LISTEN     0      128                                *:ssh                                               *:*                   
tcp   LISTEN     0      100                        127.0.0.1:smtp                                              *:*                   
tcp   ESTAB      0      52                    192.168.88.120:ssh                                    192.168.88.1:52506               
tcp   LISTEN     0      128                               :::sunrpc                                           :::*                   
tcp   LISTEN     0      128                               :::ssh                                              :::*                   
tcp   LISTEN     0      100                              ::1:smtp                                             :::*

8. 命令:write

功能:向指定的在线用户发送信息

[root@localhost ~]# write root tty1

“发送内容”

ctrl+d 保存,发送

#将指定内容发送给root用户所在的tty1终端上。也可以不指定终端,即信息发送给所有root用

户。

9. 命令:wall

功能:向所有在线用户发送信息

[root@localhost ~]# wall

hello

ctrl + d  #使用组合键才能发送信息

10. 命令:mail

功能:给指定用户发送邮件信息,以及接收邮件信息

[root@localhost ~]# mail zhangsan

hello

ctrl + d 发送邮件

九、系统资源查看命令

1. 命令:w

功能:查询当前登录服务器的用户

[root@localhost ~]# w
 19:12:16 up 10:54,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.88.1     16:22    8.00s  0.14s  0.00s w

第一行:当前时间 持续运行时间,登录用户数量,1分钟,5分钟,15分钟 前的平均负载

第二行:用户名 TTY:登录终端 FROM:来源IP 登录时间

IDLE:用户闲置时间

JCPU:所有进程占用cpu时间

PCPU:当前进程占用cpu时间

WHAT:用户正在进行的操作

2. 命令:who

功能:查询登录用户

命令所在路径:/usr/bin/who

执行权限:所有用户

[root@localhost ~]# who
root     pts/0        2020-05-25 16:22 (192.168.88.1)

3. 命令:last

功能:列出所有登录过系统的相关信息

命令所在路径:/usr/bin/last

执行权限:所有用户

[root@localhost ~]# last
root     pts/2        192.168.88.1     Tue May 26 02:52 - 03:00  (00:07)   
root     pts/1        192.168.88.1     Tue May 26 02:50 - 02:51  (00:00)   
root     pts/0        192.168.88.1     Mon May 25 16:22   still logged in  
root     pts/0        192.168.88.1     Mon May 25 16:18 - 16:18  (00:00)   
reboot   system boot  3.10.0-957.el7.x Mon May 25 16:17 - 03:13  (10:56)   
root     pts/0        192.168.88.1     Mon May 25 16:10 - down   (00:00)   
reboot   system boot  3.10.0-957.el7.x Mon May 25 16:10 - 16:11  (00:01)   
root     pts/0        192.168.88.1     Mon May 25 16:05 - down   (00:04)   
root     tty1                          Mon May 25 15:57 - 16:10  (00:12)   
reboot   system boot  3.10.0-957.el7.x Thu May 21 09:07 - 16:10 (4+07:03)  

wtmp begins Thu May 21 09:07:10 2020

4. 命令:lastlog

功能:显示所有账户最后一次的登录时间

命令所在路径:/usr/bin/lastlog

执行权限:所有用户

[root@localhost ~]# lastlog
用户名           端口     来自             最后登陆时间
root             pts/2    192.168.88.1     二 5月 24 00:52:18 +0800 2020
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**

5. 命令:lastb

功能:查看登录错误的信息(登录失败信息)

[root@localhost ~]# lastb
root     ssh:notty    192.168.88.1     Tue May 24 03:15 - 03:15  (00:00)   
root     ssh:notty    192.168.88.1     Tue May 24 03:15 - 03:15  (00:00)   
root     ssh:notty    192.168.88.1     Tue May 24 03:15 - 03:15  (00:00)   
root     ssh:notty    192.168.88.1     Tue May 24 03:15 - 03:15  (00:00)   
root     ssh:notty    192.168.88.1     Tue May 24 03:15 - 03:15  (00:00)   
root     ssh:notty    192.168.88.1     Tue May 24 03:15 - 03:15  (00:00)   

btmp begins Tue May 24 03:15:10 2020

十、挂载命令

Linux系统一切设备皆文件。比如第一张光盘,会被自动识别为/dev/sr0(设备文件的命名方式是

主设备号加次设备号。主设备号说明设备类型,次设备号说明是第几个设备),但并不能直接对光盘

正常使用。需要先进行挂载而后才能进行正常的安装等步骤。需要指定挂载点并执行挂载命令。(不

同的光盘之间需要重新挂载并指定挂载点才能正常使用)

命令名称:mount

命令所在路径:/bin/mount

1. mount

功能:查询系统中已经挂载的设备

常见的存储设备:

/dev/sda1      第一个scsi硬盘的第一分区        

/dev/cdrom     光盘

/dev/sr0       光盘

常用挂载点:

/mnt

/media

/cdrom

挂载格式:

mount [-t 文件系统类型] [-o 特殊选项] 设备文件名 挂载点

选项:

-t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660 等文件系统。

-o 特殊选项:可以指定挂载的额外选项,比如读写权限、同步异步等,如果不指定则默认值生效。

1Linux常用基础命令大全(详细整理)——Linux学习笔记_第5张图片

例1:mount 查看挂载信息

/dev/sda1 on /boot type ext4 (rw)

我们查看到/boot分区已经被挂载,而且采用的defaults选项,那么我 们重新挂载分区,并采用

noexec 权限禁止执行文件执行,看看会出现什么 情况(注意不要用/分区做试验,不然系统命令也不

能执行了)

[root@localhost ~]# mount -o remount,noexec /boot
[root@localhost ~]# cd /boot
[root@localhost ~]# vim hello.sh
#!/bin/bash echo “hello world!”
[root@localhost ~]# chmod 755 hello.sh
[root@localhost ~]# ./hello.sh
[root@localhost ~]# -bash: ./hello.sh: 权限不够
[root@localhost ~]# mount -o remount,exec /boot

例2:挂载硬盘分区,移动硬盘

[root@localhost ~]# mkdir /mnt/disk1

#创建挂载点

[root@localhost ~]# mount /dev/sdb1 /mnt/disk1

#挂载硬盘分区或者移动硬盘

例3:挂载光盘

[root@localhost ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom

#/mnt/cdrom必须是已存在的目录

例4:挂载U盘

[root@localhost ~]# fdisk -l

#查看当前系统下的存储设备,确认U盘的设备名称

[root@localhost ~]# mount -t vfat /dev/sdb1 /mnt/usb

#fat32格式的U盘挂载方式

-t vfat fat32

-t fat fat16

注:Linux默认情况不识别NTFS格式

例5:挂载.iso文件

[root@localhost ~]# mount -o loop /root/CentOS-7-x86_64-DVD-1810.iso /mnt/

加入loop选项让文件以块设备的方式进行挂载。

例6:卸载

umount 设备名称或挂载点

#所有挂载的设备卸载方式都一样

例7:挂载NTFS格式

[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install ntfs-3g
[root@localhost ~]# mount -t ntfs-3g /dev/sdb1 /media/
[root@localhost ~]# ls /media

你可能感兴趣的:(linux基础——学习笔记,linux,学习,运维)