Linux学习笔记(指令篇)

Linux目录结构
在Linux系统中,目录结构与Windows系统类似,都是树形结构,不同的是,Windows系统可以有多个树,也即其能有很多个磁盘,但Linux系统只有一棵树,即所有文件和目录都放在根目录下。
Linux系统中,以“/”表示顶级目录即根目录,层次关系也通过“/”表示
路径格式
- 绝对路径:即以根目录“/”开头
- 相对路径:相对于当前工作目录下的路径,例如当前工作目录下有一个test目录,则其相对路径就是test
- 特殊路径符:
- .:表示当前目录
- ..:表示上一级目录
- ~:表示HOME目录
命令格式
在Linux系统中,每一条命令都是一个可执行的程序,命令都按以下格式:
1 | command+(option)+(parameter) |
- command即指令名,如ls,cd,mkdir……
- option是选项,用来执行一些特定的操作
- parameter是相关参数,通常是文件或目录路径
基本命令
ls命令
格式:
1 | ls+(-a -l -h)+(parameter) |
ls命令的作用是查看相应的目录里的内容,如果不加参数,则默认展示当前工作目录的内容,加上参数则会展示指定目录的内容。
该指令有三个选项可选:
- -a 将该目录里的所有内容展示,包括隐藏内容
- -l 以列表的形式将目录里的内容展示,同时把文件或文件夹所属的用户,用户组,相关权限以及文件大小展示出来
- -h 必须结合-l使用,可以将文件大小显示的更加清晰
cd命令
格式:
1 | cd+(parameter) |
cd命令的作用是切换工作目录到指定目录,如果不加参数,则默认切换到用户的HOME目录,一般是/home/username
pwd命令
格式:
1 | pwd |
pwd命令的作用是展示当前工作目录
mkdir命令
格式:
1 | mkdir+(-p)+parameter |
mkdir命令的作用是创建新的目录,参数必填
-p选项表示自动创建不存在的父目录,这样可以创建一个当前目录下很多层的目录
touch命令
格式:
1 | touch+parameter |
touch命令的作用是创建一个文件
cat命令
格式:
1 | cat+parameter |
cat命令的作用是查看文件内容
more命令
格式:
1 | more+parameter |
more命令的作用也是查看文件内容,但它会将内容非常多的文件一页一页的展示,通过空格翻页,按q退出查看
cp命令
格式:
1 | cp+(-r)+parameter |
cp命令的作用是复制文件或文件夹,需要两个参数,第一个是要复制的文件或文件夹的路径,第二个是要复制去的地方,-r选项在复制文件夹的时候使用
mv命令
格式:
1 | mv+parameter |
mv命令的作用是移动文件或文件夹,同样需要两个参数,第一个是要移动的文件或文件夹的路径,第二个是要移动去的地方,若目标不存在,则进行改名
rm命令
格式:
1 | rm+(-r -f)+parameter |
rm命令的作用是删除文件或文件夹,参数必填,数量不限,-r选项表示删除文件夹,-f选项表示强制删除,一般在以root用户登录的情况下使用
which命令
格式:
1 | which+parameter |
which命令的作用是查看命令的程序文件存放在哪里,因此这里的参数是命令名
find命令
格式:
1 | find+起始路径+ -name/-size +"被查找文件名"/"+-NMGB" |
find命令的作用是搜索指定的文件,首先要指定起始路径,再选择是以文件名的方式搜索还是以文件大小的方式搜索,以文件名方式搜索需要填写文件名称,以文件大小搜索需要填写相应的文件大小范围,其中“+”代表大于,“-”代表小于。
grep命令
格式:
1 | grep+(-n)+parameter |
grep命令的作用是从一个文件中过滤相应的文件行,需要两个参数,第一个是过滤的关键字,第二个是文件的路径,-n选项可选,用来显示匹配的行的行号
wc命令
格式:
1 | wc+(-c -m -l -w)+parameter |
wc命令的作用是统计文件的行数,单词数量,若不加选项,则会以行数、单词数、字节数的顺序显示相关数量,而其可选的四个选项意义如下:
- -c 统计字节数量
- -m 统计字符数量
- -l 统计行数
- -w 统计单词数
echo命令
格式:
1 | echo+parameter |
echo命令的作用与printf函数类似,将指定内容输出到命令行里面,若内容过于复杂可以加上引号(有空格等特殊符号)
tail命令
格式:
1 | tail+(-f -num)+parameter |
tail命令的作用是拿来查看文件尾部内容,其中参数部分是文件的路径。选项意义:
- -f 代表持续追踪,可以用来查看文件变换
- -num 指定要查看的行数,若不带此选项,则默认查看尾部十行
进阶命令
tree命令
格式:
1 | tree+(-a -d)+parameter |
tree命令的作用和ls命令类似,不过其可以根据文件目录生成文件树,参数部分是文件或目录的路径。
选项意义:
- -a 代表列出全部文件
- -d 只列出目录
tree命令可能需要安装之后才能使用,使用yum/apt……安装即可
diff命令
格式:
1 | diff+(-b -B -q)+file1+file2 |
diff命令用于比较文件的差异。
选项意义:
- -b 不检查空白字符的不同
- -B 不检查空行
- -q 仅显示有无差异,不显示详细信息
sed命令
格式:
1 | sed+(-n -i -e)+'command'+input |
sed命令的作用是对文件进行处理,其可以将数据进行替换、删除、新增、选取等。相较于一般的命令形式,sed命令需要一个单独的“command”,而input即是输入文本。
“command”内容及作用:
- [行号]+a+[内容] 该命令的作用是在对应行号的行后新增一行,其内容即为所输入的内容。行号可以是数字,代表某一特定的行,也可以是“起始行,终止行”的形式,代表在所属范围的每一行后都新增内容为输入内容的一行,其中$代表最后一行,$-1代表倒数第二行,以此类推,如果忽略行号部分,则代表对每一行都进行操作。(后续command里的行号和该条相同)
- [行号]+c+[内容] 用输入的内容取代相应行
- [行号]+i+[内容] 在当前行的上面插入一行文本,内容为输入内容
- [行号]+d 删除相应行的内容
- [行号]+p 输出选择的内容,通常与-n选项搭配使用
- [行号]+s/re/string(/g) 将re(正则表达式)匹配的内容替换为string,如果没有/g,则只会将每一行匹配的第一个字符串替换为string,而加上/g则表示在整行范围内替换。
选项意义:
- -n sed默认将文件所有内容输出,而该选项可以使其只显示经过它处理的内容
- -i 直接修改读取的内容,而不是输出到屏幕,若没有该选项则原文件不会发生变化
- -e 允许在同一行里执行执行多条命令
awk命令
格式:
1 | awk+(-F -v -f)+'模式 {操作}'+输入文件 |
awk是一个功能十分强大的文本处理工具,其可以进行数据提取、文本处理、模式匹配、报告生成和自动化任务等。要能够运用awk命令,我们要知道以下内容:
- 模式是什么:模式可以是一个正则表达式,也可以是一个条件表达式,表示对于匹配或满足条件的行再进行操作,其也可以是空,这时就代表对所有行进行操作。还有一些特殊模式,比如
BEGIN
和END
,后面紧跟一个操作,分别代表在处理任何输入之前执行的操作,处理完所有输入后执行的操作。 - 字段和变量:awk需要用内置的变量来处理文本数据,有以下常用的变量:
- $0:表示当前行的完整内容
- $1,$2,$3……:表示当前行的第几个字段(由字段分隔符分隔)
- NF:表示当前行的字段数
- NR:表示当前行的行号
- FS:字段分隔符,默认为空格或制表符
- OFS:输出字段分隔符,默认为空格
- ORS:输出记录分隔符,默认为换行符
选项意义:
- -F 指定字段分隔符
- -v 设置变量的初始值
- -f 从文件中读取awk脚本
举些例子更好理解
1 | #------------------------------------------------------------------------------ |
一些特殊的符号
管道符
管道符符号:|
作用:将左边命令的输出作为右边命令的输入,例如:
1 | cat a.txt | grep "something" |
反引号
被反引号修饰(包围)的字符串会作为命令来执行,例如:
1 | echo pwd |
输出结果为pwd
但
1 | echo `pwd` |
输出结果则是当前工作目录
重定向符
分为输入重定向符和输出重定向符。
- 输入重定向符:
<
,代表将右边的内容(文件……)作为输入传给左边的指令,例如现在有一个可执行文件out,需要传入一个参数,正常执行可以写为:
1 | ./out parameter |
但若现在已经有一个文件a.txt含有了我们想要的输入参数,则可以通过输入重定向符来实现:
1 | ./out < a.txt |
- 输出重定向符:将左边命令的结果写入右边的文件
- 覆盖输出重定向符:
>
,左边命令的结果将会覆盖文件原有的内容
- 覆盖输出重定向符:
- 追加输出重定向符:
>>
,左边命令的结果将会追加到文件的末尾,文件原有内容仍会保留
- 追加输出重定向符:
- Title: Linux学习笔记(指令篇)
- Author: Cdostan
- Created at : 2025-02-13 20:02:30
- Updated at : 2025-03-03 00:04:34
- Link: https://cdostan.github.io/2025/02/13/linux/linux学习/
- License: This work is licensed under CC BY-NC-SA 4.0.