Linux重定向、链接、查找、压缩与用户管理


重定向

重定向又称输入、输出重定向。

为什么叫重定向?

因为原本的输入、输出方向是:stdin(键盘输入) → \rightarrow 命令 → \rightarrow stdout(屏幕输出)

  • 重定向可以改变原本的输入或输出方向

    重定向结果
    重定向标准输出stdin(键盘输入) → \rightarrow 命令 → \rightarrow 其他(文件)输出
    重定向标准输入其他(文件)输入 → \rightarrow 命令 → \rightarrow stdout(屏幕输出)
重定向标准输出
覆盖模式 >
command > file
  • command的屏幕输出写入file
  • 写入相当于文件操作中的w模式:即file若已存在,则删除原有内容再进行写入。若不存在,创建再写入。

如:

在这里插入图片描述

如果直接ls,将在屏幕上打印出code文件夹的内容信息。这就是标准输出。

ls > codedir.txt 将创建文件codedir.txt并将原本的输出内容写入文件,实现了重定向输出到文件中。

在这里插入图片描述

附加模式>>
command >> file
  • command的屏幕输出附加到file当中
  • 写入相当于文件操作中的a模式:即file若已存在,则将command的屏幕输出附加到file中。若不存在,创建再附加。

如:

在这里插入图片描述

附加效果

在这里插入图片描述

echo 回声打印
echo '字符串'
echo "字符串"  
echo 字符串
  • 输出输入的内容,并在最后自动换行
  • 选项
选项来源说明
-eescape支持转义字符
-E不支持转义字符
-nnewline取消最后的自动换行
  • 可与>>>结合将字符串输出到文件当中
重定向标准输入
文件查看命令
cat查看小型文件
cat file
cat file -n(--number) #每行加行号
  • 在终端屏幕上显示file小型文件中的内容
  • 来源自concatenate(连接),其连接作用体现在与重定向符号结合使用

在这里插入图片描述
在这里插入图片描述

more分屏查看大型文件
more file
more file -n(--number) #每行加行号
  • 当文件较大,内容较多时,more 可以让我们能够分屏查看文件内容
操作键说明
空格显示下一屏信息
回车显示下一行信息
b显示上一屏信息
f显示下一屏信息
q退出
gedit查看编辑文件
gedit file
  • 直接打开文本编辑器

如:
在这里插入图片描述

在这里插入图片描述

文件输入<
command < file
  • file作为command所需要的输入

如:

在这里插入图片描述

管道拼接|
outputcommand | inputcommand
  • outputcommand的输出作为inputcommand的输入

如:

在这里插入图片描述

普通 tree显示信息过长

在这里插入图片描述

将tree的输出作为more的输入,分页显示


链接

在Linux中,链接文件是一种文件类型。

  • 链接又分软链接、硬链接

ls -l的每一个文件显示项中,有一个代表硬链接数的数字

ls -l显示的信息中,-代表普通文件,d代表目录文件,l代表软链接文件(soft link).

在这里插入图片描述

软链接(soft link)
  • 软链接相当于Windows系统中的快捷方式。它链接到某个文件的文件名。当打开软链接文件时,系统会找到它链接到的文件名,进而找到链接的文件本体。软链接相当于文件名的指针。
  • 软链接极其依赖于它指向的文件的文件名(路径),若该文件被删除/移动/重命名,则软链接失效。但删除软链接文件,并不会影响软链接指向的的文件。
  • 软链接文件与被链接的文件内容同步(因为软链接文件指向文件名)
  • 可为目录文件创建软连接
命令
ln -s src_path dst_path
  • -s代表--soft
  • src_path为软链接指向的源文件的路径(务必使用绝对路径,因为软链接极其依赖于源文件)
  • dst_path为链接文件要放到的路径

如:

在这里插入图片描述

ls -l显示出了软链接文件的指向

打开dir.txt 相当于打开codedir.txt

在这里插入图片描述

删除源文件,软链接失效

在这里插入图片描述

硬链接(hard link)
  • 硬链接与软链接不同,它直接指向链接到的文件在内存中的本体,具有与原来的文件名相同的地位。硬链接相当于文件指针。
  • 删除硬链接指向的文件,并不会使硬链接失效。通过硬链接,依旧可以访问到文件本体。
  • 硬链接文件与被链接的文件内容同步(因为硬链接文件指向文件本体)
  • 不能为目录文件创建硬链接
命令
ln src_path dst_path
  • 各参数意义同软链接命令
  • src_path可使用相对路径
  • 创建完硬链接之后,文件硬链接数+1
  • 硬链接数:文件本体数据被不同文件名引用的次数。

如:

在这里插入图片描述

删除源文件,硬链接不会失效。硬链接数-1
在这里插入图片描述

在这里插入图片描述

总结
  • 软链接起到快捷方式的作用
  • 硬链接起到防止文件误删,多处备份的作用

文本查找

在文本文件中查找对应内容

grep命令
基本
grep string file
  • file的内容中查找包含string的行并输出到屏幕

如:
在这里插入图片描述

在这里插入图片描述

选项
命令选项来源说明
-iignore case忽略大小写
-nline number显示行号
-vinvert match显示不包含string的所有行

如:
在这里插入图片描述

结合正则表达式
  • 正则表达式(regular expression),字符串模式匹配表达式

  • 简单的有

正则表达式说明
^以指定字符串开头
$以指定字符串结尾
.匹配一个非换行符的字符
  • string可结合正则表达式

如:

在这里插入图片描述


文件查找

在目录中查找对应文件

find命令
基本
find dirpath -name filename
  • 按照文件名查找
  • dirpath路径下(包括子目录)查找文件名为filename的文件,在屏幕上输出查找到的文件路径

如:

在这里插入图片描述

结合通配符
通配符说明
*代表0个或多个任意字符
?代表任意一个字符

如:

在这里插入图片描述


压缩与解压缩

压缩格式

Linux默认支持的压缩格式有:

  • .gz
  • .bz2
  • .zip

其中.gz,.bz2对应tar命令,zip对应zipunzip 命令

tar
tar [-options] source_files
选项
选项来源说明
-ccreate打包
-xextract解包
-f filenamefile指定打包后或解包前的文件名称, 必须放到所有选项后面
-zgzip压缩或解压缩(.gz)
-jbzip2压缩或解压缩(.bz2)
-C dirnamechange解包到指定目录
-vverbose显示打包或者解包的详细信息

如:

在这里插入图片描述

将abc.txt、cdf.txt、cef.txt 直接打包到 team文件中

在这里插入图片描述

将abc.txt、cdf.txt、cef.txt 压缩后分别以.bz2,.gz格式打包

在这里插入图片描述

分别将team,teamj.bz2,teamz.gz解包到dir1,dir2,dir3中

zip/unzip
zip zipfile source_files
unzip zipfile
  • zipfile为压缩包,source_files为源文件
选项
选项来源说明
-d dirnamedirectory解压缩到指定目录

如:

在这里插入图片描述

将python目录下的txt文件压缩打包成teamzip.zip

再解压到dir4中

总结
  • 压缩文件尽量使用.gz格式,因为占用空间较少
  • 使用zip命令压缩的文件占用空间比较多, 但是比较通用,操作更加简单。
  • 压缩目的是节省磁盘占用空间

文件权限修改

文件权限

ls -l显示格式:

[类型][当前用户权限rwx][同组用户权限rwx][其他用户权限rwx] 硬链接数 用户 用户组 文件大小 修改时间 文件/目录名
  • 文件权限有r(读取)、w(写入)、x(执行),-(无)
  • 用户类型有user(当前用户),group(同组用户),other(其他用户)
chmod命令
字母法
  • 用户类型
字母全称含义
uuser当前用户
ggroup同组用户
oother其他用户
aallall,所有用户
  • 修改符
符号含义
+增加权限
-撤销权限
=设置权限
  • 权限类型
字符全称含义
rread读取权限
wwrite写入权限
xexecute执行权限
-无任何权限
命令
chmod [用户类型][修改符][权限类型] file
  • change mode全称
  • 可以同时设置各用户权限,如:u=rwx,g=r-x,o=---

如:

在这里插入图片描述

首先撤销了当前用户对abc.txt的读取权限(u-r),发现现在cat读不了abc.txt了:权限不允许(permission denied)

添加读取权限之后(u+r),当前用户又能够读取abc.txt了

数字法
权限数字
r4
w2
x1
-0
命令
chmod [u权限数字和][g权限数字和][o权限数字和] file

如:

在这里插入图片描述

系统管理命令

sudo命令

super user do简称

sudo -s  
  • 切换到root用户,获取管理员权限
  • 切换到了root用户后,请谨慎执行操作
sudo command
  • 临时以管理员权限执行某条command
  • 执行完毕后失去权限
whoami命令
whoami
  • 显示当前用户
exit命令
exit
  • 退回上一次登录的用户
  • 如果没有,退出终端
who命令
who
  • 显示正在登录的用户(可能有远程登录的用户)
passwd命令

password简称

passwd   修改当前用户的密码
sudo passwd user  修改指定用户的密码
which命令
which command
  • 显示command命令的路径

如:

在这里插入图片描述

关机重启命令
shutdown –h now 立刻关机
reboot 重启

用户与用户组

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

每个用户账号都拥有一个唯一的用户名和密码。

每个用户账号创建时都会加入一个用户组,称之为主用户组。后续可以让用户加入其他用户组,称之为附加用户组。主用户组唯一,附加用户组可以有多个。

创建用户组
groupadd命令
sudo groupadd group
用户组文件
/etc/group  系统用户组配置文件

cat /etc/group查看文件内容:
在这里插入图片描述

muzixikali:x:1000:

一:二:三:

  • 一:用户组名
  • 二:用户组密码占位符,一般Linux系统的用户组都没有密码的
  • 三:组id
修改用户组
groupmod命令
sudo groupmod -n oldname newname
  • 修改用户组组名
gpasswd命令
gpasswd -a user GROUP
  • 在GROUP中加入user,即为user添加附加用户组GROUP
gpasswd -d user GROUP   
  • 从GROUP中删除(delete)user,即GROUP不再是user的附加用户组
删除用户组
groupdel命令
sudo groupdel group
  • group为空才能删除
创建用户
useradd命令
sudo useradd user
选项来源说明
-mcreate home自动在/home中创建用户主目录。用户主目录名称就是用户名。不加默认是不会自动创建。
-ggroup指定user的主用户组。不加该选项,默认自动为user创建同名主用户组。
用户信息文件
/etc/passwd

cat /etc/passwd 查看文件内容:

在这里插入图片描述

muzixikali:x:1000:1000:muzixikali,,,:/home/muzixikali:/bin/bash

一:二:三:四:五:六:七

  • 一:用户名
  • 二:密码占位符
  • 三:uid, 用户id
  • 四:gid, 用户所在组id
  • 五:用户描述, 可选
  • 六:用户的主目录所在位置
  • 七:用户所用 shell 的类型,一般为bash或者sh,默认不设置是sh类型
id命令

id user

  • 查看用户信息

如:

在这里插入图片描述

信息的含义

uid=用户id(用户名)

gid =主用户组id (主用户组名)

groups=主用户组id(主用户组名),附加用户组id(附加用户组名)…

设置用户密码
passwd命令
sudo passwd user
切换登录用户
su命令

switch user简称

su - user

如果user并不以sudo为附加用户组,那么就不能在以user的身份执行sudo -s切换到管理员用户

如果想解决这个问题,那么就要给user添加附加用户组sudo

修改用户信息
usermod命令
sudo usermod user
选项说明
-G设置附加用户组
-g修改主用户组。如果是修改了自动创建的同名用户组,则该用户组消失。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子希卡利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值