《Linux》跟老男孩学Linux核心系统命令
1|0一、命令行简介
1|11.1 Linux 命令行提示符介绍
1、#号,是使用超级用户root登录后的命令行结尾提示符,而$号是使用普通用户登录后的命令行结尾提示符。
2、命令行提示符@前面的字符代表当前登录的用户(可用whoami查询),@后面的为主机名(可用hostname查询),~所在的位置是窗口当前用户所在的路径。
系统Bash命令行的提示符是由一个称为PS1的系统环境变量控制的。
PS1变量 | 含义 |
\d | 代表日期,格式为weekday month date,例如“Mon Aug 1” |
\H | 完整的主机名称 |
\h | 仅取主机的第一个名字 |
\t | 显示时间为24小时格式,如:HH:MM:SS |
\T | 显示时间为12小时格式 |
\A | 显示时间为24小时格式:HH:MM |
\u | 当前用户的账号名称 |
\v | BASH的版本信息 |
\w | 显示完整的路径,其中家目录会以~代替,这是本例的主角 |
\W | 利用basename取得工作目录名称,所以只会列出最后一个目录 |
\# | 执行的第几个命令 |
$ | 提示字符,如果是root,则提示符为#,如果是普通用户,则为$ |
因此,要查看当前的PS1变量的值,可采用如下命令:
临时修改PS1变量对应的值:
永久修改
1|21.2 Linux命令行常用快捷键
常用连接工具SecureCRT 和 Xshell 客户端软件,以下快捷键也正对这两个工具。
快捷键 | 供能说明(标红带*为常用) |
最有用的快捷键 | |
tab | 命令或路径等的补全键,Linux最有的快捷键* |
移动光标快捷键 | |
Ctrl+a | 光标回到命令行首* |
Ctrl+e | 光标回到命令行尾* |
Ctrl+f | 光标向右移动一个字符(相当于方向键右键) |
Ctrl+b | 光标向左移动一个字符(相当于方向键左键) |
剪切、粘贴、清除快捷键 | |
Ctrl+Insert | 复制命令行内容* |
Shift+Insert | 粘贴命令行内容* |
Ctrl+k | 剪切(删除)光标处当行尾位的字符* |
Ctrl+u | 剪切(删除)光标处当行首的字符* |
Ctrl+w | 剪切(删除)光标前的一个单词 |
Ctrl+y | 粘贴Ctrl+u/Ctrl+k/Ctrl+w删除的文本 |
Ctrl+c | 中断终端正在执行的任务或者删除整行* |
Ctrl+h | 删除光标所在处的前一个字符(相当于退格键) |
重复执行命令快捷键 | |
Ctrl+d | 退出当前Shell命令行* |
Ctrl+r | 搜索命令行使用过的历史命令记录* |
Ctrl+g | 从执行Ctrl+r的搜索历史命令模式中退出 |
控制快捷键 | |
Ctrl+l | 清除屏幕的所有内容,并在屏幕的最上面开始一个新行,等同于clear命令 |
Ctrl+s | 锁定终端,使之无法输入内容 |
Ctrl+q | 解锁执行Ctrl+s的锁定状态 |
Ctrl+z | 暂停执行在终端运行的任务* |
!号开头的快捷命令 | |
!! | 执行上一条命令 |
!pw | 执行最近以pw开头的命令* |
!pw:p | 仅打印最近以pw开头的命令,但不执行 |
!num | 执行历史命令列表的第num(数字)条命令* |
!$ | 上一条命令的最后一个参数,相当于Esc+.(点) |
ESC相关 | |
Esc+.(点) | 获取上一条命令最后的部分(空格分隔)* |
Esc+b | 移动到当前单词的开头 |
Esc+f | 移动到当前单词的结尾 |
1|31.3 在Linux命令行下查看命令帮助
如果需要中文显示,需要调整系统字符集为 zh_CN.UTF-8
bash内置命令:
在Linux系统里有一些特殊的命令,它们就是bash程序的内置命令,例如cd、history、read等,这些命令在系统目录里不存在真实的程序文件(存在于bahs程序里)
还有一个很少用的,跟man差不多的命令info,但是几乎用不到。
1|41.4 Liinux 关机、重启、注销
shutdown
参数选项 | 解释说明 |
-r | 重启系统,而不是关机,shutdown -r now |
-h | 关机,shutdown -h now |
-c | 取消正在执行的shutdown指令 |
其他命令表
命令 | 说明 |
关机命令 | |
shutdown -h now | 立即关机 |
shutdown -h +1 | 1分钟后关机,1可以是别的数字或时间点,例如:11:00。shutdown -c取消 |
halt | 立即停止系统,需要人工关闭电源,是reboot的链接文件 |
init 0 | 切换运行级别到0,0表示关机,因此此命令的作用就是关机 |
poweroff | 立即停止系统,并且关闭电源 |
重启命令 | |
reboot | 立即重启(生产常用) |
shutdown -r now | 立即重启(生产常用) |
shutdown -r +1 | 1分钟后重启 |
init 6 | 切换运行级别到6,6表示重启,因此此命令的作用就是重启 |
注销命令 | |
logout | 注销退出当前用户窗口 |
exit | 注销退出当前用户窗口,快捷键Ctrl+d |
2|0二、文件和目录操作命令
2|12.1 pwd:显示当前所在的位置 *****
pwd 命令是 “print working directory”的缩写,其功能是显示当前工作目录的绝对路径。正常情况下使用不带参数。
2|22.2 cd:切换目录 *****
cd命令是 "Change Directory"的缩写,其功能是从当前工作目录切换到指定的工作目录。
该命令是 bash shell 内置命令。
参数选项 | 解释说明(带*的为重点) |
- | 当只使用“-”选项时,将会从当前目录切换到系统环境变量"OLDPWD"对应值的目录路径,即当前用户上一次所在的目录路径 |
~ |
当只使用“-”选项时,将会从当前目录切换到系统环境变量"HOME"对应值的目录路径,即当前用户的家目录所在的路径 |
.. | 当只使用“..”选项时,将会从当前目录切换到当前目录的上一级目录所在的路径 |
2|32.3 tree:以树形结构显示目录下的内容
功能是以树形结构列出制定目录下的所有内容,包括所有文件、子目录即子目录里的目录和文件。
tree 命令需要安装,检查 rpm -qa tree ,安装 yum -y install tree
参数选项 | 解释说明 |
-a | 显示所有文件,包括隐藏文件(以 "." 点开头的文件) |
-d | 只显示目录* |
-f | 显示每个文件的全路径 |
-i | 不显示树枝,常与-f参数配合使用 |
-L level | 遍历目录的最大层数,level为大于0的正整数* |
-F | 在执行文件、目录、Socket、符号连接、管道名称等不同类型文件的结尾,各自加上 "*"、"/"、"="、"@"、"|"号,类似于 ls 命令的 -F 选项 |
如果出现系统字符集问题,不能正确显示中文,以下命令解决
实例:
技巧性实例
2|42.4 mkdir:创建目录 *****
mkdir 是“make directions”缩写。功能是创建目录。如果目录已经存在,会提示,而不会继续创建。
参数选项 | 解释说明(带 * 的为重点) |
-p |
1:递归创建目录 2:即使要创建的目录事先已存在也不会报错提示目录已存在 |
-m | 设置新创建目录的默认目录对应的权限 |
-v | 显示创建目录的过程 |
扩展知识:大括号{}
生产案例:写了一个Shell脚本,准备对某个目录(假如目录很大, 几百个GB)做一些操作,在此之前要测试脚本,所以要搭建一个模拟环境,然后把目录结构复制过去。
2|52.5 touch:创建空文件或改变文件的时间戳属性 *****
touch命令有两个功能:一是创建新的空文件;二是改变已有文件的时间戳属性
参数选项 | 解释说明 |
-a | 只更改指定文件的最后访问时间 |
-d STRING | 使用字符串 STRING 代表的时间作为模板设置指定文件的时间属性 |
-m | 只更改指定文件的最后修改时间 |
-r file | 将指定文件的时间属性设置为与模板文件 file 的时间属性相同 |
-t STAMP | 使用 [[CC]YY]MMDDhhmm[.ss]格式的时间设置文件的时间属性。格式的含义从左到右依次为:世纪、年、月、日、时、分、秒 |
扩展知识
GNU/Linux 的文件有3种类型的时间戳
2|62.6 ls:显示目录下的内容及相关属性信息 *****
list的缩写
参数选项 | 解释说明 |
-l | 使用长格式列出文件及目录信息 |
-a | 显示目录下的所有文件,包括以“.”字符开始的隐藏文件 |
-t | 根据最后的修改时间(mtime)排序,默认是以文件名排序 |
-r | 依相反次序排序 |
-F | 在条目后加上文件类型的指示符号(*、/、=、@、|,其中的一个) |
-p | 只在目录后面加上“/” |
-i | 显示inode节点信息 |
-d | 当遇到目录时,列出目录本身而非目录内的文件,并且不跟随符号链接 |
-h | 以人类可读的信息显示文件或目录大小,如1KB,23MB,2GB等 |
-A | 列出所有文件,包括隐藏文件,但不包括“.”与“..”这两个目录 |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
-x | 逐行列出项目而不是逐栏列出 |
-X | 根据扩展名排序 |
-c | 根据状态改变时间(ctime)排序 |
-u | 根据最后访问时间(atime)排序 |
--color={never,always,auto} | 不同的文件类型显示不同的颜色参数,never表示不显示,always表示总是显示,auto表示自动显示 |
--full-time | 以完整的时间格式输出 |
--time-style={full-iso,long-iso,iso,locale} | 以不同的时间格式输出,long-iso效果最好 |
--time={atime,ctime} | 按不同的时间属性输出,atime表示按访问时间,ctime表示按改变权限属性时间,如果不加此参数则默认为最后修改时间 |
ls -F 命令的扩展知识
文件输出内容的属性解读
列属性 | 属性说明 |
文件inode索引 | test文件的inode索引节点编号为12345 |
文件类型 | 文件类型是 - ,表示这是一个普通文件 |
文件权限 | 文件权限是 rw-r--r--,表示文件属主可读、可写,文件所归属的用户组可读,其他用户可读 |
硬链接数个数 | 表示test这个文件没有其他的硬链接;因为连接数是1,就是它本身 |
文件属主 | 这个文件所属的用户,这里的意思是test文件被root用户所拥有,是第一个root |
文件属组 | 这个文件所属的用户组,在这里是root用户组,是第二个root |
文件大小 | 文件大小是35字节 |
文件修改时间 | 这里的时间是test文件最后被更新(包括文件创建、内容更新、文件名更新等)的时间,可用如下命令查看文件的修改、访问及变化的时间;ls -l、ls -l --time=atime、ls -l --time=ctime,注意:这里只是显示不同的文件属性时间,并不是按照属性时间排序 |
2|72.7 cp:复制文件或目录 *****
copy的缩写
参数选项 | 解释说明 |
-p | 复制文件时保持源文件的所有者、权限信息及时间属性 |
-d | 如果复制的源文件是符号链接,那么仅复制符号链接本身,而且保留符号链接所指向的目标文件或目录 |
-r | 递归复制目录,即复制目录下的所有层级的子目录及文件 |
-a | 等同于上面的p、d、r这3个选项功能的总和 |
-i | 覆盖已有文件前提示用户确认 |
-t | 默认情况下命令格式是“cp 源文件 目标文件”,使用 -t 参数可以颠倒顺序,格式变为 “cp -t 目标文件 源文件” |
cp 覆盖文件之前不提示是否覆盖的几种方法(原因,cp有默认别名,cp -i)
2|82.8 mv:移动或重命名文件 *****
参数选项 | 解释说明 |
-f | 若目标文件已经存在,则不会询问而是直接覆盖 |
-i | 如目标文件已经存在,则会询问是否覆盖 |
-n | 不覆盖已经存在的文件 |
-t | 指定 mv 的目标目录,适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后,和cp命令的-t选项功能一致 |
-u | 在源文件比目标文件新,或目标文件不存在时才进行移动 |
2|9 2.9 rm:删除文件或目录 *****
remove 的缩写,删除一个或多个文件或目录。
参数选项 | 解释说明 |
-f | 强制删除。忽略不存在的文件,不提示确认 |
-i | 在删除前需要确认 |
-I | 在删除超过三个文件或者递归删除前要求确认 |
-r | 递归删除目录及其内容 |
rm 非常危险
2|102.10 rmdir:删除空目录 *
几乎不用
参数选项 | 解释说明 |
-p | 递归删除目录,当子目录删除后其父目录为空时,也一并删除。如果整个路径被删除,或者由于某种原因保留了部分路径,则系统在标准输出上显示相应的信息 |
-v | 显示命令的执行过程 |
2|112.11 ln:硬链接与软链接 *****
link的缩写。其功能是创建文件间的链接(make links between files),链接类型包括硬链接(hard link)和软链接(符号链接,symbolic link)
参数选项 | 解释说明 |
无参数 | 创建硬链接 |
-s | 创建软链接 |
2.11.1 硬链接
硬链接是指通过索引节点(inode)来进行链接。在linux(ext2、ext3、ext4)文件系统中,所有文件都有一个独有的inode编号。在Linux文件系统中,多个文件名指向同一个索引节点(inode)是正常且允许的。这种情况下的文件就被称为硬链接。
2.11.2 软链接
类似于windows里面的快捷方式
2.11.3 目录链接
2|122.12 readlink:查看符号链接文件的内容 **
使用cat命令查看软链接文件时,看到的是源文件内容。可以用readlink查看软链接的真实内容。
参数选项 | 解释说明 |
-f |
一直跟随符号链接,直到非符号链接的文件位置,但要保证最后必须存在一个非符号链接的文件 |
2|13 2.13 find:查找目录下的文件 *****
find 命令用于查找目录下的文件,同时也可以调用其他命令执行相应的操作。
参数选项 | 解释说明 |
pathname | 命令所查找的目录路径,例如用“.”来表示当前目录,用“/”来表示系统根目录 |
Option 模块 | |
-depth | 从指定目录下最深层的子目录开始查找 |
-maxdepth levels | 查找的最大目录级数,levels为自然数 |
-regextype type | 改变正则表达式的模式。默认为emac,还有posix-awk,posix-basic,posix-egrep,posix-extended |
Tests 模块 | |
-mtime[-n|n|+n] |
按照文件的修改时间来查找文件(这个参数最常用),具体如下: -n 表示文件更改时间距现在n天以前 +n 表示文件更改时间距现在n天以前 n是距现在第n天 |
-atime[-n|n|+n] |
按照文件的访问时间来查找文件,单位为天 |
-ctime[-n|n|+n] | 按照文件的状态改变时间来查找文件,单位为天 |
-amin | 按照文件的访问时间来查找文件,单位为分钟 |
-cmin | 按照文件的状态改变时间来查找文件,单位为分钟 |
-mmin | 按照文件的修改时间来查找文件,单位为分钟 |
-group | 按照文件所属的组来查找文件 |
-name | 按照文件名查找文件,只支持*、?、[]等特殊通配符 |
-newer | 查找更改时间比指定文件新的文件 |
-nogroup | 查找没有有效用户组的文件,即该文件所属的组在 /etc/groups 中不存在 |
-nouser | 查找没有有效属主的文件,即该文件的属主在 /etc/passwd 中不存在 |
-path pattern | 指定路径样式,配合 -prune 参数排除指定目录 |
-perm | 按照文件权限来查找文件 |
-regex | 接正则表达式 |
-iregex | 接正则表达式,不区分大小写 |
-size n[cwbkMG] | 查找文件长度为n块的文件,带有cwbkMG时表示文件长度以字节计 |
-user | 按照文件属主来查找文件 |
-type |
查找某一类型的文件 b(块设备文件) c(字符设备文件) d(目录) p(管道文件) l(符号链接文件) f(普通文件) s(socket文件) D(door) |
Actions 模块 | |
-delete | 将查找出的文件删除 |
-exec | 对匹配的文件执行该参数所给出的Shell命令 |
-ok | 和-exec作用想用,但在执行每个命令之前,都会让用户先确定是否执行 |
-prune | 使用这一选项可以使find命令不在当前指定的目录中查找 |
将匹配的文件输出到标注输出(默认功能,使用中可省略) | |
OPERATORS | find支持逻辑运算符 |
! | 取反 |
-a | 取交集,全拼为and |
-o | 取并集,全拼为or |
2|142.14 xargs:将标准输入转换成命令行参数 ****
xargs命令是向其他命令传递命令行参数的一个过滤器,能够将管道或者标准输入传递的数据转换成xargs命令后跟随的命令的命令行参数。
参数选项 | 解释说明 |
-n | 指定每行的最大参数量n,可以将标准输入的文本划分为多行,每行n个参数,默认空格分隔 |
-d | 自定义分隔符 |
-i | 以 {} 替代前面的结果 |
-I | 指定一个符号替代前面的结果,而不用 -i 参数默认的 {} |
-p | 提示让用户确认是否执行后面的命令 |
-0 | 用 null 代替空格作为分隔符,配合 find 命令的 -print()选项的输出使用 |
2|152.15 rename:重命名文件 ***
2|162.16 basename:显示文件名或目录名
2|172.17 dirname:显示文件或目录路径 ***
2|182.18 chattr:改变文件的扩展属性 ***
chattr 命令用于改变文件的扩展属性。与chmod这个命令相比,chmod只是改变文件的读、写、执行权限,更底层的属性控制是由chattr来改变的
参数选项 | 解释说明 |
-R | 递归更改目录属性 |
-V | 显示命令执行过程 |
mode | |
+ | 增加参数 |
- | 移除参数 |
= | 更新为指定参数 |
A | 告诉系统不要修改这个文件的最后访问时间 |
a | 只能向文件中添加数据,而不能删除,多用于服务器日志文件安全 |
i | 设定文件不能被删除,改名,写入或新增内容 |
2|192.19 lsattr:查看文件扩展属性 ***
参数选项 | 解释说明 |
-R | 递归查看目录的扩展属性 |
-a | 显示所有文件包括隐藏文件的扩展属性 |
-d | 显示目录的扩展属性 |
2|202.20 file:显示文件的类型 ****
用于显示文件的类型
参数选项 | 解释说明 |
-b | 输出信息使用精简格式,不输出文件名 |
2|212.21 md5sum:计算和校验文件的MD5值 ****
用于计算和校验文件的MD5值
参数选项 | 解释说明 |
-b | 二进制模式读取文件 |
-c | 从指定文件中读取MD5校验值,并进行校验 |
-t | 文本模式读取文件,这是默认模式 |
--quiet | 校验文件使用的参数,校验通过不输出OK |
--status | 校验文件使用的参数,不输出任何信息,可以通过命令的返回值来判断 |
2|222.22 chown:改变文件或目录的用户和用户组
参数选项 | 解释说明 |
-R | 递归更改目录的用户和用户组 |
2|232.23 chmod:改变文件或目录权限 *****
用来改变文件或目录权限的命令,但是只有文件的属主和超级用户root 才能执行这个命令
https://www.cnblogs.com/dongye95/p/12434448.html#_label1_8
2|242.24 chgrp:更改文件用户组
已经被chown取代了
参数选项 | 解释说明 |
-R | 递归更改目录的用户组 |
2|252.25 umask:显示或设置权限掩码 ***
P86-90(暂时不看,感觉没必要)
3|0三、文件过滤及内容编辑处理命令
3|13.1 cat:合并文件或查看文件内容 *****
序号 | cat命令常用功能 | 简要例子说明 |
1 | 查看文件内容 | 例如:cat file.txt,这是cat最基本的功能之一 |
2 | 把多个文件合并成一个 | 例如:cat file1.txt file2.txt >newfile.txt |
3 | 创建编辑新文件 | 例如:输入 cat >file1.txt,后面接要编辑的内容,使用快捷键Ctrl+d或者Ctrl+c可以结束编辑 |
4 | 非交互式的编辑或追加内容到文件尾部 |
生产上最重要的一个应用,格式如下: cat >>file.txt<<EOF i am who EOF |
5 | 清空文件内容 | 例如:使用cat /dev/null >file1.txt 命令就可以把文件内容清空,但是文件还是存在的,这个功能生产工作中也会用到 |
cat 命令的参数选项及说明
参数选项 | 解释说明 |
-n | 从1开始对所有输出的内容按行编号 |
-b | 和 -n 选项功能类似,但会忽略显示空白行行号 |
-s | 当遇到有连续两行以上的空白行时,就替换为一行空白行 |
-A | 等价于 -vET 三个选项的功能之和 |
-e | 等价于 -vE |
-E | 在每一行的行位显示 $ 符号(此符号为结束标识符,平时隐藏,即使是空行也有) |
-t | 于-vT等价 |
-T | 将Tab字符显示为 ^I |
-v | 除了LFD 和TAB之外,使用 ^ 和M- 引用 |
执行如下的完整命令生成test.txt 文件内容
curl -X POST --header 'Content-Type: application/json' --header 'Accept: text/html' -d '{ \
"containerNumber": "ABC063002" \
}' 'http://yiwu-station.gateway.dev.thundersdata.com/service/containerTransition/listContainerByPage'
__EOF__

本文链接:https://www.cnblogs.com/dongye95/p/12044296.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2018-12-15 内置函数——format