Linux宝典
- IT业界
- 2025-08-15 06:27:02

目录 根目录/当前目录 .可以使用./xxx 来表示当前目录下的xxx文件上级目录 ..可以使用../xxx 来表示上级目录下的xxx文件默认工作目录~cd ~ 回到工作目录
注意: 每一个Linux用户都存在一个默认的工作目录,目录为/home/用户名,例如用户test,则它的目录为/home/test, 但是root用户不同,工作目录为/root
命令ls
查看目录
参数:
-a : 查看全部文件,包含隐藏文件(.开头)
-l : 以列表形式展示
-h : 以l同时使用,将文件大小转化为带有单位的
pwdprint work directory 打印当前工作目录cd移动工作目录mkdir创建文件夹
参数:
-p : 创建多级目录
touch创建文件
eg: touch test.txt
cat查看文件内容,一次性加载全部内容展示
eg: cat test.txt
more分屏查看文件内容,以分页的形式展示
操作:
空格键 : 向下翻页
b : 向上翻页
回车键 : 下一行
= : 显示当前行号
q : 退出
less分屏查看文件内容,可以查询关键字
操作:
翻页 : pageUp, pageDown, 空格键
/字符串 : 向下搜索,n下一个,N上一个
?字符串 : 向上搜索,n下一个,N上一个
head查看文件头部内容
参数:
-n : 显示头部的前几行内容,默认是10行
eg: head -n 2 xxx.txt
tail查看文件尾部内容
语法: tail [参数] 文件路径
参数:
-f : 持续跟踪
-n : 显示尾部的后几行内容,默认是10行
cp复制
eg: cp test.txt test1.txt
参数:
-r : 复制文件夹,递归复制
mv移动 文件或文件夹
eg: mv test.txt ./desktop
将文件test.txt移动到当前目录的desktop文件夹中
mv test.txt test1.txt
将test.txt重命名为test1.txt
rm删除
参数:
-r : 删除文件夹,递归删除
-f : 强制删除,当登录用户为root,使用rm命令都会提示确认提醒,添加-f后,则不提示直接删除
支持通配符:
* : 表示所有文件, rm -rf *
*test : 表示文件名以test结尾的所有文件
test* : 表示文件名以test开头的所有文件
*test*: 表示文件名包含test的所有文件
which查找命令的文件位置
eg: which cd
find查找文件位置
语法: find [起始位置] [参数]
参数:
-name : 按照文件名查找,可以使用通配符
find / -name *test* 从根目录向下查找文件名包含test的所有文件
-user : 按照文件的创建用户查找
-size : 按照文件大小查找
参数:
-|+ -表示小于,+表示大雨1
n 文件大小
kMG 大小单位 kb,MB,GB
find / -size -10k 从根目录向下查找文件大小小于10k的所有文件
find / -size +10M 从根目录向下查找文件大小大于10M的所有文件
locate查找文件位置,Linux内部有一个locate映射数据库,数据不是事实更新的,所以使用locate前,最好先执行updatedb命令,更新locate数据库
语法: locate 文件名
grep通过关键字过滤文件中的行
语法: grep [参数] 关键字 文件路径
参数:
-n : 在结果中显示行号
-i : 忽略大小写
-m : 最大匹配的行数,-m 2 只显示匹配大前2行
关键字 : 推荐使用双引号包裹
文件路径: 过滤内容的文件路径,也可以是管道的输入
wc统计文件的行数,单词数,字节数,字符数
语法: wc [参数] 文件路径
参数:
-c : 字节数
-m : 字符数
-l : 行数
-w : 单词数
文件路径: 内容的文件路径,也可以是管道的输入
|管道,管道将左边命令的结果,作为右边命令的输入echo在命令行打印指定内容
语法: echo "内容"
`反引号被`包裹的内容,会被作为命令执行,而非普通字符
eg: echo "当前的工作目录为:`pwd`"
>将左侧命令的结果,覆盖写入到右侧指定文件内
eg: echo "123" > test.txt
>>将左侧命令的结果,追加写入到右侧指定文件内
eg: echo "123" >> test.txt
man命令的帮助文档
eg: man ls
helpbash内容指令的帮助文档
eg: help cd
--help命令的帮助文档 VI / VIMlinux中的文本编辑器,vim是vi的加强版,兼容VI的所有命令,并且还具有shell程序的编程功能,可以使用不同的颜色来标记语法的正确性。
语法: vi / vim 文件 文件存在则是修改,不存在则是创建文件并修改
模式:
命令模式敲击的按键被理解为命令,执行命令功能输入模式对内容自由编辑命令模式的快捷键:
i当前光标位置进入输入模式a当前光标位置之后进入输入模式I当前行开头位置进入输入模式A当前行结尾位置进入输入模式o当前光标的下一行进入输入模式O当前光标上一行进入输入模式0 或 ^移动光标到当前行的开头$移动光标到当前行的结尾pageUp向上翻页pageDown向下翻页/进入搜索模式n搜索到内容后,向下继续搜索N搜索到内容后,向上继续搜索dd删除光标所在的行nddn为数字,删除当前光标向下n行yy复制光标所在的行nyyn为数字,复制当前光标向下n行p粘贴u撤销修改ctrl + r反向撤销修改gg跳到首行G跳到最后一行dG从当前行开始向下全部删除dgg从当前行开始向上全部删除d$从当前光标删除到本行结尾d0从当前光标删除到本行首w光标跳转到下一个单词b光标跳转到上一个单词dw删除一个单词:wq保存退出:q仅退出:w仅保存:q!强制退出:set nu显示行号输入模式:
ESC退出输入模式,进入命令模式 字符串操作 替换sed : 内容替换
语法: sed [参数] 'express' 文件路径
参数:
-e表示表达式,可以省略,不会再目标文件中生效,只是在控制台打印-i在目标文件中生效-f读取文件,按照文件内的表示进行操作
express举例:
"1i\a new line"表达式中用\进行分割,1表示第一行,i表示insert,\右边表示要插入的内容"4a\a new line"表达式中用\进行分割,4表示第四行,a表示之后插入,\右边表示要插入的内容"4d"4表示第四行,d表示删除"4c\line"表达式中用\进行分割,4表示第四行,c表示覆盖,\右边表示要覆盖的内容"1s/old/new"这里使用/进行分割,1代表第一行,s代表正则表达式匹配,old表示需要被替换的内容,new为替换的内容,只会匹配第一行的第一个old替换成new"1s/old/new/g"/g表示全部替换,会将第一行的所有old替换成new"s/old/new"匹配所有包含old的行,只将行中第一个old替换成new"s/old/new/g"匹配所有包含old的行,将行中所有old替换成new 分割cut : 切割,裁剪,按照默写字符进行分割后,获取某列的值
语法: cut [参数] 文件路径
参数:
-d分隔符,按照指定的分隔符分割内容,默认是制表符"\t"-f列号,获取第几列例子:
echo "Hello my world, it is amazing" | cut -d " " -f 1
按照空格进行分割后,取第一列,结果为Hello
echo "Hello my world, it is amazing" | cut -d " " -f -3
按照空格进行分割后,取1到3列,结果为Hello my world,
echo "Hello my world, it is amazing" | cut -d " " -f 3-
按照空格进行分割后,取3列到最后一列,结果为world, it is amazing
awk : 分割,按照某些字符进行分割后,获取分割后的值
语法: awk [参数] '/pattern1/ {action1} /pattern2/ {action2}' 文件路径
参数:
-F指定分隔符,默认空格-v指定变量,可以在action中使用pattern表示在数据中需要查找的内容,可以包含正在表达式action再找到匹配的行后,对其进行分割后,执行的一系列命令内容变量:
FILENAME文件名NR行号NF列的个数例子:
awk '\Hao\ {print $1}' 1.txt
从1.txt中查找哈有Hao的行,找到后使用空格进行分割,打印第一列的值
awk -F ":" '\Hao\ {print $1","$3}' 1.txt
从1.txt中查找哈有Hao的行,找到后使用:进行分割,打印第一列和第三列,使用,拼接
awk '\Hao\ {print "文件名:"FILENAME",行号:"NR",列数:"NF}' 1.txt
从1.txt中查找哈有Hao的行,找到后使用空格进行分割,打印文件名+行号+列数
增则表达式 ^以什么开头$以什么结尾,^$表示空白行.表示任意一个字符,例如: echo root | grep r..t 匹配r+任意两个字符+t*匹配0到多次 .*表示任意多个字符\转移字符