Skip to content

Linux常用命令

查看IP地址

ifconfig

image-20260110120147953

说明:

  • ens33:VMware模拟出来的虚拟网卡
  • lo(loopback):本地回环,用于系统内部进程间通信
  • virbr0(virtual bridge):虚拟网桥,可以理解为数据链路层中的"交换机",根据MAC地址传送数据帧。在NAT模式下,虚拟机的网络拓扑,类似于,宿主机为路由器,是虚拟机的网关,虚拟机的隔离的进程环境,是一个个主机,可以分配IP连接到网桥上。
  • inet:IPV4地址
  • netmask:子网掩码
  • broadcast:广播地址
  • ether(Ethernet 以太网,数据链路层的概念):MAC地址
  • RX(receive,X 有跨越/交换的概念,是早期无线电和电报时代的习惯):接收数据
  • TX(Transmit):发送数据
  • 关于每个接口的flags,UP代表接口正在运行,BROADCAST代表支持广播,MULTICAST代表支持组播,RUNNING代表物理链路已就绪,LOOPBACK代表回环模式,这些所有的状态都会使用一个十六位的数表示,取值为2的n次幂(n = 0,1,2,3...),再将所有状态的十六进制数进行按位或运算,得到flags值,保证了flags的唯一性

ip addr

image-20260110123508370`

关机、重启

  1. shutdown -h[halt 停止] now / halt:立即进行关机
  2. shutdown -h 1:1分钟后关机,输入shutdown,默认执行该命令
  3. shutdown -r now / reboot:重启
  4. sync:把内存的数据同步到磁盘

注意:不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中,目前的shutdown/reboot/halt等命令在关机前进行了sync

用户登录注销

  1. 基本介绍

    • 登录时尽量少使用root账号登录,因为它是系统管理员,有最大的权限。为了避免操作失误,可以使用普通用户登录,登录后再su - [用户名]命令来切换到系统管理员身份
    • 在提示符下输入logout即可注销用户
  2. 使用细节

    • logout注销指令在图形运行级别无效,在运行级别3下有效

清屏

clear / Ctrl + l

用户管理

基本用户管理

  • useradd [用户名] :添加用户

  • userdel [用户名]:删除用户 带参数 -r 删除家目录

  • passwd [用户名] :为指定用户设置密码

  • su - [用户名]:切换到该用户

  • id [用户名]:查询用户信息

用户组管理

  • groupadd [组名]:添加组
  • groupdel [组名]:删除组
  • usermod -g [组名] [用户名]:修改用户所在组

帮助命令

  1. man获得帮助信息
    • 基本语法:man [命令或配置文件]
    • 案例:查看ls命令的帮助信息 man ls
  2. help
    • 基本语法:help [命令] 获得shell内置命令的帮助信息

文件目录类相关指令

  1. pwd 指令(print working directory)

    • 基本语法:pwd显示当前工作目录的绝对路径
  2. ls 指令(list)

    • 基本语法:ls [选项] [目录或文件]
    • 常用选项
      • -a:显示当前目录所有的文件和目录,包括隐藏的
      • -l:以列表的方式显示信息
  3. cd 指令(change directory)

    • 基本语法:cd [参数]切换到指定目录
    • 细节说明:~代表家目录,/代表根目录
  4. mkdir 指令

    • 基本语法:mkdir [选项] 要创建的目录
    • 常用选项
      • -p创建多级目录,在指定绝对路径时常用,例如 mkdir -p /home/animal/tiger(animal目录不存在,多级目录是指本次创建的目录数)
    • 细节说明:目录名可以是绝对路径也可以是相对路径
  5. rmdir 指令

    • 基本语法:rmdir [选项] 要删除的空目录
    • 细节说明:如果要删除的目录下有内容,需要使用rm -rf 要删除的目录,一定要谨慎
  6. touch 指令

    • 基本语法:touch 文件名称,创建空文件
  7. cp 指令(copy)

    • 基本语法:cp [选项] source dest
    • 常用选项
      • -r:递归复制整个文件夹
    • 细节说明:如果复制的时候要覆盖文件,使用 \cp 命令可以不用手动确认,\ 的原理是禁用别名,cp是 cp -i (interactive)交互式复制粘贴的别名,禁用别名后就会执行原始的cp不带-i参数的命令,也就不需要再确认了
  8. rm 指令(remove)

    • 基本语法:rm [选项] 要删除的文件或目录
    • 常用选项
      • -r:递归删除整个文件夹,可以达到删除文件夹的目的
      • -f:强制删除不提示
    • 细节说明,rm也有 \rm 的玩法,rm 是 rm -i 的别名,但是尽量使用 rm -f 跳过提示
  9. mv 指令(move)

    • 基本语法
      • mv oldFileName newFileName 重命名(两文件或目录需要在同一目录)
      • mv 旧路径 新路径 移动文件或目录
    • 细节说明,如果mv 旧路径 新路径,新路径中有写文件名称,就是移动并且重命名
  10. cat 指令(concatenate)

    • 基本语法:cat [选项] 要查看的文件 ,一次性展示所有内容,用于查看短小的配置文件
    • 常用选项
      • -n:显示行号
    • 使用细节:cat只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令 | more 或 less,管道命令将上一条指令的输出作为下一条指令的输入
  11. more 指令

    • 基本语法:more 要查看的文件,分页查看,只能向下翻页,用于查看中等长度的文件

    • more页面下操作:

      image-20260113171939533

  12. less 指令

    • 基本语法:less 要查看的文件,与more类似,但是比more更强大些,支持上下翻页和搜索,查看内容时,并不是将整个文件加载之后显示,比较省内存,适合查看大型日志文件

    • 操作:

      image-20260113174631933

  13. echo 指令

    • 基本语法:echo [选项] [输出内容],将输入的内容回显到屏幕上,类似于Print
    • 用处:
      • 查看环境变量,如想知道某个变量的值,配合$符号:echo $PATH
      • 配合“重定向”修改文件,可以覆盖写入,也可以追加写入
        • 覆盖写入(>):echo "nameserver 8.8.8.8" > /etc/resolv.conf
        • 追加写入(>>)echo "export JAVA_HOME=/usr/local/java" >> /etc/profile
      • 在Shell脚本中作提示,类似于sout
  14. head 指令

    • 基本语法:head 文件,默认查看文件前10行
    • 常用选项
      • -n 指定显示几行,如head -n 5 文件显示文件前五行
  15. tail 指令

    • 基本语法:tail 文件,默认查看文件尾10行的内容
    • 常用选项
      • -n 指定显示几行
      • -f(follow) 实时追踪该文档的所有更新,常用于监控日志和调试程序
  16. > 和 >> 指令

    • 基本语法
      • ls -l > 文件,列表的内容覆盖写入到文件中
      • cat 文件1 >> 文件,文件1的内容追加写入到文件中
      • echo 内容 >> 文件,将内容追加写入到文件中
  17. ln 指令

    • 基本语法:ln -s [原文件或目录] [软连接名] ,给原文件创建一个软链接,类似于Windows的快捷方式
    • 细节说明,如果使用软链接指向了一个目录,那么删除的时候不要带斜杠,类似于:rm -r myroot/,这样会进入链接的目录,把实际文件也删掉
  18. history 指令

    • 基本语法:history 查看已经执行过的历史命令
    • 常用选项
      • history 10查看最近10条指令
      • !编号再执行一遍该编号对应的指令

时间日期类相关指令

  1. date 指令
    • 基本语法
      • date 查看当前时间
      • date +%Y 查看当前年份
      • date "+%Y-%m-%d %H:%M:%S" 查看当前年月日时分秒(有空格需要加双引号)
      • date -s "2023-1-13 18:45:45" 修改当前系统时间
      • 校准时间方法请自行查询
  2. cal 指令
    • 基本语法:cal [选项],默认查看本月日历
    • cal 2026 查看2026年日历

搜索查找指令

  1. find 指令
    • 基本语法:find [搜索范围] [选项],find 指令将从指定目录从下递归遍历其各个子目录,将满足条件的文件或目录显示在终端
    • 常用选项
      • -name [文件名],可以使用通配符匹配文件
      • -user [用户名称]
      • -size [文件大小] (+n 大于n,-n小于n,n等于n;单位有 k , M ,G)
    • 案例
      • 根据名称查找/home目录下的hello.txt文件 find /home -name hello.txt
      • 查找/opt目录下,用户名称为nobody的文件 find /opt -user nobody
      • 查找整个Linux系统下大于200M的文件 find / -size +200M
  2. locate 指令
    • 基本语法:locate [要搜索的文件],locate可以查询文件所在路径。locate指令基于数据库进行查询,需要定期更新数据库,更新mlocate数据库的指令为updatedb,其速度比find指令快的多
  3. which 指令
    • 基本语法:which [指令],可以查看该指令在那个文件目录下
  4. grep 指令(Global Regular Expression Print 全局正则表达式搜索并打印)
    • 基本语法:grep [选项] 查找内容 源文件,通常与管道符 | 配合使用,将上一条指令的结果交给grep指令搜索
    • 常用选项
      • -n 显示匹配行及行号
      • -i 忽略字母大小写
    • 案例
      • 显示 /home/ethan/hello.txt 文件下yes所在行及行号
        • cat hello.txt | grep -n yesgrep -n yes hello.txt (在/home/ethan目录下)
      • 显示 ip addr 指令ens所在行及行号
        • ip addr | grep -n ens

压缩和解压缩指令

  1. gzip/gunzip 指令
    • 基本语法
      • gzip 文件,将文件压缩为一个 文件名.gz 的文件,原文件被删除,主要用于对单个文件进行压缩,不能压缩目录,要压缩目录需要先 tar 打包
      • gunzip 文件名.gz,也可以用 gzip -d 文件名.gz (decompress),解压缩某个文件,解压后 .gz 消失
  2. zip/unzip 指令
    • 基本语法
      • zip [选项] [压缩文件名.zip] [要压缩的文件或目录]
      • unzip [选项] [XXX.zip]
    • 常用选项
      • zip
        • -r 递归压缩,即压缩目录,在压缩目录时,尽量先进到目标目录位置,之后直接 zip -r [XXX.zip] [目标文件夹]
      • unzip
        • -d 解压到指定目录
  3. tar 指令(tape archive)
    • 基本语法:tar [选项] [XXX.tar.gz] [打包的文件或目录]
    • 常用选项:
      • -c:产生.tar打包文件
      • -x:解包.tar文件,extract
      • -t:列出内容,不进行解压,list
      • -z:打包同时通过gzip压缩
      • -v:显示详细信息,verbose
      • -f:指定压缩后的文件名,后面需要紧跟文件名
    • 案例
      • 压缩多个文件:tar -zcvf pc.tar.gz hello.txt Hello.txt txts.txt 多个文件中间用空格隔开
      • 压缩指定目录:tar -zcvf myhome.tar.gz ..代表当前目录
      • 查看压缩包内容:tar -ztvf pc.tar.gz
      • 将 pc.tar.gz 解压到指定目录:tar -zxvf pc.tar.gz -C /opt/tmp/,-C是切换目录的意思,默认解压到当前目录,并会覆盖掉当前目录的同名文件

组管理和权限管理

见Linux操作系统相关知识md文档