标准输入STDIN 默认是键盘输入,也可以是其他命令处理的结果,或是一个文件里的内容
标准输出STDOUT 正确的结果,默认传送到终端窗口,可以输出给下一个命令或一个文件
标准错误输出STDERR 警告信息,默认传送到终端窗口,可以输出给下一个命令或一个文件
> 覆盖式重定向
ls > 1.txt #将ls的结果重定向到1.txt 重定向可以同时新建文件(覆盖)
>>附加式重定向
ls >> 1.txt #将ls的结果追加重定向到1.txt 不会覆盖原有内容
标准输出重定向
1 > right.txt
标准错误重定向
2>error.txt
丢弃错误(删除)
ls 2 > /dev/null
标准输出和错误都重定向到一个文件
ls & > file.txt 或 ls > file.txt 2 > &1
一般只在写脚本或一些高级操作时才用,例如数据的备份恢复 mysqldump < 备份
< 和<<
一个或多个命令的序列,将一个命令的标准输出连接到下一个命令的标准输入(两个进程间加一条管道,让一个进程的输出流向另一个进程)
ls -l /usr/bin | less #ls输出并使用less在终端上以一次一屏方式显示输出
ls /dev | grep a #grep是筛选,筛选/dev中包含a字符的文件和目录
ls /dev | grep a | grep "1$" #先筛选带a结果,再筛选1结尾结果
cat 文件 | wc -l #看看文件几行(几核?)
重定向与管道结合时,shell会先设置整个管道,然后重定向输入/输出
如果在管道的中间使用了输出重定向,则输出将转至文件,并且less不会在终端上显示任何内容
tee克服这个限制,将标准输入复制到标准输出中,并且将标准输出重定向到指定为命令参数的文件
ls -l | tee /tem/saved-output | less #ls输出重定向到文件,并且输出传递到less在终端一次一屏显示
注意
使用tee后不再需要再使用>进行重定向
tee应用于重定向以及前往下一个进程的使用,而不是简单的“三通接口”
tee命令用在管道末尾将会重定向到文件中,同时输出到终端
vim模式(模式切换)
vim 文件名(直接创建文件进入文件)
编辑模式(插入模式)、命令模式(普通模式)、
扩展命令模式(末行模式)、可视模式(shift+V:行模式;ctrl+V:块模式;这两种模式可以选择一片区域的内容)
修改模式快捷键【普通模式】
跳到文件首行:gg 跳到文件末尾:G 清空行:cc 删除所选:x 复制(拖拉):y 粘贴(放置):p
剪切行:dd 撤销:u 列出/撤销行序号:set nu/nonu 查找:/
用户账户用于在运行命令的不同人员和程序之间提供安全界限
用户类型
超级用户:0 root用户,系统中至高无上权限
系统用户:1-999,用来做系统服务的用户
普通用户:1000+,基本使用系统的用户
/etc/passwd 存储所有用户的大部分信息
/etc/shadow 存储用户密码信息
root用户具有直接修改这两个文件的权限(不受文件系统限制)
useradd <用户名>
passwd <用户名> 设置用户密码(不设则无法登录,复杂度有要求,root用户不受限)
新建用户 ken,要求 UID 为610,注释为 thisisken,家目录为 /ken,非交互式登录
useradd –u 610 –c thisken –d /ken –s /sbin/nologin ken
tail -1 /etc/passwd #查看最后一行
默认情况下,新建用户会从1000开始分配 UID,具有同样 UID 的用户具有同样的权限,并且可以接管之前用户的文件。
解决方案:
userdel -r <用户名> #同步删除文件
find / -nouser -nogroup #查找无人拥有的目录和文件(因为拥有者被删除了),然后再 手动分配至这些文件。
userdel <用户名>
可能正在运行某个程序导致删不了,要逐层退出结束前面的进程
usermod [选项] <用户>
usermod -l bob ken #修改ken用户的名称为bob。
使用-l 选项修改用户名称,选项与 useradd 基本一致
不同机但UID相同的用户对同一对应文件有权限
usermod -L/-U <用户> #锁定/解锁用户
useradd -o -u 0 admin #使用 -o 选项去除 UID 的唯一性
usermod -L root #锁定 root 用户,U 解锁
由于 root 用户具有非常高的权限,因此,锁定 root 用户是非常的操作,使用 -L 选 项进行锁定的原理是在 root 用户的密码前加了一个感叹号。
除此以外,可以将 root 用户的 shell 修改为 nologin shell 也可以显示禁止 root 用 户登录的效果。