当你把希望放在别人身上时,你会选择等待;当你把希望放在自己身上时,你会选择奔跑。
1. 管道
Linux 管道使用竖线(|)连接多个命令,这被称为管道符;
command1 | command2
command1 | command2 [ | commandN... ]
当在两个命令之间设置管道时,管道符|左边命令的输出就变成了右边命令的输入
- 管道中的后一个命令是在子shell中执行的,而非当前shell
使用 mysqldump(一个数据库备份程序)来备份一个叫做 wiki 的数据库:
mysqldump -u root -p '123456' wiki > /tmp/wikidb.backup
gzip -9 /tmp/wikidb.backup
scp /tmp/wikidb.backup username@remote_ip:/backup/mysql/
上述这组命令主要做了如下任务:
-
mysqldump 命令用于将名为 wike 的数据库备份到文件 /tmp/wikidb.backup;其中-u和-p选项分别指出数据库的用户名和密码。
-
gzip 命令用于压缩较大的数据库文件以节省磁盘空间;其中-9表示最慢的压缩速度最好的压缩效果。
-
scp 命令(secure copy,安全拷贝)用于将数据库备份文件复制到 IP 地址为 remote_ip 的备份服务器的 /backup/mysql/ 目录下。其中username是登录远程服务器的用户名,命令执行后需要输入密码。
上述三个命令依次执行。然而,如果使用管道的话,你就可以将 mysqldump、gzip、ssh 命令相连接,这样就避免了创建临时文件 /tmp/wikidb.backup
mysqldump -u root -p '123456' wiki | gzip -9 | ssh username@remote_ip "cat > /backup/wikidb.gz"
1.1 文本处理命令: tr 转换
echo "mageedu.com" | tr 'a-z' 'A-Z'
tr -d 删除;
cat 核心功能:连接文件显示标准输出;
cat /etc/issue /etc/fstab
tac 倒着显示;
less分页查看: b下一页;g 文件底部查看
2>&1 和 |& 错误输出防中止
当既有标准输出又有错误输出的时候,标准输出是可以输入到后面命令的,错误输出是无法输入到后面命令。可以使用2>&1
和|&
实现错误的也输入到后面命令。
[root❄centos7 app]☭ ls /app /err | tr 'a-z' 'A-Z'
ls: cannot access /err: No such file or directory
/APP:
F1
ISSUE2
ISSUE3
[root❄centos7 app]☭ ls /app /err 2>&1 | tr 'a-z' 'A-Z'
LS: CANNOT ACCESS /ERR: NO SUCH FILE OR DIRECTORY
/APP:
F1
ISSUE2
ISSUE3
[root❄centos7 app]☭ ls /app /err |& tr 'a-z' 'A-Z'
LS: CANNOT ACCESS /ERR: NO SUCH FILE OR DIRECTORY
/APP:
F1
ISSUE2
ISSUE3
tee
tee:read from standard input and write to standard output and files
从标准输入读,写到标准输出
和文件
。当然如果再跟一个管道,标准输出就输出到另外一个命令了。
# 写到屏幕和文件/tmp/issue.tee
[root❄centos7 ~]☭ cat /etc/issue | tee /app/issue.tee
\S
Kernel \r on an \m
[root❄centos7 ~]☭ cat /app/issue.tee
\S
Kernel \r on an \m
# 写到/tmp/issue.tee ,写到标准输出的通过管道又传递了一次
[root❄centos7 ~]☭ cat /etc/issue | tee /tmp/issue.tee | tr 'a-z' 'A-Z'
\S
KERNEL \R ON AN \M
2. 重定向和管道的区别
重定向操作符>将命令与文件连接起来,用文件来接收命令的输出;
管道符|将命令与命令连接起来,用第二个命令来接收第一个命令的输出。如下所示:
command > file
command1 | command1
禁止用
command1 > command2
第一条命令将当前目录切换到了大多数程序所存放的目录
第二条命令是告诉 Shell 用 ls 命令的输出重写文件 less
/usr/bin 目录已经包含了名称为 less(less 程序)的文件,第二条命令用 ls 输出的文本重写了 less 程序,因此破坏了文件系统中的 less 程序
3. 用户管理
3.1 用户管理
Linux系统中的用户分为3类,即普通用户、根用户、系统用户。
普通用户是指所有使用Linux系统的真实用户,这类用户可以使用用户名及密码登录系统。Linux有着极为详细的权限设置,所以一般来说普通用户只能在其家目录、系统临时目录或其他经过授权的目录中操作,以及操作属于该用户的文件。通常普通用户的UID大于500,因为在添加普通用户时,系统默认用户ID从500开始编号。
根用户也就是root用户,它的ID是0,也被称为超级用户,root账户拥有对系统的完全控制权:可以修改、删除任何文件,运行任何命令。所以root用户也是系统里面最具危险性的用户,root用户甚至可以在系统正常运行时删除所有文件系统,造成无法挽回的灾难。
系统用户是指系统运行时必须有的用户,但并不是指真实的使用者。比如在RedHat或CentOS下运行网站服务时,需要使用系统用户apache来运行httpd进程,而运行MySQL数据库服务时,需要使用系统用户mysql来运行mysqld进程。在RedHat或CentOS下,系统用户的ID范围是1~499,1-999(centos7用户) 。
我们拿出一个信息
[root@Centos7 home]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
第一列root:用户名
第二列x:密码标记位 有x说明root用户有密码
第三列0:用户UID。UID规则 0表示root用户 1~499系统用户(伪用户)普通用户 500以后
第四列0:用户组ID
第五列root:描述信息
第六列/root:用户所在的家目录
第七列/bin/bash:用户登录默认使用的Shell
3.2 用户和组的配置文件
Linux用户和组的主要配置文件:
/etc/passwd : 用户及其属性信息(名称、UID、主组ID等)
/etc/group : 组及其属性信息
/etc/shadow : 用户密码及其相关属性
/etc/gshadow : 组密码及其相关属性
3.3 用户和组管理命令
useradd、usermod、userddel、passwd、groupadd、groupmod、groupdel、id、su
##Linux用户和用户组的基本命令
useradd -d 文件目录 用户 在某个文件目录添加一个用户
usermod -c 备注信息 用户 给用户添加备注
usermod -l 新用户 旧用 改变用户
usermod -d 文件目录 用户 给用户指定新的文件目录
useradd -g 用户组 用户 给用户组添加用户
userdel 用户 删除用户(不删除用户存在目录)
userdel -r 用户 删除用户及删除用户所在的文件目录
touch/etc/nologin 在/etc下创建nologin,禁止普通用户的登陆服务器
groupadd 用户组 创建一个用户组
groupadd -g 888 用户组 创建一个888的用户组,指定用户组编号为888
groupdel 用户组 删除用户组(删除用户组必须县删除组内用户)
groupmod -n 新用户组 旧用户组 改变用户组名
groupmod -g 编号 用户组 给用户组名指定特定编号
passwd -l 用户 锁定用户操作
passwd -u 用户 解锁用户
passwd -d 用户 设置无密码登陆用户
gpasswd -a 用户附加组(添加多个由,隔开) 给用户添加附加组
newgrp 用户组 切换到附加组
gpasswd -d 用户附加组 取消附加组
useradd -g 主要组 -G 附加组 创建用户时指定它的主要组和附加组
gpasswd 用户组 给用户组设置主密码
whoami 显示当前登陆用户名
id 用户 显示用户信息,用户编号,用户名,主要组编号及名称,附加组表
groups 用户 显示用户所在的用户组
chfn 用户 设置用户资料,依次输入用户资料
finger 用户 显示用户详细资料
3.4 passwd
passwd选项
-d:删除密码,仅有系统管理者才能使用;
-f:强制执行;
-k:设置只有在密码过期失效后,方能更新;
-l:锁住密码;
-s:列出密码的相关信息,仅有系统管理者才能使用;
-u:解开已上锁的帐号;
以zcwyou用户为例
[root@zcwyou ~]# passwd zcwyou
Changing password for user zcwyou.
New UNIX password: 这里输入新密码
Retype new UNIX password: 再输入一次新密码
passwd: all authentication tokens updated successfully. 表示更新成功。
修改自己的密码
[root@zcwyou ~]# passwd
注意:如果是普通用户执行passwd只能修改自己的密码。如果新建用户后,要为新用户创建密码,则用passwd用户名,注意要以root用户的权限来创建。
3.5 hash工具
sha512sum 单向加密;提取数据的指纹;类似于md5值;
原始数据一样,则结果一样;
反破解机制:原始文件加杂质——加abc\1234...
[dell@Centos7 ~]$ cat /etc/fstab | sha512sum
b5fc8c6c5ca478fc0339f355ca96c22cc3c0a4075a096b031bb323ebf8becfb365cf3544947cd6024cf85890eb9def11f8e0d6d4abcc10f100852b0a35de1a05
网友评论