每日分享:
你要有足够的决心,你的原则才能发挥作用。但更重要的是,你要有足够的实力,你的原则才能守下去。
目录:
- 重定向命令
- 查看文件内容命令
- 链接命令
- 文本搜索命令
- 查找文件命令
- 压缩和解压缩命令
- 文件权限命令
- 获取管理员权限命令
- 用户相关操作
- 用户组相关操作
一、重定向命令
重定向也称为输出重定向,把在终端执行命令的结果保存到目标文件
命令 | 说明 |
---|---|
> | 如果文件存在会覆盖原有文件内容,相当于文件操作中的‘w’模式 |
>> | 如果文件存在会追加写入文件末尾,相当于文件操作中的‘a’模式 |
重定向命令示例:
只要在终端能显示信息的命令都可以使用重定向:ls、tree、pwd等等
二、查看文件内容命令
命令 | 说明 |
---|---|
cat | 查看小型文件 |
more | 分屏查看大型文件 |
cat命令示例:
gedit命令示例:
- cat命令结合重定向可以完成多个文件的合并
- gedit文件编辑命令,可以查看并编辑文件
more命令示例:
当查看的内容信息过长无法在一屏上显示时,可以使用more命令在终端分屏显示文件内容
操作说明:
操作键 | 说明 |
---|---|
空格 | 显示下一屏信息 |
回车 | 显示下一行信息 |
b | 显示上一屏信息 |
f | 显示下一屏信息 |
q | 退出 |
管道(|)命令的使用:
管道(|):一个命令的输出可以通过管道作为另一个命令的输入,可以理解成是一个容器,存放在终端显示的内容
管道命令示例:
管道一般结合more命令使用,主要是分屏查看终端显示内容
三、链接命令
链接命令是创建链接文件,链接文件:
- 软链接
- 硬链接
命令 | 说明 |
---|---|
ln -s | 创建软链接 |
ln | 创建硬链接 |
1. 软链接
类似于Windows下的快捷方式,当一个源文件的目录层级比较深,我们想要方便的使用它,可以给源文件创建一个软链接
在同一路径下创建软链接:
当然也可以创建在当前目录下的文件夹里:
但在当前目录下的文件夹中的文件夹内就创建失败了:
上级目录也会失败:
当软链接和源文件路径不同时,源文件要使用绝对路径:
还可以对目录创建软链接:
删除源文件后,软链接也会失效:
源文件和软链接数据同步:
注意:
- 如果软链接和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径
- 删除源文件则软链接失效
- 可以给目录创建软链接
2. 硬链接
类似于源文件的一个别名,也就是说这两个名字指向同一个文件数据
硬链接示例:
同一目录下创建硬链接:
不同目录下创建硬链接:(使用相对路径也可以创建成功)
源文件和硬链接数据同步:
删除源文件,仍可以访问硬链接:
给目录创建硬链接会失败:
注意:
- 创建硬链接使用相对路径和绝对路径都可以
- 删除源文件,硬链接还可以访问到数据
- 创建硬链接,硬链接数会加1,删除源文件或硬链接,硬链接数会减1
- 创建软链接,硬链接数不变
- 不能给目录创建硬链接
硬链接数:
硬链接数就是文件数据被文件名使用的次数,就类似于引用计数
硬链接和软链接以及备份文件都可以防止误删,但硬链接和软链接还可以实现数据同步,而这是备份文件所没有的
四、文本搜索命令
1. grep命令的使用
命令 | 说明 |
---|---|
grep | 文本搜索 |
grep命令示例:
2. grep命令选项的使用
命令选项 | 说明 |
---|---|
-i | 忽略大小写 |
-n | 显示匹配行号 |
-v | 显示不包含匹配文本的所有行 |
-i和-n选项示例:
-v选项示例:
3. grep命令结合正则表达式的使用(简介)
正则表达式 | 说明 |
---|---|
^ | 以指定字符串开头 |
$ | 以指定字符串结尾 |
. | 匹配一个非换行的字符 |
grep与正则表达式“^”、“$”、“.”示例:
grep命令还可以文本搜索管道中的内容:
使用grep命令的时候,还可以省略搜索内容的引号:
五、查找文件命令
1. find命令及选项的使用
命令 | 说明 |
---|---|
find | 在指定目录下查找文件(包括目录) |
find命令选项:
选项 | 说明 |
---|---|
-name | 根据文件名(包括目录名)字查找 |
find命令及选项示例:
2. find命令结合通配符的使用
通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件
通配符 | 说明 |
---|---|
* | 代表0个或多个任意字符 |
? | 代表任意一个字符 |
find与通配符结合示例:
通配符不仅能结合find命令使用,还可以结合其他命令使用,比如:ls、mv、cp等,需要注意的是只有find命令使用通配符需要加上引号,其他命令不能加引号
示例:
六、压缩和解压缩命令
1. 压缩格式的介绍
Linux默认支持的压缩格式:
- .gz
- .bz2
- .zip
说明:
- .gz和.bz2的压缩包需要使用tar命令来压缩和解压缩
- .zip的压缩包需要使用zip命令来压缩,使用unzip命令来解压缩
压缩的目的:节省磁盘空间
2. tar命令及选项的使用
命令 | 说明 |
---|---|
tar | 压缩和解压缩命令 |
tar命令选项:
选项 | 说明 |
---|---|
-c | 创建打包文件 |
-v | 显示打包或者解包的详细信息 |
-f | 指定文件名称,必须放到所有选项后面 |
-z | 压缩或解压缩(.gz) |
-j | 压缩或解压缩(.bz2) |
-x | 解压 |
-C | 解压到指定目录 |
压缩成.gz的示例:
压缩成.bz2的示例:
解压.gz的示例:
解压.gz到指定目录示例:
解压.bz2的示例:
解压.bz2到指定目录示例:
3. zip和unzip命令及选项的使用
命令 | 说明 |
---|---|
zip | 压缩成.zip格式文件 |
unzip | 解压缩.zip格式文件 |
unzip命令选项:
选项 | 说明 |
---|---|
-d | 解压缩到指定目录 |
压缩成zip示例:
解压缩zip示例:
解压缩到指定目录示例:
一般来说比较官方正规(python)的使用.gz
.zip适用性高(win系统也有zip)、代码简洁,但压缩效果不好
七、文件权限命令
1. chmod命令的介绍
命令 | 说明 |
---|---|
chmod | 修改文件权限 |
chmod修改文件权限有两种方式:
- 字母法
- 数字法
2. chmod字母法的应用
角色 | 说明 |
---|---|
u | user,表示该文件的所有者 |
g | group,表示用户组 |
o | other,表示其他用户 |
a | all,表示所有用户 |
权限设置:
操作符 | 说明 |
---|---|
+ | 增加权限 |
- | 撤销权限 |
= | 设置权限 |
权限:
权限 | 说明 |
---|---|
r | 可读 |
w | 可写 |
x | 可执行 |
- | 无权限 |
角色user、group、other与权限rwx应用示例:
角色all应用示例:
权限设置除了=还有+-: (对多个角色进行操作中间用逗号隔开)
3. chmod数字法的使用
数字法就是‘rwx’这些权限可以用数字来代替
权限:
权限 | 说明 |
---|---|
r | 可读,值为4 |
w | 可写,值为2 |
x | 可执行,值为1 |
- | 无权限,值为0 |
数字法设置多个权限需要把各权限对应的值加起来
chmod数字法示例:
设置all没有读写执行的权限:
八、获取管理员权限命令
1. sudo命令的使用
命令 | 说明 |
---|---|
sudo -s | 切换到root用户,获取管理员权限 |
sudo | 某个命令的执行需要获取管理员权限可以在执行命令前加上sudo |
命令 | 说明 |
---|---|
exit | 退出登录用户 |
sudo -s 应用示例:
exit可以退出管理员权限:
- 如果是切换后的登录用户,则退出返回上一个登录账号
- 如果是终端界面,退出当前终端
sudo命令示例:(同一终端,再次使用管理员权限不用再次输入密码)
- 如果只是某次操作需要使用管理员权限,建议使用sudo
- 如果大量操作都需要使用管理员权限,就使用sudo -s,但一定要小心操作(尤其是删除文件的时候)
2. whoami命令使用
命令 | 说明 |
---|---|
whoami | 查找当前用户限 |
whoami命令应用示例:
3. who命令的使用
命令 | 说明 |
---|---|
who | 查看所有的登录用户 |
who命令应用示例:
4. passwd命令使用
命令 | 说明 |
---|---|
passwd | 修改用户密码,不指定用户,默认修改当前登录用户密码 |
passwd命令应用示例:
5. which命令的使用
命令 | 说明 |
---|---|
which | 查看命令位置 |
which命令应用示例:
6. 关机和重启命令使用
命令 | 说明 |
---|---|
shutdown -h now | 立刻关机 |
reboot | 重启 |
九、用户相关操作
1. 创建用户
命令 | 说明 |
---|---|
useradd | 创建(添加)用户 |
useradd命令选项:
选项 | 说明 |
---|---|
-m | 自动创建用户主目录,主目录的名字就是用户名 |
-g | 指定用户所属的用户组,默认不指定会自动创建一个同名的用户组 |
创建用户示例:
查看所有用户信息的文件示例:
红框部分为刚刚创建的用户:
- useradd命令的使用需要有管理员权限,前面要加上sudo
- 创建用户如果不指定用户组(-g指定用户组),默认会创建一个同名的用户组
- 查看用户是否创建成功可以看/home或者/etc/passwd
- 查看用户组是否创建成功可以看/etc/group
passwd文件中每项信息说明:(以下图红框部分为例)
每项信息用:隔开
- 第一项:用户名
- 第二项:密码占位符
- 第三项:uid,用户id
- 第四项:gid,用户所在组的id
- 第五项:用户描述,可不写
- 第六项:用户的主目录所在位置
- 第七项:用户所用shell类型,一般是bash或sh,不设置默认为sh
group文件中的每项信息:
- 第一项:用户名
- 第二项:用户组密码占位符,一般Linux系统用户组没有密码
- 第三项:组id
id命令查看用户信息:
命令 | 说明 |
---|---|
id | 查看用户信息 |
id命令示例:
每项信息说明:
- uid:用户id
- gid:用户组id
- 组表示用户所在的用户组
2. 设置密码
给其他用户设置密码:sudo passwd 用户名
为什么不是直接passwd设置密码?
passwd是给当前用户设置密码
3. 切换用户
命令 | 说明 |
---|---|
su | 切换用户 |
切换用户:su - 用户名
在hello用户使用sudo -s示例:
可以看到hello用户没有管理员权限,我们需要给hello用户设置一个sudo附加组,之后其才可以有管理员权限。(需要使用usermod修改用户信息)
4. 修改用户信息
命令 | 说明 |
---|---|
usermod | 修改用户信息 |
usermod选项:
命令 | 说明 |
---|---|
-G | 设置一个附加组 |
-g | 修改用户组 |
usermod命令示例:
设置附加组sudo后,就可以使用sudo -s了:
5. 删除附加组
命令 | 说明 |
---|---|
gpasswd | 添加和删除附加组信息 |
gpasswd命令选项:
选项 | 说明 |
---|---|
-a 用户名 | 给用户添加附加组 |
-d 用户名 | 给用户删除附加组 |
删除附加组示例:
删除后需重新打开终端:
6. 删除用户
命令 | 说明 |
---|---|
userdel | 删除用户 |
userdel命令的选项:
选项 | 说明 |
---|---|
-r 用户名 | 删除用户主目录,必须要设置,否则用户主目录不会删 |
删除用户示例:
id查看用户信息示例:
查看group文件信息示例:
十、用户组相关操作
1. 创建用户组(sudo groupadd 用户组名)
命令 | 说明 |
---|---|
groupadd | 创建(添加组) |
创建用户示例:
2. 创建用户并指定用户组(sudo useradd -m -g 用户组名 用户名)
创建用户并指定用户组示例: (没有重启终端,所以没有让输入密码)
3. 修改用户组(sudo usermod -g 用户组名 用户名)
4. 删除用户组(sudo groupdel 用户组名)
命令 | 说明 |
---|---|
groupdel | 删除用户组 |
删除用户组示例:
删除有用户的用户组:(需要先删除用户)