重定向命令
将命令行输出的结果写入指定文件内.
命令 | 说明 |
---|---|
> | 如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式 |
>> | 如果文件存在会追加写入文件末尾,相当于文件操作中的‘a’ 模式 |
常用命令为:
-
ls /home > ./info.text
将home目录的文件目录内容覆盖写入当前目录的info.txt文件中
-
pwd home >> ./info.text
将home路径信息内容追加写入当前目录的info.txt文件中
查看文件内容
查看文件选项
命令 | 选项 |
---|---|
cat | 查看小型文件 |
more | 分屏查看大型文件 |
常用命令为:
-
cat 1.txt
查看1.txt文件内容,可结合重定向命令实现文件合并.如下:
-
cat 1.txt >> 2.txt
将1.txt文件内容追加到2.txt文件内
-
more msg.txt
分屏查看msg.txt文件内容
more分屏查看文件时操作命令:
操作间 | 说明 |
---|---|
空格 | 显示下一屏信息 |
回车 | 现实下一行信息 |
b | 显示上一屏信息 |
f | 显示下一屏信息 |
q | 退出查看 |
管道命令使用
管道(|):一个命令的输出可以通过管道做为另一个命令的输入,可以理解成是一个容器,存放在终端显示的内容。
常用命令为:
-
ls -lh | more
将当前目录信息使用more分屏模式查看
-
可结合后面的grep文本搜索命令使用,如下:
-
ls | grep 'txt'
在ls返回的目录信息中搜索'txt'字段
链接命令
链接命令是创建链接文件,分为硬链接和软连接两种:
命令 | 说明 |
---|---|
ln -s | 创建软链接 |
ln | 创建硬链接 |
软链接
类似于Windows下的快捷方式,当一个源文件的目录层级比较深,我们想要方便使用它可以给源文件创建一个软链接。
软链接命令为:
-
ln -s /home/python/Desktop/AA/info.txt ./info-s.txt
给桌面AA文件夹内info.txt文件在当前路径创建软链接,名为info-s.txt
注意事项:
-
如果软链接和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径
-
删除源文件或移动源文件位置则软链接失效
-
可以给目录创建软链接
硬链接
类似于源文件的一个别名,也就是说硬链接同源文件名一样,指向的是同一个文件数据,而不是指向它的源文件名.
硬链接的作用是可以给重要文件创建硬链接,能够防止文件数据被误删。
硬链接命令为:
-
ln ./AA/info.txt ./info-h.txt
给当前目录下AA文件夹内info.txt文件在当前路径创建软链接,名为info-h.txt
注意事项:
-
创建硬链接使用相对路径和绝对路径都可以
-
删除源文件,硬链接还可以访问到数据。
-
创建硬链接,硬链接数会加1,删除源文件或者硬链接,硬链接数会减1。
-
创建软链接,硬链接数不会加1
-
不能给目录创建硬链接
硬链接数:
硬链接数就是文件数据被文件名使用的次数, 好比引用计数
文本搜索命令
命令 | 说明 |
---|---|
grep | 文本搜索 |
grep命令选项:
命令选项 | 说明 |
---|---|
-i | 忽略大小写 |
-n | 显示匹配行号 |
-v | 显示不包含匹配的行 |
grep结合正则表达式使用:
正则表达式 | 说明 |
---|---|
^ | 以指定字符串开头 |
$ | 以指定字符串结尾 |
. | 匹配一个非换行符的字符 |
常用命令为:
-
grep "python" hello.py -in
在hello.py文件中搜索"python"内容,忽略大小写,并显示匹配行号.
-
grep "python" hello.py -iv
在hello.py文件中搜索不包含"python"的行,忽略大小写.
-
grep "^py" hello.py -n"
在hello.py文件中搜索"py"开头的内容,显示匹配行号.
-
grep "on$" hello.py -n
在hello.py文件中搜索"on"结尾的内容,显示匹配行号.
-
grep "py.on" hello.py -n
在hello.py文件中搜索符合"py.on"的内容,显示匹配行号.
结合管道使用:
ls | grep 'txt'
查找文件命令
命令 | 说明 |
---|---|
find | 在指定目录下查找文件(包括目录) |
find常用选项:
选项 | 说明 |
---|---|
-name | 根据文件名(包括目录名)查找 |
- perm | 根据文件权限查找 |
find可结合通配符使用:
- 通配符不仅可用于文件查找,还可在其他命令中使用,比如ls、mv等
通配符 | 说明 |
---|---|
* | 代表0个或多个任意字符 |
? | 代表任意一个字符 |
常用命令为:
-
find . -name "*.txt"
在当前路径起始向下,所有文件名结尾为.txt的文件.
-
find ~ -perm 755
在家目录下,查找所有权限为755的文件,即用户、用户组、其他用户权限分别为可读写操作/可读操作/可读操作。详细权限内容参考后文。
压缩和解压缩命令
Linux 默认支持的3种格式
-
.gz
:使用tar
命令来压缩和解压缩 -
.bz2
:使用tar
命令来压缩和解压缩 -
.zip
:使用zip
命令来压缩和解压缩
tar 命令选项
选项 | 命令 |
---|---|
-c | 创建打包文件 |
-v | 显示打包或解包详细信息 |
-f | 指定文件名称 |
-z | 压缩或解压缩(用于.gz格式) |
-j | 压缩或解压缩(用于.bz2格式) |
-x | 解包 |
-C | 解压缩到指定目录 |
常用命令为:
-
tar -zcvf test.tar.gz dir1 dir2
将dir1和dir2压缩为test.tar.gz 名的gz压缩文件
-
tar -zxvf test.tar.gz -C DIC
将test.tar.gz文件解压到当前目录的DIC文件夹内
-
tar -jcvf test.bz2 dir1 dir2
将dir1和dir2压缩为test.bz2 名的bz2压缩文件
-
tar -zxvf test.bz2 -C DIC
将test.bz2文件解压到当前目录的DIC文件夹内
可不指定解压或压缩路径,默认解压或压缩到当前路径
zip 和unzip命令选项的使用
命令及选项 | 说明 |
---|---|
zip | 压缩成.zip格式文件 |
unzip | 解压缩.zip格式文件 |
-d | 解压缩到指定目录 |
常用命令为:
-
zip test.zip dir1 dir2
将dir1和dir2压缩为test.zip
-
unzip test.zip -d DIC
将test.zip解压到DIC目录内
说明
-
压缩文件尽量使用
.gz
格式,占用空间更少 -
zip格式占用空间较大,但各平台较通用
用户权限命令
chmod命令介绍
chmod
用于修改文件权限,修改方式分为两种:
-
字母法
-
数字法
字母法
角色 | 说明 |
---|---|
u | user,文件所有者 |
g | group,用户组 |
o | other,其他用户 |
a | all,所以用户 |
权限说明
权限 | 说明 |
---|---|
r | 可读 |
w | 可写 |
x | 可执行 |
- | 无任何权限 |
权限设置说明:
操作符 | 说明 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设置权限 |
各角色权限对应位置说明:
![](https://img.haomeiwen.com/i16394388/21e263d7729e84c8.png)
如图:使用ls -l命令以列表方式显示文件信息,信息开头如-rw-rw-r--
即为每个文件的权限,其长度为10。第一个位置为文件类型,除开第一个,其于9个每3个为一组,分别对应用户u、g、o权限的r、w、x权限,无权限的为-表示。
权限对应示例:
---------
所有用户均无任何权限
rwxrwxrwx
所有用户都有读、写、可执行的权限
rwxrw-r--
user可读、写、执行,group可读、写,other只可读
字母法修改权限命令示例:
就以上图1.bz2文件权限为例修改
-
命令:
chmod u=rwx,g-w,o+x 1.bz2
解析:命令修改1.bz2文件权限:user改为rwx权限,user去掉w权限,other增加x权限,修改后1.bz2权限如下,可与上图对比。
image.png
数字法
数字法可以让“rwx”三个权限字母仅用一个数字来代替
权限说明:
权限 | 说明 | 权限值 |
---|---|---|
r | 可读 | 4 |
w | 可写 | 2 |
x | 可执行 | 1 |
- | 无任何权限 | 0 |
把对应权限的权限值相加,即可得到最终权限值;
如rw- 对应权限值6,r-x对应权限值5,r--对应权限值4;
在修改权限命令中用3个数字可分别对应u、g、o的权限内容。
数字法修改权限命令示例:
同样以上图1.bz2文件权限为例修改
-
命令:
chmod 666 1.bz2
解析:命令修改1.bz2文件权限为666,6=4+2 ,即分别对应u、g、o权限为rw-, 即修改所有角色权限为可读写权限,可继续对比上图。
image.png
说明
常使用的是数字法给不同角色修改权限,语法更简洁。
获取管理员权限相关命令
sudo 命令的使用
命令 | 说明 |
---|---|
sudo |
单个命令l临时获取root权限,命令前加sudo |
sudo -s |
切换到root用户,获取管理员权限 |
-
例:在根目录新建文件,需使用root权限:
使用
sudo
获取临时权限:sudo touch /test.txt
whoami 命令
- 查看当前用户权限
exit 命令
- 退出登录用户(在不同用户之前切换时需先使用exit推出栈
who 命令
- 查看所有登录用户
passwd 命令
- 修改用户密码,不指定用户时默认修改当前登录用户密码
关机重启命令
-
shutdown -h now
立即关机 -
shutdown -h 10
10分钟后关机 -
reboot
重启
用户相关操作
useradd 创建用户
创建用户需使用root权限
选项 | 说明 |
---|---|
-m | 创建用户时,自动创建用户主目录(基本都会使用该选项) |
-g | 指定用户所属的用户组,默认不指定时自动创建同名用户组 |
示例:
-
sudo useradd -m demo
解析:创建用户demo,并默认创建同名用户组,图中可见,家目录中新增demo用户。
image.png
也可在使用命令
cat /etc/passwd
在/etc/passwd
中查看新增用户,最文件最后一行显示demo用户信息:
image.png
-
id命令查看用户信息
-
第一个: uid 表示用户id
-
第二个: gid 表示用户组id
-
第三个: 组 表示用户所在的用户组
且可见新建demo用户的组数量小于python用户,这将会在下面详细讲到。
image.png
-
设置密码
使用sudo passwd 用户名
的命令形式给用户设置密码
- 给新建用户demo设置密码命令:
sudo passwd demo
![](https://img.haomeiwen.com/i16394388/97597bb111d0b52e.png)
切换用户
-
使用
su 用户
命令切换用户切换用户后,当前用户名变为demo
image.png
-
新建的用户不在sudo的组内,是无法使用使用root权限的:
image.png
解决办法:
- 给demo用户设置一个sudo附加组, 需要使用
usermod
修改用户信息
- 给demo用户设置一个sudo附加组, 需要使用
修改用户信息
usermod
:修改用户信息
选项 | 说明 |
---|---|
-G | 设置一个附加组 |
-g | 修改用户组 |
-
切换回原用户给demo用户设置附加组sudo,让其可使用sudo命令:
sudo usermod -G sudo demo
![](https://img.haomeiwen.com/i16394388/771e3c68584d0495.png)
- 给demo用户修改组信息过后,即可成功切换到root用户下:
![](https://img.haomeiwen.com/i16394388/a973bb134abe1e98.png)
删除附加组
gpasswd
:添加或删除附加组信息
选项 | 说明 |
---|---|
-a 用户名 | 给用户添加附加组 |
-d 用户名 | 给用户删除附加组 |
-
在python用户下删除demo用户的sudo组
sudo gpasswd -d demo sudo
删除用户
userdel
:删除用户
选项 | 说明 |
---|---|
-r 用户名 | 删除用户主目录,必须要设置,否则用户主目录不会删除 |
-
命令:
sudo userdel -r demo
删除创建的demo用户:删除前请确保使用
exit
完全退出了栈
image.png
忽略最后的提示,demo用户成功删除。
删除用户,默认同名的用户组也会被删除
用户组相关操作
-
groupadd
:创建用户组sudo groupadd test
-
sudo useradd -m -g test demo
: 创建demo用户同时指定用户组test -
sudo usermod -g abc demo
:修改用户组为abc -
sudo usermod -G sudo demo
: 给用户设置附加组sudo -
groupdel
:删除组-
sudo groupdel test
:删除用户组 -
如果用户组下面有用户,需要先使用
userdel -r
删除用户,再删除组
-
编辑器 vim
vim 是一款功能强大的文本编辑器,也是早年 Vi 编辑器的加强版,它的最大特色就是使用命令进行编辑,完全脱离了鼠标的操作。
vim的工作模式
-
命令模式
-
编辑模式:
i
-
末行模式:
:
image.png
编辑模式和末行模式之间不能直接切换,都需要先退回到命令模式
vim 末行模式命令
命令模式下:
进入末行模式
-
:w 保存
-
:wq 保存退出
-
:x 保存退出
-
:q! 强制退出
vim 命令模式下常用命令
命令 | 说明 |
---|---|
yy | 复制光标所在行 |
p | 粘贴 |
dd | 删除/剪切当前行 |
V | 按行选中 |
u | 撤销 |
ctr+r | 反撤销 |
>> | 往右缩进 |
<< | 往左缩进 |
:/搜索的内容 | 搜索指定内容 |
:%s/要替换的内容/替换后的内容/g | 全局替换 |
:开始行数,结束行数s/要替换的内容/替换后的内容 | 局部替换 |
. | 重复上一次命令操作 |
G | 回到最后一行 |
gg | 回到第一行 |
数字+G | 回到指定行 |
ctr+f | 下一屏 |
ctr+b | 上一屏 |
shift+6 | 回到当前行的行首 |
shift+4 | 回到当前行的行末 |
网友评论