输出重定向
输出重定向就是将一个命令输出结果 从终端转出而输入到文件中去
语法: 命令-选项-参数-符号-文件名
# > 覆盖输出重定向, 类似于 python 读操作中的 w 模式, 结果直接覆盖文件内容
ls -ahl /bin > a.txt
# >> 追加输出重定向, 类似于 python 中的 a 模式, 结果追加到原有的文件末尾
ls -ahl /bin >> a.txt
管道 |
| 就是连接两个命令的管道连接符, 把 | 左边的命令的输出结果, 给右边命令当做输入使用
# 管道一般结合 more grep 使用
# 命令 | more
ls -alh /bin | more
cat a.txt | more # 等价于 more a.txt
链接 ln
对于源文件创建一个链接文件, 让用户直接使用/修改链接文件而不用使用源文<使用源文件和链接文件效果完全一样>
链接分为两种:
- 软链接 ln -s 源文件 链接文件 # soft symbol
- 硬链接 ln 源文件 链接文件
# 软链接
ln -s a.txt as # 给 a.txt 创建一个名为 as 的软链接
# 硬链接
ln a.txt ah # 给 a.txt 创建一个名为 ah 的硬链接
敲黑板,注意了:
- 软链接不存源文件数据, 只存源文件的路径
- 目录的硬链接数 达到该目录的路径
- 文件的硬链接和源文件是同一份文件数据, 不同名字
- 文件数据在文件系统中有一个唯一的编号 iNode(查看 iNode 用 ls -i 查看)
- 删除源文件时软链接失效, 硬链接可以链接文件或者目录
- 硬链接对文件创建, 软链接可以链接文件或者目录.
- 在创建软链接时 , 建议写绝对路径
grep 搜索内容
作用: 在一个文件中搜索指定的内容
语法: grep 选项 “要搜索的数据” 文件名
grep "asd" a.txt
# 忽略大小写 -i
grep -i "asd" a.txt
# 显示行号 -n
grep -n "sda" a.txt
# 反选 -v
grep -v "asd" a.txt
# 和正则表达式一起使用
# 搜索 a.txt 中以 www 开头的所有行
grep "^www" a.txt
# 搜索 a.txt 中以 "com" 结尾的所有行
grep "com$" a.txt
find
find: 在文件系统中指定目录(及其子目录中) 查找指定文件名称文件
语法: find 目录 -name"文件特征"
# 在当前目录查找 .py 文件
find . -name ".py"
# 以系统管理员身份在根目录下查找 s.py 的文件
sudo find / -name "*s.py"
sudo find / -name "?s.py"
# 以系统管理员身份在根目录下查找 s.py 文件中以 import 开头的文件
sudo find / -name "*s.py" | grep "^import"
归档 tar
tar: 以最少的磁盘空间 备份数据
语法: tar 选项 压缩包名 需要被压缩的文件名1 , 2…
命令 | 作用 |
---|---|
-c | 打包 |
-x | 拆包 |
-v | 在拆包/解包中显示详细过程 |
-f | 指定归档文件名字, 必须紧跟文件名 |
-C | 解压到指定目录 |
-j | 压缩为 bzip2 格式 |
-z | 压缩为 gzip 格式 |
# 压缩当前目录下的所有文件 压缩为 gzip 格式, 并显示详细过程
tar -zvcf my.tar.gz *
# 解压 gzip 格式的文件到指定文件, 并显示详细过程
tar -zxvf my.tar.gz -C text/
# 压缩当前目录下的所有文件 压缩为 bzip2 格式, 并显示详细过程
tar -jvcf my.tar.bz2 *
# 解压 bzip2 格式到指定为文件, 并显示详细过程
tar -jxvf my.tar.bz2 -C text/
tar 命令选项中的 - 可以不带
zip格式
# 压缩当前目录的所有 py/sql 文件到 my.zip 中
zip my.zip *.py*.sql
# 解压到当前路径
unzip my.zip
# 解压到指定目录
unzip my.zip -d ../111/
修改权限 chmod
背景: Linux 是一个多用户的系统 严格的权限控制保证系统数据的安全稳定
chomd 改变文件的访问权限有两种方式:
1.字母法
- 1.9 个权限分三组 一组有三种不同的权限
- r 读/ w 写/ x 可执行
- 文件所属用户 u 同组用户权限 g 其他 o a所有
- 语法: chmod augo±= rwx 文件名
# 将 a.txt 所属用户的权限改为读 (改前为 rwx)
chmod u-wx a.txt
# 将 a.txt 同组用户的权限改为读 (改前为 rwx)
chmod g-wx a.txt
# 将 a.txt 其他的权限改为读 (改前为 rwx)
chmod o-wx a.txt
# 将 a.txt 的所有权限都加上读
chmod a+r a.txt
2.数字法
语法: chmod 数1 数2 数 3 文件名
给 rwx 分别赋值4.2.1 用三个权限的数字代表一组权限
7 | rwx |
---|---|
6 | rw- |
5 | r-x |
4 | r– |
3 | -wx |
2 | -w- |
1 | –x |
0 | — |
# 将 a.txt 的 权限改成 rwxrwxrwx
chmod 777 a.txt
# 将 a.txt 的权限改成 rwx-wxr-x
chomd 735 a.txt
对于目录来说 r 权限控制能不能在这个目录使用 ls 查看目录下的信息
w 权限控制能不能再这个目录下更新目录下的信息(新建文件修改名)
x 权限控制能不能进入这个目录
基本用户操作
- sudo 输入密码的时候, 不回显
- sudo 命令 以管理员的权限运行后边的命令
- chomd 权限限制
- sudo chomd 以管理员权限修改 ls 权限
- sudo -s 超级用户super
- whoami 查看当前用户名称
- exit 退出当前用户, 如果是最后一个用户就退出终端
- which 命令, 查看程序所在的位置
用户管理
# 1. 添加用户 sudo useradd 用户名
# 如果用户创建时不指定组 自动创建用户同组
sudo useradd py # 没有主目录
sudo useradd py # 自动创建主目录
# 2.查看用户信息
cat /etc/passwd
# id 用户名
id py
# 3.删除用户 sudo userdel 用户名
sudo userdel py
# 4.设置用户密码
sudo passwd py
# 5. 切换用户 记得退出 exit 这个用户
su py # 只切换用户 不切换当前目录
su - py # 切换用户 切换当前目录到当前用户主目录
# 6.修改 modify 用户所属组 主要组 附加组
sudo usermod 用户名 -g 主要组 -G 附加组
sudo usermod py -g python -G sudo
# 7.修改附加组中的用户
gpasswd -d 用户名 附加组名 # 将一个用户从附加组中删除
sudo gpasswd -d py sudo
gpasswd -a 用户名 附加组名 # 将一个用户王附加组中添加
sudo gpasswd -a py sudo
# 8. 查看系统中存在的组信息
cat /etc/group
# 9.创建主要组
sudo groupadd py
# 10.创建用户并且制定所属 主要组
sudo useradd pypy -m -g py
# 11. 删除主要组(主要组中不能有用户)
sudo groupdel py
ps: 谷歌装了去广告插件. 博客等级小于三级还不能自己创建标签,只能写一个 linux 的标签了 绝望