2023年了,这些Linux命令得会吧!还不收藏起来?

时间:2023-01-14 15:00:15

2023年了,这些Linux命令得会吧!还不收藏起来?

2023年了,这些Linux命令得会吧!还不收藏起来?


一、关机与重启指令

(1)shutdown - 关机

语法:shutdown

  • shutdown -h now 【立即关机】
  • shutdown -h 1 【1分钟后关机,shutdown后不填默认一分钟后关机】
  • shutdown -r now 【立即重启】

(2)halt - 关机

(3)reboot - 重启

(4)sync - 将内存的数据同步到磁盘

无论是要关机还是重启,建议先运行 sync 命令将内存数据保存到磁盘。

二、帮助指令

(1)man - 查看某个命令的帮助手册

语法:man 命令或配置文件

  • man ls 【查看 ls 命令的帮助手册】
  • man netstat 【查看 netstat 命令的帮助手册】

(2)help - 查看某个命令的帮助信息

语法:help 命令

  • help cd【查看 cd 命令的相关信息】

三、文件目录类指令

(1)pwd - 显示当前目录的绝对路径

语法:pwd

  • pwd 【查看当前路径】

(2)ls - 显示当前路径下的文件和目录

语法:ls 目录或文件

  • ls 【查看当前路径下所有文件或目录】
  • ls -l 【查看当前路径下所有文件或目录的详细信息】
  • ls -a 【查看当前路径下所有文件或目录,包括隐藏文件】
  • ls -l index 【查看当前路径下 index 下的详细信息】

(3)cd - 切换至指定目录

语法:cd 目录

  • cd /a 【切换到 /a 目录下】
  • cd ~ 【切换到用户主目录】
  • cd - 【切换到上一次访问的目录】
  • cd .. 【切换到当前目录的上一级】

(4)mkdir - 创建目录

语法:mkdir 目录名

  • mkdir index 【创建一个 index 目录(一级)】
  • mkdir -p index/a 【创建 index 目录,其下再创建 a 目录(多级)】

-p 选项用于创建多级目录。

(5)rmdir - 删除目录(空目录)

语法:rmdir 目录名

  • rmdir /home/a 【删除 home 下的 a 目录】
  • rmdir -rf /home/a 【强制删除 home 下的 a 目录】

rmdir删除的是空目录,目录下有内容时是无法删除的,-rf 则可删除非空目录,慎用。

(6)touch - 创建空文件

语法:touch 文件名

  • touch hello.txt 【创建 hello.txt 空文件】

(7)cp - 拷贝文件或目录到指定文件或目录

语法:cp 源文件 目标文件

  • cp hello.txt a/ 【拷贝 hello.txt 文件到 a 目录下】
  • cp -r /home/a /b/ 【递归将 home 下的整个 a 目录拷贝到 b 目录下】
  • \cp -r /home/a /b/ 【强制覆盖不提示】

如果连续执行相同的拷贝命令系统会一个一个提示是否覆盖文件内的文件,这时在 cp 前加一个 \ 就可以进行强制覆盖,不提示。

(8)rm - 删除文件或目录

语法:rm 文件或目录

  • rm a.txt 【删除 a.txt 文件】
  • rm -f a.txt 【强制删除 a.txt 文件,不提示】
  • rm -r /home/a 【递归删除整个 a 目录】
  • rm -rf /home/a 【递归删除整个 a 目录,不提示】

(9)mv - 移动文件与目录或重命名

语法:mv 旧文件名 新文件名、mv /源目录 /目标目录

  • mv a.txt b.txt 【将 a.txt 重命名为 b.txt】
  • mv a.txt test/ 【移动 a.txt 到 test 目录下】
  • mv abc bcd 【重命名目录 abc 为 bcd】
  • mv abc bcd/ 【将目录 abc 目录到 bcd 下】

重命名的前提是两个文件在同一个目录下。

(10)cat - 查看文件内容

语法:cat 文件

  • cat a.txt 【查看文件 a.txt 的内容】
  • cat -n a.txt 【查看文件 a.txt 的内容,并显示行号】

cat 指令查看文件比 vim 更安全,因为 cat 指令只能查看不能修改。

(11)more - 文本过滤器

语法:more 要查看的文件

  • more a.txt 【查看 a.txt 文件的内容】

more 指令是一个基于 vim 编辑器的文本过滤器,可以以全屏幕的方式按页显示文本文件的内容,且有若干快捷键

  • space;向下翻一页
  • Enter;向下翻一行
  • q;立即离开more,不再显示文件内容
  • Ctrl+F;向下滚动以一屏
  • Ctrl+B;返回上一屏
  • =;输出当前行的行号
  • :f;输出文件名和当前行的行号

more 指令也可以结合 cat 指令进行使用,可以让文件内容按百分比显示,使用管道指令 | more

  • cat a.txt | more 【查看文件 a.txt 的内容,并以百分比显示】

(12)less - 分屏查看文件内容

语法:less 查看的文件

less 用来分屏查看文件的内容,类似 more 指令但强于 more 指令,支持各种显示终端;less 在显示文件内容时,并不是一次将整个文件加载后才显示,而是根据显示需要来加载内容,效率较高。同样它也有相关快捷键:

  • space;向下翻动一页
  • pagedown;向下翻动一页
  • pageup;向上翻动一页
  • /字符串;向下搜寻字符串,n 向下,N 向上
  • ?字符串;向上搜寻字符串,n 向下,N 向上
  • q;离开 less

(13)echo - 输出内容到控制台

语法:echo 输出内容

  • echo 【输出环境变量PATH】
  • echo "Hello World" 【输出语句“Hello World”】

(14)head - 显示文件开头部分

语法:head 文件

  • head a.txt 【查看 a.txt 文件的前 10 行内容】
  • head -n 5 a.txt 【查看 a.txt 文件的前 5 行内容】

默认情况下 head 显示文件的前十行。

(15)tail - 显示文件尾部的部分

语法:tail 文件

  • tail a.txt 【查看 a.txt 文件的后 10 行内容】
  • tail -n 5 a.txt 【查看 a.txt 文件的后 5 行内容】
  • tail -f a.txt 【查看 a.txt 文件的后 10 行内容,并实时追踪文件更新】

(16)> / >> - 输出重定向/追加

  • cat 文件1 > 文件2 【将文件1的内容覆盖到文件2】
  • ls -l /home > /home/info.txt 【将 /home 下的文件列表写入 info.txt 中】
  • cal >> /time 【将当前日历信息追加到 /time 文件中】

重定向 > 会覆盖之前内容,追加 >> 会将新内容添加到之前内容的末尾。

(17)ln - 软链接

语法:ln -s 源文件 软链接名

  • ln -s /root /myroot 【创建一个软连接 myroot,连接到 /root 目录】
  • rm /myroot 【删除软连接 myroot】

软链接也称符号链接,类似 Windows 中的快捷方式,主要存放了链接其他文件的路径,删除软连接的方式与删除文件相同。

(18)history - 查看执行过的的历史命令

语法:history

  • history 【查看最近所有执行过的指令】
  • history 10 【查看最近执行过的10条指令】
  • !5 【执行历史编号为5的指令】

四、时间日期类指令

(1)date - 显示当前日期、设置日期

语法:datedata -s 时间

  • date 【显示当前时间】
  • date +%Y 【显示当前年份】
  • date +%m 【显示当前月份】
  • date +%d 【显示当前是哪一天】
  • date "+%Y-%m-%d %H:%M:%S" 【显示年月日时分秒】
  • data -s "2022-3-20 11:05:06" 【设置系统时间为...】

(2)cal - 查看日历

语法:cal

  • cal 【显示本月日历】
  • cal 2022 【显示 2022 年日历】

五、搜索查找类指令

(1)find - 查找文件

语法:find 范围 方式 文件

  • find /home -name a.txt 【根据文件名查找 home 下的 a.txt 文件】
  • find /home -user xiaoma 【根据用户查找 home 下用户昵称为 xiaoma 的文件】
  • find / -size 200M 【根据文件大小查找系统中大小为 200M 的文件】
  • find / -size +200M 【查找系统中大于 200M 的文件】

find 指令将从指定目录向下递归遍历其各个子目录,将满足条件的文件或目录显示在终端。

(2)locate - 定位文件路径

语法:locate 文件

  • updatedb 【创建 locate 数据库,第一次使用 locate指令前必须先创建数据库】
  • locate a.txt 【定位 a.txt 文件的路径】

locate 指令可以快速定位文件路径,利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位文件,无需遍历整个文件系统;但为了保证查询准确度,管理员须定期更新locate时刻。

(3)which - 定位指令路径

语法:which 指令

  • which ls 【检索 ls 指令所在路径】

(4)grep - 过滤查找

语法:grep 查找内容 源文件

  • grep "yes" hello.txt 【查找 hello.txt 文件中 “yes” 所在行】
  • cat hello.txt | grep "yes" 【查找 hello.txt 文件中 “yes” 所在行】
  • cat hello.txt | grep -n "yes" 【查找 hello.txt 文件中 “yes” 所在行并显示行号】

grep 过滤查找常和管道符 | 结合使用,表示将前一个命令的处理结果传递给后面处理。

六、压缩解压类指令

(1)gzip - 压缩文件

语法:gzip 文件

  • gzip hello.txt 【将 hello.txt 文件压缩为 .gz 文件】

(2)gunzip - 解压文件

语法:gunzip 文件.gz

  • gzip hello.txt.gz 【将 hello.txt.gz 文件压缩为 .txt 文件】

(3)zip - 压缩文件或目录

​​语法:zip xxx.zip 文件或目录

  • zip -r myhome.zip /home/ 【将 home 以及它的子目录压缩为 myhome.zip】

-r 递归压缩,用于压缩目录以及目录下的子文件夹。

(4)unzip - 解压文件或目录

语法:unzip xxx.zip

  • unzip -d /tmp myhome.zip 【将 myhome.zip 解压到 /tmp 目录下】

-d 用于指定解压后文件的存放目录。

(5)tar - 打包

语法:tar xxx.tar.gz 打包的内容

  • tar -zcvf a.tar.gz b.txt c.txt 【将 b.txt 和 c.txt 压缩成 a.tar.gz】
  • tar -zcvf a.tar.gz /home/ 【将 /home 下的文件夹压缩为 a.tar.gz】
  • tar -zxvf a.tar.gz 【将 a.tar.gz 解压到当前目录】
  • tar -zxvf a.tar.gz -C /tmp 【将 a.tar.gz 解压到 /tmp 目录下】

tar 打包后的文件为 .tar.gz 文件。