Liunx 常用命令

531 阅读3分钟

常见目录

Linux 中一切皆文件

目录 作用
/ 根目录
/boot 启动目录,启动相关文件
/dev 设备文件
/etc 配置文件
/home 普通用户的家目录,可以操作
/lib 系统库保存的目录
/mnt 移动设备挂载目录
/media 光盘挂在目录
/misc 磁带机挂载目录
/root 超级用户家目录,可以操作
/tmp 临时目录,可以操作
/proc 正在运行的内核信息的映射,主要输出进程信息、内存资源信息和磁盘分区信息等
/sys 硬件设备的驱动信息
/var 变量
/bin 普通的基本命令,如 ls、chmod 等,所有用户都可以使用
/sbin 基本的系统命令,如 shutdown、reboot,用于启动系统,修复系统,只有管理员权限才可以运行
/usr 系统资源 system resource,后期我们安装的软件都安装在这个文件夹下面
/usr/bin 后期安装的一些软件的运行脚本
/usr/sbin 放置一些用户安装的系统管理的必备程序

查看文件

  • 查看文件可能是接触 Linux 之后除了 cd 之后最先接触的命令了,他就是 ls
  • ls 语法:ls \[选项\] \[文件或者目录\]
  • ls 有很多选项可用:
    • -a 显示所有文件,包括隐藏文件(. 开头的文件是隐藏文件)
    • -l 显示详细信息
    • -d 查看目录本身的属性而不是子文件
    • -h 人性化的方式显示文件大小(human)
    • -i 显示 inode(i 节点,文件的节点),每个节点

文件搜索

locate

  • 在后台数据库中按文件名称搜索,速度比较快
  • 数据保存在 /var/bin/mlocate 后台数据库中,每天更新一次
  • 可以 updatedb 命令立即更新数据库
  • 只能搜索文件名
  • /etc/updatedb.conf 建立索引的配置文件
    • PRUNE_BIND_MOUNTS = yes 全部生效,开启搜索限制
    • PRUNEFS 不搜索文件系统
    • PRUNENANMES 忽略的文件类型
    • PRUNEPATHS 忽略的路径

whereis

  • 搜索命令所在的路径以及帮助文档所在的位置
  • whereis
    • -b 只查找可执行文件
    • -m 只查找帮助文档

which

  • 可以查看别名 which is
  • 能看到的都是外部安装的命令
  • 无法查看 shell 自带的命令,如 which、cd

环境变量

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

  • 定义的是系统搜索命令的路径
  • echo $PATH 这个命令可以看到这个路径,多个路径用 : 隔开

find

  • 文件搜索命令

  • find [查找范围] [搜索范围]

  • find 搜索是磁盘搜索,比较消耗系统资源,所以尽量避免大范围搜索

  • find 搜索可以使用通配符

    • * 匹配任意内容
    • ? 匹配任意一个字符
    • [] 匹配任意一个中括号内的字符
  • 参数 -i 可以做到区分大小写(Linux 是区分大小写的,Windows 不区分大小写)

  • 根据大小搜索,k 小写,M 大写

    参数 含义
    -8k 小于 8k
    8k 等于 8k
    +8k 大于 8k
    +8M 大于 8M
  • 用法还有很多,这些基本够用了,其他的用到在记录吧

  # 普通用法
  find /root -name 1.txt
  # 通配符用法
  find /root -name *.txt
  find /root -name [cdef12].txt
  # 不区分大小写
  find /root -iname a.txt
  # 按照大小搜索
  find /tmp -size -100k

grep

  • 在当前文件中匹配符合条件的字符串,语法 grep \[option\] '搜寻字符串' 文件名
  • 可以组合使用一些参数
    • -i 忽略大小写(ignore)
    • -v 排除指定字符串,或者说取反操作
  • 与 find 的区别:
    • find:在系统中搜索符合条件的文件名,如果需要匹配,使用通配符匹配
    • grep:在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配
  grep mlocate install.log
  # 还可以使用管道符
  cat install.log | grep mlocate

压缩解压缩

zip 格式

压缩文件或者目录,是一种压缩格式

  • 压缩文件 zip 压缩文件名.zip 源文件
  • 压缩目录 zip -r 压缩目录名.zip 源文件
  • 解压 unzip 压缩目录名.zip
  # 压缩文件
  zip a.txt.zip a.txt
  # 压缩文件夹
  zip -r book.zip book
  # 解压
  unzip a.txt.zip

gzip 格式

gzip 为高压,可以把文件压缩的更小,压缩目录是压缩目录下的文件

命令 示例 含义
gzip 源文件 gzip a.txt 压缩为 .gz 格式的文件,源文件会消失
gzip -c 源文件 > 压缩文件 gzip -c a.txt > a.txt.gz 压缩为 .gz 格式的文件,会保留源文件
gzip -r 目录 gzip -r xx 把目录下的每个子文件都变成压缩包,并且删除源文件,当前目录没有变化
gzip -d 压缩目录名 gzip -d a.txt.gz 解压文件,不保留压缩包
gunzip 压缩文件 gunzip a.txt.gz 解压文件,不保留压缩包
# 压缩文件
gzip a.txt
# 压缩文件夹
gzip -r book
# 解压
gzip -dr book
# or,压缩或者解压目录都需要加上 -r 参数
gunzip -r book

bz2 格式

bzip2 是一个压缩能力更强的压缩程序,不过出来的比较晚,所以用的没有 gzipzip 多,但也不少

注意:bzip2 不能压缩目录

命令 示例 含义
bzip2 源文件 bzip2 a.txt 压缩为 .bz2 结尾的文件,不保留源文件
bzip2 -k 源文件 bzip2 -k a.txt 压缩为 .bz2 结尾的文件,保留源文件
bzip2 -d 压缩文件名 bzip2 -d a.txt.bz2 解压文件,不保留压缩包
bunzip2 压缩文件名 bunzip2 1.txt.bz2 解压文件,保留压缩包

tar

打包命令,只打包不压缩

1. 打包

  • 用法:tar -cvf 打包文件名 源文件
    • -c 打包
    • -v 显示过程
    • -f 指定打包后的文件名
  tar -cvf book.tar book

2. 解打包

-c 是打包,-x 是解包,只需要把参数换一下即可

tar -xvf book.tar

tar.gz 压缩格式

zip 可以压缩目录但压缩率不高,gzipbzip2 压缩效率高但不支持压缩目录

所有可以先打包为 .tar 格式,在压缩为 .gz 格式

-z 压缩为 .tar.gz 格式 -x 解压缩 .tar.gz 格式

命令 示例 含义
tar -zcvf 压缩包名.tar.gz 源文件 tar -zcvf book.tar.gz book 先打包为 .tar 格式,在压缩为 .gz 格式
tar -zxvf 压缩包名.tar.gz tar -zxvf book.tar.gz 解压 .tar.gz 压缩包
tar -jcvf 压缩包名.tar.bz2 源文件 tar -jcvf book.tar.bz2 book 先打包为 .tar 格式,在压缩为 .bz2 格式
tar -jxvf 压缩包名.tar.bz2 tar -jxvf book.tar.bz2 解压 .tar.bz2 压缩包

关机和重启

shutdown

  • shutdown 关机命令,参数后面需要加一个时间
    • -c 取消前一个关机命令
    • -h 关机
    • -r 重启
  # 设置一个重启时间
  shutdown -r 6:00
  # 取消上一个关机命令
  shutdown -c

init

init 是切换工作模式

关机 init 0

重启 init 6

logout

logout 退出登录

查看登录用户信息

w

查看登录用户信息

  • USER 登录用户名
  • TTY 登录的终端 tty1 本地 pts/0 远程终端
  • FROM 登录的 IP
  • LOGIN 登录时间
  • IDLE 用户闲置时间
  • JCPU 该终端所有进程占用的时间
  • PCPU 当前进程所占用的时间
  • WHAT 正在执行的命令
[root@localhost ~]# w
 09:51:40 up 7 min,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                09:45    6:17   0.01s  0.01s -bash
root     pts/0    192.168.1.105    09:45    0.00s  0.02s  0.00s w

who

查看登录用户信息,比 w 显示的少,意思差不多

  • USER 登录的用户名
  • TTY 登录的终端 tty1 本地 pts/0 远程终端
  • LOGIN 登录时间(登录 IP)
[root@localhost ~]# who
root     tty1         2020-01-29 09:45
root     pts/0        2020-01-29 09:45 (192.168.1.105)

last

  • last 查看当前登录和过去登录的用户信息

    • 显示字段分别为:用户名、登录终端、登录 IP、登录时间、退出时间(在线时间)
  • lastlog 查看所有用户的最后一次登录时间

    • 显示字段分别为:用户名、登录终端、登录 IP、最后一次登录时间

磁盘管理

df

查看磁盘分区使用情况

参数 描述
-i 仅显示本地磁盘(默认)
-a 显示所有文件系统的使用情况
-h 以 1024 进制计算最合适的单位显示磁盘容量
-H 以 1000 进制计算最合适的单位显示磁盘容量
-T 显示磁盘类型
-t 显示指定类型文件系统的磁盘分区
-x 不显示指定类型文件系统的磁盘分区

du

统计磁盘上的文件大小

参数 描述
-b 以 byte 为单位统计文件
-k 以 KB 为单位统计文件
-m 以 MB 为单位统计文件
-h 以 1024 为单位统计文件
-H 以 1000 为单位统计文件
-s 指定统计目标

文件查看和管理

cat

  • cat 用于连接文件并打印到标准输出设备上
  • 用法:cat 文件名,也可以加参数 -n 对输出行进行编号

more

more 类似于 cat,不过会进行翻页处理,空格 往后翻页,b 往前翻页

head

head 用来显示前几行的文字区块

# 显示 a.txt 中前十行的内容
head -10 a.txt

tail

有头就有尾是吧,head 显示前几行,tail 显示最后几行

  • tail 有一个常用的参数 -f 用于可以查阅正在改变的文件,经常被用作来查看系统日志
    • -f 循环读取
    • -n 行号,显示文件尾部 n 行的内容
# 查看安装日志
tail -f install.log

vi 编译器

vi 编译器是 Linux 中的编译器,类似于 Windows 中的记事本,Vimvi 编译器的升级版,不需要鼠标只用键盘就可以

操作模式

三种操作模式:

  1. 刚开始打开的时候不能输入东西,写东西写不进去,此时属于命令模式,命令模式是不能直接编辑的;
  2. 进入编辑模式有四种方式,输入 aios 即可进入输入模式(append、insert),ESC 键退出编辑模式
  3. 在命令模式下,按下 : 键进入底行模式,在底行模式下,按两次 ESC 键退出底行模式
模式名 含义
命令模式 等待输入的模式
输入模式 编辑模式,用于输入文本
底行模式 可以输入指令、搜索、保存

Linux操作模式

打开文件

输入 vi 文件名 即可打开文件,默认定位到第一行,也可以输入 vi +n 文件名 打开文件定位到第 n

底行模式

命令 含义
:w 把文件写入保存到硬盘中
:q 退出当前 vi 编译器打开的文件
:! 强制保存
:n 下一个
:N 上一个
:数字 快速定位到当前文件第几行
/xxx 从光标位置开始搜索 xxx 字符串
?xxx 从光标位置开始向前搜索

命令可以组合使用,比如 :q! 就是强制退出 vi 编译器

命令模式

1. 翻页

命令 含义
ctrl + f 向下翻页
ctrl + b 向上翻页
ctrl + d 向下翻半页
ctrl + u 向上翻半页

2. 插入

命令 含义
i 在当前位置插入(insert)
a 在当前光标右边插入(append)
A 在当前光标所在行的行末尾插入
o 在光标所在行下面插入新的一行
O 在光标所在行上面插入新的一行
s 删除当前光标位置的内容并插入

3. 删除

  • 字符删除

    命令 含义
    x 删除当前字符
    dw 删除一个单词(delete word),包括空格
    de 删除一个单词,不包括空格
    d$ 从当前位置删到行尾
  • 行删除

    命令 含义
    dd 删除光标所在行
    2dd 删除光标两行

4. 撤销

命令 含义
u 撤销最后一次执行的命令(undo)
U 恢复该行的原始状态
ctrl + r 恢复重做命令

5. 剪切

命令 含义
dd 删除光标所在行
yy 复制所在行
p 在光标所在行下方粘贴一行
P 在光标所在行上方粘贴一行

6. 替换

命令 含义
r 替换当前位置字符(replace)
cw 修改单词(change word)
c$ 修改当前位置到行尾

7. 跳转指定行

命令 含义
ctrl + g 显示当前编辑文件中当前光标所在的位置信息
shift + g 跳到最后一行
数字 + shift + g 跳转到数字对应的行数

8. 搜索

命令 含义
/ 输入 / + 字符串 可以在文件中查找包含该字符串的
n 查找上一个
shift + n 查找上一个
? 逆向查找字符串
shift + % 可以将光标移动到匹配的括号上
shift + $ 可以将光标移动到行尾

9. 修正错误

命令 含义
:s/老字符/新字符 把光标所在行的老字符替换成新字符
:s/老字符/新字符/g 把所在行的所有老字符替换成新字符

参考文献

本文章整理自珠峰培训架构课程