第二章 Linux基础命令
一、Linux的目录结构
Linux的目录结构是一个树型结构
相比Windows操作系统,Linux没有盘符概念,只有一个根目录 / ,顶级目录,所有文件都在它下面
-
Linux路径的描述方式:路径之间的层级关系,使用 / 来表示
开头的 / 表示根目录,后面的 / 表示层级关系,例:/usr/local/hello.txt
-
Windows系统中,路径之间的层级关系,使用 \ 来表示
课后练习:
- 在根目录下有一个文件夹test,文件夹内有一个文件hello.txt,请描述文件路径 /test/hello.txt
- 在根目录下有一个文件itheima.txt,请描述文件路径 /itheima.txt
- 在根目录下有一个文件夹itcast,在itcast文件夹内有文件夹itheima,在itheima文件夹内有文件hello.txt,请描述文件路径 /itcast/itheima/hello.txt
二、Linux命令入门
2.1 Linux命令基础
-
什么是命令?
- 命令行:即Linux终端(Terminal),是一种命令提示符页面。以纯“字符”的形式操作系统,可以使用各种字符化命令对系统发出操作指令。
- 命令:即Linux程序。一个命令就是一个Linux的程序。命令没有图形化页面,可以在命令行提供字符化的反馈。
-
Linux命令基础格式
command [-options] parameter 命令本体+可选的选项+可选的参数
- command:命令本身,不可省略。
- -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的细节行为。
- parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等。
示例:
-
ls -l/home/itheima,ls是命令本身,-l是选项,/home/itheima是参数
意思是以列表的形式,显示/home/itheima目录内的内容
-
cp -r test1 test2 ,cp是命令本身,用来完成文件夹的复制,-r是选项,test1和test2是参数
意思是复制文件夹test1成为test2
2.2 ls命令入门
-
第一个命令ls
ls命令作用:列出目录下的内容,语法细节如下:
ls [-a -l -h] [Linux路径]
- -a -l -h是可选的选项
- Linux路径是此命令可选的参数
当不使用选项和参数,直接使用ls命令本体,表示:以平埔形式,列出当前工作目录下的内容
-
理解home目录、当前工作目录
- 当前工作目录:默认当前登录用户的home目录作为当前工作目录,所以ls命令列出的是home目录的内容
- home目录(家目录):每个Linux操作用户在Linux系统的个人账户目录,路径在:/home/用户名
2.3 ls命令的参数和选项
-
ls命令的参数使用
写了参数的话:可以查看指定文件夹里面的内容
示例:查看根目录下的内容 ls /
-
ls命令的选项使用
-
-a选项,表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹)
-
-l选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息(权限、用户和用户组、文件大小、创建的时间)
-
-h 表示以易于阅读的形式,列出文件大小,如K、M、G
-h选项必须要搭配-l一起使用
-
组合使用
写法:ls -l -a ls -la ls -al
-
和参数一起使用
-
2.4 cd切换工作目录命令
cd命令:更改当前所在的工作目录
cd命令无需选项,只有参数,表示要切换到哪个目录下
cd命令直接执行,不写参数,表示回到用户的home目录
2.5 pwd展示当前工作目录命令
pwd命令:查看当前所在的工作目录
pwd命令无选项,无参数
课后练习
-
请使用cd命令并结合ls命令,任意在Linux文件系统内探索
-
尝试找出名字叫做games的文件夹在哪里
参考答案:
三、相对路径、绝对路径和特殊路径符
3.1 绝对路径和相对路径
当前目录是:/home/linli,要切换工作目录到Desktop文件夹中,如何操作?
-
绝对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头
cd /home/linli/Desktop
-
相对路径:以当前所在目录为起点,路径描述无需以/开头
cd Desktop
3.2 特殊路径符
当前目录处于:/home/linli/Desktop,若想要向上回退一级,切换目录到/home/linli中,如何做?
- 直接通过cd,即可回到home目录
- 通过特殊路径符来完成
特殊路径符
- . 表示当前目录,比如:cd ./Desktop表示切换到当前目录下的Desktop目录内。和cd Desktop效果一致
- … 表示上一级目录,比如:cd … 即可切换到上一级目录,cd …/ … 切换到上二级的目录
- ~ 表示home目录,比如:cd ~ 即可切换到home目录,cd ~/Desktop,切换到home内的Desktop目录
课后练习:
-
当前工作目录内有一个test文件夹,文件夹内有一个文件hello.txt,请描述文件的相对路径
test/hello.txt ./test/hello.txt
-
在当前工作目录的上级目录有一个test文件夹,文件夹内有一个文件hello.txt,描述文件的相对路径
…/test/hello.txt
-
在home目录内有一个test文件夹,文件夹有一个文件hello.txt,描述文件路径
~/test/hello.txt
四、mkdir命令
通过mkdir命令可以创建新的目录(文件夹)
语法:mkdir [-p] Linux路径
- 参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可
- -p选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
注意:创建文件夹需要修改权限,请确保操作均在home目录内,不要在home目录外操作,涉及到权限问题,home外无法成功。
课后练习:
通过命令在home目录内,创建如下路径:itcast/itheima/nice/666 mkdir -p ~/itcast/itheima/nice/666
五、文件操作命令一(touch、cat、more、cp、mv、rm)
5.1 touch命令
touch:通过touch命令创建文件
语法:touch Linux路径
- touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可使用
5.2 cat命令
cat命令:查看文件内容
语法:cat Linux路径
- cat同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符均可使用
5.3 more命令
more命令:查看文件内容
与cat不同的是:
- cat是直接将内容全部显示出来
- more支持翻页,如果文件内容过多,可以一页一页的展示
语法:more Linux路径
- 没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符均可使用
Linux系统内置有一个文件,路径为:etc/services,可以使用more命令查看
- 在查看的过程中,通过空格翻页
- 通过q退出查看
5.4 cp命令
cp命令:复制文件或文件夹
语法:cp [-r] 参数1 参数2
- -r选项,可选,用于复制文件夹使用,表示递归
- 参数1,Linux路径,表示被复制的文件或文件夹
- 参数2,Linux路径,表示要复制去的地方
5.5 mv命令
mv命令:用于移动文件或文件夹
语法:mv 参数1 参数2
- 参数1,Linux路径,表示要被移动的文件或文件夹
- 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
5.6 rm命令
- rm命令:删除文件、文件夹
语法:rm [-r -f] 参数1 参数2 …… 参数N
-
-r:用于删除文件夹
-
-f:表示force,强制删除(不会弹出提示确认信息)
- 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示
- 一般用户用不到-f选项
演示强制删除,通过su - root,并输入密码629815临时切换到root用户体验
通过输入exit命令,返回普通用户。(临时用root,用完记得推出,不要一直用)
-
参数1 参数2 …… 参数N:表示要删除的文件或文件夹路径,按照空格隔开
2. rm删除文件、文件夹-通配符
rm命令支持通配符*,用来做模糊匹配
-
符号*表示通配符,即匹配任意内容(包含空)
示例:test*,表示匹配任何以test开头的内容;
*test,表示匹配任何以test结尾的内容
*test *,表示匹配任何包含test的内容
六、文件操作命令二(which、find、grep、wc、echo、tail)
6.1 which命令
which命令:查看使用的一系列命令的程序文件存放在哪里
语法:which 要查找的命令
6.2 find命令
find命令:查找指定的文件
语法:find 起始路径 -name “被查找文件名”
find命令按文件大小查找文件
语法:find 起始路径 -size + | -n [kMG]
- +、-表示大于和小于
- n表示大小数字
- kMG表示大小单位,k(小写字母)表示kb,M表示MB,GB表示GB
课后练习:
-
使用find命令找出名称中带有centos的文件 find / -name “* centos*”
-
find命令找出:/usr目录内大于100M的文件 find /usr -size +100M
6.3 grep命令(关键字过滤)
grep命令:从文件中通过关键字过滤文件行
语法:grep [-n] 关键字 文件路径
- -n:可选,表示在结果中显示匹配的行的行号
- 参数,关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用“”将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
6.4 wc命令
wc命令:统计文件的行数、单词数量等
语法:wc [-c -m -l -w] 文件路径
- -c:统计bytes数量
- -m:统计字符数量
- -l:统计行数
- -w:统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
6.5 管道符
管道符含义:将管道符左边命令的结果,作为右边命令的输入
嵌套使用
课后练习:
统计文件中带有itcast关键字的有几行?统计文件中带有itheima关键字的结果中有几个单词?
七、文件操作命令三(echo、`、tail、重定向符号)
7.1 echo命令
echo命令:在命令行内输出指定内容
语法:echo 输出的内容
-
无需选项,只有一个参数,表示要输出的内容,复杂内容可以用“ ”包围
-
演示:
在终端上显示:Hello Linux
7.2 `反引号
`:被其包围的内容,会作为命令执行,而非普通字符
7.3 重定向符
. >:将左侧命令的结果,覆盖写入到符号右侧指定的文件中
.>>:将左侧命令的结果,追加写入到符号右侧指定的文件中
7.4 tail命令
tail命令:可以查看文件尾部内容,跟踪文件的最新修改
语法:tail [-f -num] Linux路径
-
参数,Linux路径,表示被跟踪的文件路径
-
选项,-f,表示持续跟踪
- 选项,-num,表示查看尾部多少行,不填默认10行
课后练习:
- 使用echo并配合反引号,输入内容:我当前的工作目录是: .` 具体的工作目录路径;并结合重定向符号,将输出结果覆盖写入work.txt文件
-
使用echo输出任意内容并追加到work.txt文件中,通过tail命令持续跟踪文件内容更改
八、vim编辑器
8.1 vi/vim介绍
vi/vim是visual interface的简称,是Linux中最经典的文本编辑器
vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色来辨别语法的正确性,极大方便了程序的设计和编辑性。
8.2 vim编辑器的三种工作模式
-
命令模式:所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能,此模式下,不能自由进行文本编辑。
如果需要通过vi/vim编辑器编辑文件,通过如下命令:vi 文件路径 vim 文件路径
若文件路径表示的文件不存在,那么此命令会用于编辑新文件
若文件路径表示的文件存在,那么此命令会用于编辑已有文件
-
输入模式:即编辑模式、插入模式,可以对文件内容进行自由编辑。
-
底线命令模式:以:开始,通常用于文件的保存、退出。
命令模式快捷键:
底线命令模式