Linux 进阶操作 输出重定向 管道 链接 搜索 归档 修改权限chmod 用户管理

输出重定向

输出重定向就是将一个命令输出结果 从终端转出而输入到文件中去
语法: 命令-选项-参数-符号-文件名

# > 覆盖输出重定向, 类似于 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

对于源文件创建一个链接文件, 让用户直接使用/修改链接文件而不用使用源文<使用源文件和链接文件效果完全一样>
链接分为两种:

  1. 软链接 ln -s 源文件 链接文件 # soft symbol
  2. 硬链接 ln 源文件 链接文件
# 软链接
ln -s a.txt as # 给 a.txt 创建一个名为 as 的软链接

# 硬链接
ln a.txt ah # 给 a.txt 创建一个名为 ah 的硬链接

敲黑板,注意了:

  1. 软链接不存源文件数据, 只存源文件的路径
  2. 目录的硬链接数 达到该目录的路径
  3. 文件的硬链接和源文件是同一份文件数据, 不同名字
  4. 文件数据在文件系统中有一个唯一的编号 iNode(查看 iNode 用 ls -i 查看)
  5. 删除源文件时软链接失效, 硬链接可以链接文件或者目录
  6. 硬链接对文件创建, 软链接可以链接文件或者目录.
  7. 在创建软链接时 , 建议写绝对路径

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. 1.9 个权限分三组 一组有三种不同的权限
  2. r 读/ w 写/ x 可执行
  3. 文件所属用户 u 同组用户权限 g 其他 o a所有
  4. 语法: 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 权限控制能不能进入这个目录

基本用户操作

  1. sudo 输入密码的时候, 不回显
  2. sudo 命令 以管理员的权限运行后边的命令
  3. chomd 权限限制
  4. sudo chomd 以管理员权限修改 ls 权限
  5. sudo -s 超级用户super
  6. whoami 查看当前用户名称
  7. exit 退出当前用户, 如果是最后一个用户就退出终端
  8. 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 的标签了 绝望

发布了56 篇原创文章 · 获赞 17 · 访问量 2158

猜你喜欢

转载自blog.csdn.net/LanlanDeming/article/details/103602258