文章目录
二、Linux命令(shell命令)
1. 终端操作
- 终端操作
-
打开终端:
ctrl+alt+t
-
退出终端:
exit
- 在普通用户权限下用
exit
退出终端 - 如果是切换后的登陆用户,退出则返回上一个登陆账号。
- 如果是终端界面,退出当前终端。
- 在普通用户权限下用
-
命令行:
用户名@计算机名:目录$
$
:表示普通用户环境#
:root用户环境- 目录
/
:代表根目录~
:代表家目录(/home/用户名
)
-
ctrl + c
:中断命令执行 -
ctrl + shift + c
:复制 -
ctrl + shift + v
:粘贴 -
ctrl + shift + =
放大终端窗口的字体显示 -
ctrl + -
缩小终端窗口的字体显示 -
tab键
:自动补全,通过按下 tab 键,可以补全命令或路径- 优点:
- 避免输入错误
- 提高输入效率
- 如果按完Tab之后,没有可提示的内容时,会不显示任何内容,可以继续按第二次,会将所有的文件或命令提示出来,选择是否显示
- 如果在输入了几个字母后,按一次tab,会将所有以输入字符开头的命令或文件显示出来
- 如果命令或文件是唯一的,那么tab会直接补全
- 优点:
-
方向键↑和↓
: 使用上下方向键可以查找命令历史 -
ifconfig
:查看ip地址 -
clear
:清屏,清除屏幕上显示过的信息- 快捷键:
- linux/mac:
ctrl + L
- linux/mac:
- 快捷键:
- 查看shell
你可以通过打开Linux的terminal(终端)来执行Shell命令。Shell的种类有很多种,例如CSH,Bourne Shell,Korn Shell。在现在的大多数Linux发行版中,默认的Shell一般都是Bourne again shell(bash).
想看看你的Shell是哪一种,执行下面的命令
echo $SHELL
3. windows自带的WSL2【补充】
访问WSL2的文件目录
\\wsl$
2. inux 命令格式(掌握)
- 命令格式
命令 [选项]... [文件名/参数]...
-
选项:用于调整命令的功能,比如:-r选项调整cp命令的功能。
-
选项可以分为短选项和长选项
- 短选项的格式: '-'后面接单个字母, 比如:-r
- 长选项的格式: '–'后面接单词, 比如:–help
-
参数:命令的操作对象,一般是文件名或者目录名。
-
[]:代表可选
- 获取指定命令帮助信息(掌握)
命令 --help
:显示命令的帮助信息man 命令
:查阅命令的使用手册,是manual 的缩写,是 Linux 提供的一个 手册
使用 man
时的操作键:
操作键 | 功能 |
---|---|
空格键 | 显示手册页的下一屏 |
Enter 键 | 一次滚动手册页的一行 |
b | 回滚一屏 |
f | 前滚一屏 |
q | 退出 |
/word | 搜索 word 字符串 |
区别:
--help
显示的信息不会分页man
显示的信息会分页,可以用键盘翻页(本质是进入访问了说明文件)
3. 常用命令——文件管理
- 路径说明
-
/
:代表根目录 -
~
:代表家目录(/home/用户名
) -
.
:当前目录 -
..
:上一级目录 -
以
.
开头的文件为隐藏文件 -
Linux所有的目录和文件名大小写敏感
- 特殊字符说明(通配符)
通配符 | 含义 |
---|---|
* | 文件代表文件名中所有字符 |
ls te* | 查找以te开头的文件 |
ls *html | 查找结尾为html的文件 |
? | 代表文件名中任意一个字符 |
ls ?.c | 只找第一个字符任意,后缀为.c的文件 |
ls a.? | 只找只有3个字符,前2字符为a.,最后一个字符任意的文件 |
[] | [”和“]”将字符组括起来,表示可以匹配字符组中的任意一个。“-”用于表示字符范围。 |
[abc] | 匹配a、b、c中的任意一个 |
[a-f] | 匹配从a到f范围内的的任意一个字符 |
ls [a-f]* | 找到从a到f范围内的的任意一个字符开头的文件 |
ls a-f | 查找文件名为a-f的文件,当“-”处于方括号之外失去通配符的作用 |
\ | 如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用。 |
ls *a | 查找文件名为*a的文件 |
- 查看目录及路径
-
pwd
:查看当前目录路径,英文:print work directory -
ls
:查看当前目录下的内容,英文:listls -a
:显示当前目录下所有的文件(包含以.
开头的隐藏文件)ls -l
:以长信息格式显示当前目录下的文件ls -h
:一般会配合 -l 使用,以单位格式(kb,mb等)显示文件大小ls -alh
:(联合使用)显示所有文件的长信息ls -alh 路径
:显示指定路径下的所有文件的长信息
补充:
!ls
:执行最近一次执行过的ls
命令ll
:相当于ls -al
,是简写
长信息显示
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NLDdRaTa-1610013693199)(Media/Xnip2019-05-07_11-13-43.png)]
- ls命令显示颜色含义
白色:表示普通文件
蓝色:表示目录
绿色:表示可执行文件
红色:表示压缩文件
浅蓝色:链接文件
红色闪烁:表示链接的文件有问题
黄色:表示设备文件
灰色:表示其他文件
- 切换目录
cd 目录或路径
:切换到指定目录,英文:change directorycd ~
:切换到当前用户的主目录(/home/user)cd
:切换到当前用户的主目录(/home/user)同上
cd /
:切换到根目录cd ..
:切换到上一级目录cd .
:切换到当前目录(无意义的操作)cd -
:切换到上一次目录
- 绝对路径和相对路径
- 绝对路径:是指以
/
开头的路径- 无论在哪执行都能得到一个相同的结果
- 如:
/test/hello
- 相对路径:是指没有以
/
开头的路径- 相对路径起点是以当前目录开始去查找,不同的位置执行相同的路径,得到的结果不同
- 如:
./test/hello
、../test/hello
、test/hello
- 创建和删除目录
mkdir
:创建目录,英文:mkdir make directory (理解)-p
选项用来逐层创建不存在的目录
rmdir
:删除空目录(只能删除无文件的空目录),英文:rmdir remove directory【不常用】-p
选项用来逐层删除空目录(如果某个目录中存在其它文件或目录,删除失败)【不常用】【一般用rm -r
】
- 创建和删除文件
touch 文件名
:创建文件touch 文件1 文件2 ...
:用空格隔开,可以连续创建多个文件
rm 文件名
:删除文件(不经过询问,且不进入回收站,慎用)-i
:删除前询问是否删除- 只有回复
y
才删除
- 只有回复
-r
:删除目录(不考虑目录是否为空)-f
:强制删除不询问rm -rf *
:【常用】删除当前目录下的所有文件*
:表示通配符,表示所有文件
- 复制文件或目录
cp 源文件 目标路径
:复制文件,英文:copy-r
:可以复制目录cp 源文件 目标路径和文件名
复制的同时可以改名- 如:
cp test.py ~/Desktop/test_copy.py
- 如:
- 移动文件或目录
mv 源文件 目标路径
:移动文件或目录,英文:move-v
: 在移动或复制时,显示路径信息【了解】mv 文件名A 文件名B
:可以实现重命名操作- 没有
-r
选项,可以直接操作目录
4. 常用命令——高级命令
- echo 【不常用】
echo 内容
:显示,相当于printecho $?
显示上一次命令或程序的执行状态码0
表示正常结束
echo $PATH
显示系统环境变量 PATH- 用冒号连接多个路径
在Linux中,$
符号代表一个shell 变量。所有的shell都用这种方式使用变量。有一些shell变量在你的系统启动的时候就有了默认值。
例如,$
SHELL;$
LOGNAME是你的登录名,而$PATH变量指明了你的shell命令的搜索范围。
echo命令的作用就是打印出你的输入。如果你的输入具有shell的特殊意义,例如shell变量,他就输出变量的值。
应用:对文件的内容进行追加
echo '内容文本' >> a.txt
- 重定向
>
:输出重定向,用来将输出到屏幕的数据,重定向到一个指定位置(一般是指定一个文件)- 不管指定的文件是否存在,都会创建新文件保存数据
- 如果文件存在,会覆盖原文件
- 不管指定的文件是否存在,都会创建新文件保存数据
# 将ls输出的内容,输出到文件a.txt中
ls > a.txt
>>
:输出重定向,区别>>
是追加数据- 如果文件不存在,会创建新文件保存数据
- 如果文件存在,会在文件末尾追加数据
- 查看文件内容
cat
:查看小型文件,可以同时查看多个文件,显示效果是将多个文件依次显示more
:查看大型文件,特点是可以分屏显示,可以前后翻页空格
和f
:向下翻一屏b
:向上翻一屏回车
:向下翻一行q
:退出,并停留在当前页
应用
cat
和重定向
配合可以实现文件的拼接
cat a.txt b.txt > c.txt
- 管道
|
:管道- 将 管道左边命令的输出结果做为管道右边命令的输入
应用
命令
和管道
和more
组合,可以实现命令输出结果的分屏显示
ls -l ~/Desktop | more
#相当于
ls -l ~/Desktop > a.txt
more a.txt
- 链接命令
-
ln -s 源文件 软连接文件
:软链接【掌握】,类似windows下的快捷方式-
软链接文件,无论对哪个文件进行操作,都会影响另外一个文件
-
当原文件删除或移动或改名后,那么链接文件会失效,链接文件会变成红色,如果将这个文件名恢复,那么连接也会恢复
-
-
当创建软链接文件时,为了避免软连接文件移动后链接失效,源文件需要使用绝对路径指定
-
可以对目录做软链接
-
软链接创建的文件格式是
l
,是软连接文件
-
-
ln 源文件 硬连接文件
:硬链接,类似于源文件的一个别名,即这两个名字指向的是同一个文件数据
-
硬链接只能链接文件,不允许对目录做硬连接
-
硬连接不受路径影响,使用相对路径和绝对路径都可以
-
硬连接会保持数据同步
-
目录的文件信息中的连接数表示,当前目录下包含多少子目录
-
硬链接创建的文件格式是
-
,即普通文件 -
每创建一个硬链接文件,对应的
文件数据
属性中的连接数 +1,反之删除则减一 -
删除源文件,硬链接还可以访问到
文件数据
-
文件夹的链接数:表示该文件夹下有几个文件夹
- 因此不能对目录进行硬链接
文件的链接数:表示该文件数据
有几个硬链接对象(即文件)
- 文本搜索(文件中查找)
-
grep 选项 '要查找的内容' 被查找的文件
:文本搜索-
如果找到,则显示该文本,如果未找到,则不显示内容
-
-i
:忽略大小写 -
-n
:显示查找到内容匹配的行号 -
-v
:显示不包含匹配文本的所有行号,即取反作用 -
grep
搜索时,可以使用正则来查找字符
-
正则表达式
^
以指定字符串开头- eg:
'^xxx'
- eg:
$
:以指定字符串结尾- eg:
'xxx$'
- eg:
.
:匹配任意一个非换行符的字符- eg:
'xxx.xxx'
- eg:
.*
:匹配任意数量的非换行符的字符【了解】- eg:
'xxx.*xxx'
- eg:
应用
命令
和管道
和grep
组合,可以实现命令输出结果的内容查找
ls -l ~/Desktop | grep '123.py'
# 相当于
ls -l ~/Desktop > a.txt
grep '123.py' a.txt
- 查找文件
find 查找路径 -name 被查找的文件
- 查找的范围:包含指定目录及指定目录下的子目录
- 被查找文件可用引号引起来
find 查找路径 -name '被查找的文件'
- 通配符
*
表示任意个字符?
表示一个任意字符
- 压缩和打包
打包文件
-
tar cvf 文件名
:命令可以将多个文件进行打包-
打包是不会进行压缩文件的
-
tar
命令的选项,可以不写-
-
-c
:创建打包文件 -
-v
:显示打包或者解包的详细信息 -
-f
:指定文件名,一定放在所有选项的最右侧,后面跟的是包名
-
解包文件
-
tar xvf 文件名
:解压指定文件-x
:解包打包文件-v
:显示打包或者解包的详细信息-f
:指定文件名,一定放在所有选项的最右侧,后面跟的是包名
-
tar xvf 文件名 -C 目录路径
:解压指定文件到指定目录-C
:解压缩到指定目录
压缩文件
为了在打包时可以进行压缩,tar 集成了两个选项,z 和 j,用来在打包的同时对包文件进行实现压缩
-
tar zcvf xxx.tar.gz 被压缩文件
:压缩【常用】,压缩比低,速度快-z
-> gzip 工具,压缩格式是 .gz【常用】- 这里的后缀名只是起提示作用,无意义,但一般需要写出
-
tar jcvf xxx.tar.bz2 被压缩文件
:压缩,压缩比高,速度慢-j
-> bzip2 工具,压缩格式是 .bz2
-
这里的后缀名只是起提示作用,无意义,但一般需要写出
解压文件
-
tar zxvf xxx.tar.gz
:解压缩 -
tar zxvf xxx.tar.gz -C 指定解压缩目录
:解压至指定目录 -
tar jxvf xxx.tar.bz2
:解压缩 -
tar jxvf xxx.tar.bz2 -C 指定解压缩目录
:解压至指定目录
- 进程
ps
:报告进程的状态。此命令将显示哪些程序正在运行。
ps -ef | grep firefox
查找firefox进程
找到进程id后,可以通过kill id杀掉某个进程
kill
1234