Linux基本命令
1. Linux中的目录
1.1 HOME目录
每一个用户在Linux系统的专属目录,默认在:/home/用户名
1.2 当前工作目录
Linux命令行在执行命令的时候,需要一个工资目录,打开命令行程序(终端)默认设置工作目录在用户的HOME目录
2. Linux命令基础格式
2.1 无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式:
command [-options] [parameter]
- command:命令本身
- -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
- parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等
注意:语法中的[],表示可选的意思
2.3 Linux是严格区分大小写的
2.2 示例:
- ls -l /home/itheima,ls是命令本神,-l是选项,/home/itheima是参数
- 意思是以列表的形式,显示/home/itheima目录内的内容
- cp -r test1 test2,cp是命令本身,-r是选项,test1和test2是参数
- 意思是复制文件夹test1成为test2
3. ls命令
ls命令的作用是列出目录下的内容,语法细节如下:
ls [-a -l -h] [Linux路径]
- -a -l -h 是可选的选项
- Linux路径是此命令可选的
当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容
3.1 -a项
-a选项,表示:all的意思,即列出全部文件(包含隐藏的文件/文件夹)
- 以 . 开头的文件或文件夹默认被隐藏,需要-a才能显示出来
注意:只有通过-a才能看到隐藏的文件/文件夹
3.2 -l选项
-l选项,表示:以列表(竖向排列)的形式展示内容,并展示更多信息
3.3 -h选项
- -h表示以易于阅读的形式,列出文件大小,如K、M、G
- -h选项必须要搭配 -l 一起使用
3.4 ls命令选项的组合使用
语法中的选项是可以组合使用的,比如-a和-l可以组合应用。写法:
- ls -l -a
- ls -la
- ls -al
上述三种写法,都是一样的,表示同时应用-l和-a的功能
4. cd 切换工作目录
4.1 作用:
当Linux终端(命令行)打开的时候,会默认以用户的HOME目录作为当前的工作目录。
我们可以通过cd命令,更改当前所在的工作目录。
4.2 cd命令来自英文:Change Directory
4.3 语法:
cd [Linux路径]
- cd命令无需选项,只有参数,表示要切换到哪个目录下
- cd命令直接执行,若不写参数,表示回到用户的HOME目录
5. pwd 查看当前工作目录
5.1 作用:
通过ls来验证当前的工作目录,其实是不恰当的。
我们可以通过pwd命令,来查看当前所在的工作目录。
5.2 pwd命令来自:Print Work Directory
5.3 语法:
pwd
- pwd命令,无选项,无参数,直接输入pwd即可
6. 相对路径和绝对路径
6.1 案例:
如图,通过pwd得知当前所在是HOME路径:/home/libuery
现在想通过cd命令,切换工作目录到Desktop文件夹中去。
那么,cd命令的参数(Linux路径)如何写呢?
写法有:
- cd /home/libuery/Desktop 绝对路径写法
- cd Desktop 相对路径写法
上述两种写法,都可以正确的切换目录到指定的Desktop中。
6.2 绝对路径
以根目录为起点,描述路径的一种写法,路径描述以 / 开头
6.3 相对路径
以当前目录为起点,描述路径的另一种写法,路径描述无需以 / 开头
7. 特殊路径符
路径符 | 含义 | 用法 |
---|---|---|
. | 表示当前目录 | 比如:cd ./Desktop 表示切换到当前目录下的Desktop目录,和cd Desktop效果一致 |
… | 表示上一级目录 | 比如:cd … 即可切换到上一级目录。cd …/… 切换到上二级的目录 |
~ | 表示HOME路径 | 比如:cd ~ 即可切换到HOME目录或cd /Desktop(等同于/home/libuery),切换到HOME内的Desktop目录 |
8. mkdir 创建目录
8.1 作用:
通过mkdir命令可以创建新的目录(文件夹)
8.2 mkdir来自英文:Make Directory
8.3 语法:
mkdir [-p] Linux路径
- 参数必填,表示Linux路径,即要创建的文件夹的路径,相对路径或绝对路径均可
- -p 选项可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录
8.3.1 不使用-p选项
8.3.2 -p 的用法
8.4 权限问题
注意:创建文件夹需要修改权限,请确保操作均在HOME目录内,不要在HOME外操作。涉及到权限问题,HOME外无法成功!
9. 文件操作命令touch、cat、more
9.1 touch 创建文件
9.1.1 作用:
可以通过touch命令创建文件
9.1.2 语法:
touch Linux路径
- touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
9.2 cat 查看文件
9.2.1 作用:
有了文件后,我们可以通过cat命令查看文件的内容
9.2.2 语法:
cat Linux路径
- cat命令无选项,参数必填,参数表示:被查看的文件路径,相对、绝对、特殊路径符均可以使用
9.3 more 查看文件
9.3.1 作用:
more命令同样可以查看文件内容,不会全部显示
9.3.2 语法:
more Linux路径
- 同样无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径符均可以使用
- 在查看的过程中,通过空格翻页
- 通过q退出查看
9.3.3 more与cat的差异
同cat不同的是:
- cat是直接将内容全部显示出来
- more支持翻页,如果文件内容过多,可以一页页的展示
9.3.4 测试:
Linux系统内置有一个文件,路径为:/etc/services,可以使用more命令查看more /etc/services
10. 文件文件夹操作命令cp、mv、rm
10.1 cp 复制文件文件夹
10.1.1 作用:
cp命令可以用于复制文件、文件夹,cp命令来自英文单词:copy
10.1.2 语法:
cp [-r] 参数1 参数2
- -r 选项,可选,用于复制文件夹使用,表示递归
- 参数1,Linux路径,表示被复制的文件或文件夹
- 参数2,Linux路径,表示要复制去的地方
10.2 mv 移动文件文件夹
10.2.1 作用:
mv命令可以用于移动文件、文件夹,mv命令来自英文单词:move
10.2.2 语法:
mv 参数1 参数2
- 参数1,Linux路径,表示被移动的文件或文件夹
- 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在
10.3 rm 删除文件文件夹
10.3.1 作用:
rm命令可以用于删除文件、文件夹,rm命令来自英文单词:remove
10.3.2 语法:
rm [-r -f] 参数1 参数2 ... 参数n
- 同cp命令一样,-r 选项用于删除文件夹
- -f 表示fore,强制删除(不会弹出提示确认信息)
- 普通用户删除内容不会弹出提示,只有root管理员用户删除内存会有提示
- 所以一般用户用不到-f 选项
- 参数1、参数2… 、参数n 表示要删除的文件或文件夹路径,以空格隔开
10.3.3 通配符
rm命令支持通配符 *
,用来做模糊匹配
- 符号
*
表示通配符,即匹配任意内容(包含空),示例: - test
*
,表示匹配任何以test开头的内容 *
test,表示匹配任何以test结尾的内容*
test*
,表示匹配任何包含test的内容
10.3.4 -f 选项
- 演示强制删除,-f 选项
- 可以通过su - root,并输入123456(和普通用户默认一样)临时切换到root用户体验
- 通过输入exit命令,退回普通用户(临时用root,用完记得退出,不要一直用)
11. which、find命令
11.1 which 查找命令位置
在我们前面学习的Linux命令,其实它们的本体就是一个个的二进制可执行程序。和Windows系统中的 .exe文件是一个意思
11.1.1 作用:
我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里
11.1.2 语法:
which 要查找的命令
11.2 find 按文件名查找文件
在Windows图形化中,我们可以方便的通过系统提供的搜索功能,搜索指定的文件。
11.2.1 作用:
同样,在Linux系统中,我们通过find命令去搜索指定的文件
11.2.2 语法:
find 其实路径 -name "被查找文件名"
11.2.3 通配符
find命令同样支持使用通配符*
来做模糊查询。详情见10.3.3
11.3 find 按文件大小查找文件
11.3.1 语法:
find 起始路径 -size +|-n[kMG]
- +、-表示大于和小于
- n代表数值大小
- kMG表示数值单位,k(小写字母)表示kb,M表示MB,G表示GB
11.3.2 示例
- 查找小于10KB的文件:
find / -size -10k
- 查找大于100MB的文件:
find / -size +100M
- 查找大于1GB的文件:
find / -size +1G
提示:ctrl + c 停止输出
12. grep、wc命令,管道符
12.1 grep
可以通过grep命令,从文件中通过关键字过滤文件行
语法:
grep [-n] 关键字 文件路径
- 选项 -n ,可选,表示在结果中显示匹配的行的行号
- 参数,关键字,必填,表示过滤的关键字,带有空格或其它特殊符号,建议使用 “” 将关键字包围起来
- 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口
12.2 wc
可以通过wc命令统计文件的行数、单词数量等
语法:
wc [-c -m -l -w] 文件路径
- 选项,-c ,统计bytes数量
- 选项,-m ,统计字符数量
- 选项,-l ,统计行数
- 选项,-w ,统计单词数量
- 参数,文件路径,被统计的文件,可作为内容输入端口
12.3 管道符 |
| 的含义:
将管道符左边命令的结果,作为右边命令的输入
练习:
对创建的test.txt进行统计
请使用cat、grep、管道符、wc命令组合,进行统计:
- 统计文件中带有test关键字的有几行
cat test.txt | grep test | wc -l
- 统计文件中带有test关键字的结果中有多少个单词
cat test.txt | grep test | wc -w
13. echo、tail命令,重定向符
13.1 echo
可以使用echo命令在命令行内输出指定内容
语法:
echo 输出内容
- 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用 " " 包围
反引号`
我们可以通过将命令用反引号`将其包围,被反引号包围的内容,会被作为命令执行,而非普通字符
13.2 tail
使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改
语法:
tail [-f -num] Linux路径
- 参数,Linux路径,表示被跟踪的文件路径
- 选项,-f ,表示持续跟踪
- 选项,-num ,表示查看尾部多少行,不填默认10行
13.3 重定向符
1. 重定向符:>和>>
>
,将左侧命令的结果,覆盖写入到符号右侧指定的文件中>>
,将左侧命令的结果,追加写入到符号右侧指定的文件中
2. 演示:
- echo “Hello Linux” > test.txt
- echo “Hello World” > test.txt,再次执行,覆盖新内容
- echo “Hello Linux” >> test.txt,再次执行,使用>>追加新内容
14. vi\vim编辑器
1. 介绍
vi\vim是visual interface的简称,是Linux中最经典的文本编辑器,同图形化界面中的文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。
vim是vi的加强版本,兼容vi的所有指令,不仅能编辑文本,而且还具有shell程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。
2. vi\vim编辑器的三种工作模式
-
命令模式(Command mode)
- 命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能
- 此模式下,不能自由进行文本编辑
-
输入模式(Insert mode)
- 也就是所谓的编辑模式、插入模式
- 此模式下,可以对文件内容进行自由编辑
-
底线命令模式(Last line mode)
- 以
:
开始,通常用于文件的保存、退出
- 以
3. 命令模式
3.1 语法:
vi 文件路径
vim 文件路径
vim兼容全部的vi功能,建议直接使用vim命令
- 如果文件路径表示的文件不存在,那么此命令会用于编辑新文件
- 如果文件路径表示的文件存在,那么此命令用于编辑已有文件
3.2 命令模式快捷键
命令 | 描述 |
---|---|
i | 在当前光标位置,进入输入模式 |
a | 在当前光标位置之后,进入输入模式 |
I | 在当前行的开头,进入输入模式 |
A | 在当前行的结尾,进入输入模式 |
o | 在当前光标下一行,进入输入模式 |
O | 在当前光标上一行,进入输入模式 |
esc | 任何情况下输入esc 都能回到命令模式 |
k | 向上移动光标 |
j | 向下移动光标 |
h | 向左移动光标 |
l | 向右移动光标 |
0 | 移动光标到当前行的开头 |
$ | 移动光标到当前行的结尾 |
PgUp | 向上翻页 |
PgDn | 向下翻页 |
/ | 进入搜索模式 |
n | 向下继续搜索 |
N | 向上继续搜索 |
dd | 删除光标所在行的内容 |
ndd | n是数字,表示删除当前光标向下n行 |
yy | 复制当前行 |
nyy | n是数组,复制当前行和下面的n行 |
p | 粘贴复制的内容 |
u | 撤销修改 |
ctrl + r | 反向撤销修改 |
gg | 跳到首行 |
G | 跳到行尾 |
dG | 从当前行开始,向下全部删除 |
dgg | 从当前行开始,向上全部删除 |
d$ | 从当前光标开始,删除到本行的结尾 |
d0 | 从当前光标开始,删除到本行的开头 |
4. 输入模式
输入模式没有什么特殊的,进入输入模式后,任何快捷键都没有作用,就是正常输入文本而已。
唯一需要记住的,就是:通过esc,可以退回到命令模式。
5. 底线命令模式
在命令模式内,输入 :
,即可进入底线命令模式,支持如下命令:
命令 | 描述 |
---|---|
:wq | 保存并退出 |
:q | 仅退出 |
:q! | 强制退出 |
:w | 仅保存 |
:set nu | 显示行号 |
:set paste | 设置粘贴模式 |
6. vi\vim编辑器的快速体验
通过vi\vim命令编辑文件,会打开一个新的窗口,此时这个窗口就是:命令模式窗口
命令模式是vi编辑器的入口和出口,如上图所示
- 进入vi编辑器会进入命令模式
- 通过命令模式输入键盘指令,可以进入输入模式
- 输入模式需要退回到命令模式,然后通过命令可以进入底线模式
快速体验
- 使用:
vim hello.txt
,编辑一个新文件,执行后进入的就是命令模式 - 在命令模式内,按键盘 i ,进入输入模式
- 在输入模式内输入:hello vim!
- 输入完成后,按esc回退到命令模式是
- 在命令模式内,按键盘
:
,进入底线命令模式 - 在底线命令内输入:
wq
,保存文件并退出编辑器