Linux常见指令

Linux常见指令

01. ls 指令

语法格式: ls [参数] [文件或目录…]

功能: 在Linux中列出目录内容,以下列出高频指令

常见选项:

选项作用
-l一行只列出一个文件并长格式显示(权限、所有者、大小、修改时间等)
-a显示所有文件(包括隐藏文件,如 .bashrc
-h配合 -l 使用,人性化显示文件大小(如 KB/MB/GB)
-t按修改时间排序(最新优先)
-r对目录反向排序
-R列出所有子目录下的文件(递归)
-S按文件大小排序
--color彩色输出(通常默认启用)

参考示例:

 #列出当前目录内容的命令组合(详细视图):
 ls -al

在这里插入图片描述


02. cd 指令

语法格式: cd 目录名

功能: cd是Change Directory的缩写,用来对工作目录进行切换。

参考示例:

选项作用
`cd /xx/绝对路径
cd ../xx/显示所有文件(包括隐藏文件,如 .bashrc
cd ..返回上级目录
cd ~返回用户家目录
cd -在最近两个目录间快速切换

03. touch 指令

语法格式: touch [选项] 文件名…

功能:文件不存在时创建一个空文件,文件已存在时,默认更新其访问与修改时间戳为当前时间。

常见选项:

选项作用
-a仅更新访问时间
-m仅更新修改时间
-c不创建新文件(仅更新时间戳,文件不存在时不报错)
-t使用指定的日期时间,非现在的时间
-r参照其他文件的时间戳(同步两个文件的时间)

参考示例:

touch f1.txt         				  # 创建单个文件
touch log_{1..10}.txt  				  # 创建 log_1.txt 到 log_10.txt
touch existing_file    				  # 文件存在时将文件的访问和修改时间更新为当前时间
touch -a old_file      				  # 仅更新访问时间
touch -m old_file      				  # 仅更新修改时间
touch -t 202505031200.00 file.txt  	   # 将时间设为 2025年5月3日12:00:00
touch -r source.txt target.txt  	   # 将 target.txt 的时间设为与 source.txt 相同
touch -c non_existent_file 			   # 文件不存在时,不创建也不报错
touch file && > file       			   # 先更新时间戳,再清空内容,替代echo > file(创建文件并写入内容)
find . -name "*.bak" -exec touch {} \;  # 更新所有 .bak 文件的时间戳

04. mkdir 指令

语法格式: mkdir [选项] 目录名…

功能:用于创建目录的基础指令并支持批量创建和设置权限,mkdir不会覆盖已存在的目录(与touch不同),mkdir 只创建空目录。

常见选项:

选项作用
-p–parents,递归创建多级目录(路径中不存在的目录自动创建)
-m创建并设置目录权限,后跟xxx权限码,权限码指的是三个文件所有者的8进制形式权限
-v显示执行过程的详细信息

参考示例:

mkdir mydir          # 在当前目录创建 `mydir`
mkdir /tmp/data      # 在指定路径创建目录(需父目录存在)
mkdir -m 750 private_dir  # 权限可以以8进制形式识别,创建权限为 `rwxr-x---` 的目录
mkdir dir_{1..5}     # 创建 dir_1, dir_2, ..., dir_5

创建复制目录:

mkdir -p test/{src,logs,backup}  # 一次性创建多级目录结构

在这里插入图片描述

mkdir -pv a/b/c      # 输出:mkdir: created directory 'a/b/c',递归创建a/b/c目录结构

在这里插入图片描述
在这里插入图片描述

#在/home/目录下或者使用sudo提权+绝对路径在当前目录下创建复制目录结构
mkdir -p ~/project/{assets/{images,fonts},docs,output}#家目录下创建
[use_zhang@VM-8-16-centos lesson3]$ sudo mkdir -p /home/use_zhang/lesson3/test_01/{assets/{images,fonts},docs,output}#使用绝对路径,避免使用相对路径的时候创建不成功
mkdir -p existing_dir  # 即使目录存在也不会报错

05. rmdir && rm 指令

语法格式: rmdir [选项] 目录名…

功能: 用于删除指定的空目录,当目录不为空的时候删除会拒绝并且报错。

常见选项:

选项作用
-p递归删除所有子文件,若子目录删除后父目录为空,则连同父目录一起删除
-v显示操作过程详情信息

参考示例:

rmdir empty_folder          # 删除空目录 empty_folder
rmdir -p a/b/c              # 递归删除目录 a/b/c,若删除后 a/b 和 a 也为空则一起删除

rm -r 的区别

  • rmdir 只能删除空目录,更安全。
  • rm -r 目录名 会递归删除目录及其全部内容(包括文件和子目录),谨慎使用

语法格式: rm [选项] 文件/目录名

功能: 用于删除指定的空目录,当目录不为空的时候删除会拒绝并且报错。

常见选项:

选项作用
-f强制删除文件而不询问
-d仅删除无子文件的空目录
-i删除文件前询问用户是否确认
-r递归删除目录及其内全部子文件
-v显示操作过程详情信息

参考示例:

#权限不足时使用sudo提权删除
sudo rm -rf test_01 #强制递归删除该目录及其子目录

在这里插入图片描述


06. man 指令

语法格式: man 参数(章节) 对象

功能: man是manual的缩写,有很多参数,不可能都记住,所以我们需要查看手册获取帮助。

常见选项:

选项作用
-f显示指定关键字的简短描述信息
-k在所有手册页中搜索字符串
-a在所有手册页中搜索关键词
-w显示文件所在位置

参考示例:

man ls		    #查看命令帮助
man 2 open      # 查看系统调用 open 的文档
man 5 passwd    # 查看配置文件 /etc/passwd 的格式说明

手册章节:

章节内容类型
1普通用户命令(如 ls, rm
2系统调用(如 open, read)通过这个,至少可以很方便的查到调用这个函数,需要加什么头文
3库函数(如 printf, fopen
4特殊文件,也就是/dev下的各个设备文件
5配置文件格式(如 /etc/passwd
6给文件预留,由各个游戏自己定义
7是附件还有一些变量,(如向environ这种全局变量在这里就有说明)
8管理员命令,但是只能由root使用(如 mount, ifconfig

快捷键:

操作快捷键
向下翻页b
按行下翻Enter
按页下翻space
在手册中查找字符串/关键词(按 n 下一个,N 上一个)
退出q

07. cp 指令

语法格式: cp 参数 源文件名 目标文件名

功能:能够将一个或多个文件目录复制到指定位置,能高效完成文件管理任务,尤其是备份和归档场景。

注意:该操作默认覆盖文件,建议重要操作添加 -i 选项。若目标目录无写入权限,会报错 Permission denied。与mv相比,cp创建新文件副本占用双倍空间,而mv移动/重命名文件不额外占用空间

常见选项:

选项作用
-r / -R递归复制所以子文件
-i若目标文件已存在,则会询问是否覆盖
-f若目标文件已存在,则会询问是否覆盖
-v显示复制执行过程详细信息
-p保留原文件或目录的所有属性
-a归档模式(相当于 -rp,保留所有属性)
-u仅复制源中比目标更新的文件(增量备份)
-l创建硬链接而非复制,节省空间
-s创建符号链接软链接而非复制

参考示例:

#复制单个文件
cp src.txt des.txt              # 复制 src.txt 到 des.txt
cp -i notes.txt ~/Documents/    # 复制到目录,覆盖前确认
#递归复制目录到目标目录
cp -r dir1/ dir2/               # 递归复制 dir1 到 dir2
cp -a project/ des/             # 保留属性复制(适合备份)
#复制多个文件到指定目录中
cp *.jpg /photos/               # 复制所有 .jpg 文件到 /photos
cp f1.txt f2.txt ~/docs/  	    # 复制多个文件到目录
#cp操作后保留原有文件的属性
cp -p src.txt des/              # 保留原文件属性
#创建硬/软连接,非复制操作
cp -l f3.txt des/               # 创建硬链接(节省空间)
cp -s /bin/ls ~/ls_link         # 创建软链接(快捷方式)

08. mv 指令

语法格式: mv [选项] 源文件/目录 目标文件/目录(第二个参数)

功能:

  1. 根据mv命令中是目标文件还是目标目录对文件来说mv命令是对文件重命名,对目录来说mv命令是将其移

至一个新的目录中。 mv移动/重命名文件不额外占用空间

  1. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它
    将所给的源文件或目录重命名为给定的目标文件名。

  2. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至
    目标目录中。

常见选项:

选项作用
-i覆盖目标文件前询问用户是否确认
-f强制操作,不询问
-v显示执行过程详细信息
-n不允许覆盖已有文件
-u当源文件比目标文件更新时,才执行覆盖操作
-b覆盖前为目标文件创建备份

参考示例:

#第二个参数为文件时重命名
mv old.txt new.txt             # 文件重命名
#第一个参数是文件,二个参数为目录时,移动文件到指定目录中
mv src.txt ~/Documents/        # 移动单个文件
mv *.jpg /photos/              # 移动所有 .jpg 文件
#第一个,二个参数为目录时,移动原目录到指定目录中
mv dir1/ dir2/                 # 若 dir2 存在,将 dir1 移到 dir2 内,若 dir2 不存在, dir1 重命名为 dir2
mv -i src.c des/               # 覆盖前询问
mv -u src.c des/               # 仅当源文件比目标文件新时移动
mv -f src.c des/               # 强制覆盖覆盖

09. cat/tac 指令

语法格式: cat [选项] [文件…] — tac [选项] [文件…]

功能:taccat 常用于查看或组合文件的命令,前者默认连接文件并从上到下打印内容,后者与之相反。tac能够连接多个文件并且从上至下打印内容。tac 会加载整个文件到内存,处理大文件时可能消耗较多资源。两者均不适用于二进制文件。查看文件末尾的数据,建议使用tail+grep管道方式减少资源的消耗。

常见选项:

选项作用
-n显示行号(包括空行)
-b显示行号(忽略空行)
-s压缩连续空行为一行
-A显示所有控制字符(如换行符$、制表符^I

参考示例:

#正向连接文件并从上至下打印内容,并且显示行号
cat -n demo01.c demo02.c 

在这里插入图片描述

#合并多个文件到一个新文件中
cat demo01.c demo02.c >merge.c

在这里插入图片描述

#创建新文件,输入内容后通过Ctrl+D`保存
cat >new_f1.c

在这里插入图片描述

常见选项:

选项作用
-s使用字符串作为分隔标志
-b在行前添加分隔标志
-r将分隔标志视作正则表达式来解析

参考示例:

#快速查看日志
tac error.log | head -n 10  # 查看最后10条错误日志(最新在最前)
#合并后反转到一个新文件中
tac file1.txt file2.txt > reversed_merge.txt
#检查配置文件的结构
cat -n /xxx/yyy/zzz.conf
#反向搜索关键词
tac demo.txt | grep -m 5 "keyword"  # 从文件末尾向上搜索5个keyword

10. more 指令

语法格式: more [选项] 文件名

功能: more命令,功能与cat类似,分页查看工具,用于逐页显示文件内容(适合查看大文件),兼容性强,比less简单。支持向前翻页,支持文本搜索。一旦跳过某页,无法回看,同时 查看当前行号需手动按 =

常见选项:

选项作用
-d显示提示信息
-f统计实际的行数,而非自动换行的行数
-p直接清屏显示下一页
-s将多行压缩成一行显示
+数字从第 n行开始显示(如 more +10 file.txt
+/关键词从指定关键词开始显示文件内容

快捷键

快捷键功能
空格向下翻一页
Enter向下翻一行
=显示当前行号
q退出
h帮助菜单

参考示例:

#从第x行开始显示
more +10 file.txt		    # 从第10行开始显示
#搜索关键词并分页
more +/keyword app.log      # 从第一个 "keyword" 开始显示
#结合管道分页显示
cat large_file.txt | more  # 将长输出分页显示
#先进行清屏操作,随后以每次10行内容的格式显示指定的文本文件内容
more -c -10 f1.txt

11. less 指令

语法格式: less [选项] [文件]

功能:less 是 一个强大的分页查看工具,用于高效浏览大文件或命令输出,less 的用法比起 more 更加的有弹性。在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜等高级功能。

常见选项:

选项作用
-N显示行号
-i忽略搜索时的大小写
/字符串向下搜索“字符串”的功能
?字符串向上搜索“字符串”的功能
qquit

参考示例:

#查看文件并显示行号
less -N /etc/nginx/nginx.conf
#从匹配行开始查看
less +/keyword /var/log/syslog  # 打开后直接跳转到第一个 "keyword"
#多文件操作
less file1.txt file2.txt  # 打开多个文件

12. head 指令

语法格式: head [选项] [文件]

功能: head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

常见选项: -n <行数> 显示的行数


13. tail 指令

语法格式: tail [必要参数] [选择参数] [文件]

功能: 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

常见选项:
-f 循环读取

​ -n<行数> 显示行数


14. Cal 指令

语法格式: cal [参数] [月份] [年份]

功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份

常见选项:
-3 显示系统前一个月,当前月,下一个月的月历

​ -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)

​ -y 显示当前年份的日历


15. find 指令

语法格式: find pathname -options

功能:

​ 1.Linux下find命令在目录结构中搜索文件,并执行指定的操作。
​ 2.Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下。
​ 3.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限。
​ 4.在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系
统可能会花费很长的时间(这里是指30G字节以上的文件系统)。。

常见选项: -name 按照文件名查找文件。


16. grep 指令

语法格式: grep [选项] 搜寻字符串 文件

功能: 在文件中搜索字符串,将找到的行打印出来

常见选项:
-i :忽略大小写的不同,所以大小写视为相同

​ -n :顺便输出行号

​ -v :反向选择,亦即显示出没有 ‘搜寻字符串’ 内容的那一行


17. zip/uzip 指令

语法格式: zip 压缩文件.zip 目录或文件

功能: 将目录或文件压缩成zip格式

举例: 将test2目录压缩:zip test2.zip test2/*
解压到tmp目录:unzip test2.zip -d /tmp


18. tar 指令

功能: 打包/解包,不打开它,直接看内容

常见选项:
-c :建立一个压缩文件的参数指令(create 的意思);

​ -x :解开一个压缩文件的参数指令!

​ -t :查看 tarfile 里面的文件!

​ -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

​ -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

​ -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

​ -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

​ -C : 解压到指定目录

举例:

将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
 [root@linux tmp]# tar -cvf - /etc | tar -xvf 
这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
这分别代表 standard output, standard input 与管线命令啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值