文件管理
mkdir 创建目录
-p #创建子目录,若父目录不存在,则创建父目录
例: mkdir -p /app/dir1/dir2
rmdir 删除空目录
-p #删除空目录,若父目录为空则同时删除
ln 创建硬链接 (不能跨分区创建)
-s 创建软链接 (可以跨分区)
重点:源文件相对路径是相对于目标文件的路径(不是相对于当前工作目录的路径)
file 判断文件类型
-b 只显示结果不显示文件名
-f 批量判断文件列表中的文件类型
-F 用指定符号替代:(默认输出格式 文件名:文件类型)
-L 判断软连接指向的真实文件的类型
##额外知识点##
df -i #查看分区支持的节点编号数
watch -n 1 命令 1秒执行一次命令
目录里存的是文件名和节点号inode
readlink 显示软连接的原始文件路径
重定向和管道
标准输入0 标准输出1 标准错误 2
> 标准输出重定向
2> 标准错误重定向
&> 所有输出重定向 等同于 2>&1
tr 替换或删除字符
-t 字符对应替换
-d 删除字符
-s 去重(连续重复)
-c 取反 相当于非
cat > f1 单行重定向
cat > f1 <<EOF 多行重定向 EOF是结束语(可以是任意字符)
| 管道(默认传输标准输出)
|& 传输标准输出和标准错误
|tee 屏幕输出同时存入文件
##额外知识点##
set -C 文件存在禁止覆盖 (单独执行)
set +C 取消禁止
/dev/null 输出信息重定向到此文件 相当于垃圾箱
mail -s 主题 用户 <
邮件正文加命令或变量必须是多行重定向
tar -cvf – /home | tar -xvf –
seq -s + 1 10 | bc
seq 1 2 100
用户组和权限管理
用户的组:主组、附加组
/etc/passwd 用户及属性信息
/etc/group 组及属性信息
/etc/shadow 用户密码及相关属性
/etc/gshadow 组密码及相关属性
/etc/skel #创建用户家目录模板
/etc/login.defs #创建用户相关配置
getent 查看文件内容(passwd、shadow、gpasswd、gshadow)
+用户名 #查看文件内指定用户信息
例: getent passwd root
chsh -s #更改用户的shell 例:chsh -s /sbin/nologin zhang
-l 列出所有的shell
id 不加用户名 #显示当前用户登陆后的信息(不显示登陆后更改的信息)
id 用户名 #从文件中读取用户的信息
newgrp 组名 #临时更换主组,不改文件
vipw #单独执行,相当于vi /etc/passwd
vigr #单独执行,相当于vi /etc/group
pwck #检查passwd文件错误
grpck #检查gshadow文件错误
useradd #添加用户(默认锁定不能登陆)
-c #添加描述信息
-g #指定主组
-d #指定家目录
-s #指定shell
-G #指定辅助组
-D 查看创建用户默认配置文件内容 等同于cat /etc/default/useradd
-s 指定shell
示例:useradd -r -m -d /app/zabbix -s /sbin/nologin zabbix
usermod -d 指定新家目录路径
-m 移动家目录
-s 更改shell
-L #锁定用户
-U 取消用户锁定 !!(新建用户取消锁定只有centos5可以)
-G 添加辅助组(默认覆盖) -aG #追加辅助组
-l 修改用户名
-g 修改主组
#删除附加组 usermod -G ” 用户名 或者 usermod -G 主组名 用户名
userdel 删除用户(只删除账号,不删除其他文件)
-r 删除用户及相关文件
passwd 更改用户密码(默认更改当前登陆用户,加用户名则更改指定用户)
groupadd #创建组
su #切换用户(非登陆式切换,环境没变)
su – #登陆式切换
su -root -c ‘命令’ 切换为root执行命令,然后退出root
passwd -e #用户密码即时失效(密码更改时间为0)
chage #更改用户口令相关时间
chfn 添加用户的描述信息(部门、电话等)
finger 查看用户的描述信息
groupadd 创建组
-r 创建系统组
-g 指定组id号
groupdel 删除组
groupmod 更改组相关属性
-n 指定新名字
-g 指定新的gid
gpasswd -a 用户名 组名 #把用户加入组(组管理员操作)
-d 用户名 组名 #把用户从组里移除
-A 用户名 组名 #把用户设置为组管理员
groupmems -l -g 组名 #查看组内成员
-a 用户 -g 组 #把用户添加到组
-d 用户 -g 组 #从组中删除用户
-p #把组内的成员清空
groups #查看当前用户的组
文件权限 r w x (和文件系统有关)
r,w权限对root无效,x有效
acl 访问控制列表(对多个用户或组单独设置权限
小x:所有文件都可以加执行权限
大X:只对目录和有执行权限的文件加执行权限
chmod who opt 文件名
u,g,o,a +,-,= r,w,x
例:chmod u=rw,g=r,o= 文件名
chown 更改文件所属组
例: chown bin.ftp f1 把f1所有者改为bin,所属组改为ftp
其他:chown –reference f1 f2 按照f1权限设置f2
chgrp 更改文件所属组
目录权限
x:可以进入目录,基础权限
r:列出目录文件列表(需要x)
w:可以在目录中建或删除文件(需要x)
umask 影响用户创建的文件或目录的权限
目录:777-umask
文件权限:666-umask=结果奇数位+1 或 666-(umask-1)
umask 266 设置umask为266
.bashrc 在文件中更改umask值
umask -p输出可被调用
-S模式方式显示
文件中更改umask值:全局 /etc/bashrc 单用户 ~/.bashrc
suid 4(u s) 覆盖x权限 权限号4 #4777
只能作用在二进制程序,不能作用在脚本
用户执行s权限的程序将继承所有者的权限
sgid 2(g s)
二进制程序:用户执行s权限的程序将继承所属组的权限
作用在目录:目录下生成的新文件自动继承目录所属组
对于目录的suid和sgid,只能用 u-s,g-s 去掉
*sticky 1(o t) #只作用在目录才有意义
作用在目录:不能删除别人的文件
chattr +i/-i 文件名/目录 #文件/目录将不可被更改、删除、防止误操作
+a/-a #只可以追加内容
+A/-A #不更新读时间
lsattr 文件/目录 显示特定属性
ACL 系统中有没有这个功能取决于文件系统
设置acl之后,g权限位置显示的是mask权限
setfacl -m u:用户名:权限 文件名 #u用户 g组
group::权限 #更改文件所属组权限
mask::权限
-x 同上 #删除权限
-X 批量文件 文件名 #批量删除权限
-b 文件名 #清空acl
-R
-M 权限文件 文件名 #文件中按照格式
-d #默认包含指定权限(新生成文件和旧)等同于d:
-k 目录名 #删除默认权限
getfacl 文件名 #查看文件权限
例子:备份恢复acl权限
getfacl -R html > html.acl
setfacl -R -b html
setfacl –restore html.acl
ACL权限生效顺序
所有者,自定义用户,所属组|自定义组,其他
{ 权限不能超过mask }
例:getfacl f1 | setfacl –set-file=- f2 #f2按照f1的acl权限设置
setfacl -R –set-file=文件名 f2 #从文件中恢复权限
setfacl –set u::r,u:lqd:rw,g::r,o::- f2 #对f2文件重新设置权限
mask 限定了自定义用户和组的最高权限
##额外知识点##
pwunconv pwconv #密码存放转换
auth –passalgo=sha256 –update #更改加密算法
echo 密码 | passwd –stdin wang #设置用户密码
批量创建账号和修改密码
newusers 文件名 #,文件内容格式按照passwd
cat 文件名 | chpasswd 文件内容格式 用户名:密码
文本处理工具
cat -n 加行号
-b 加行号,空行不加 等价于 nl
-A 显示所有控制符
-s 压缩连续空行为一行
-E 显示结束符
-V win文本能看到^M
tac 反向显示行
rev 反向显示列
more 分页显示 到底退出 空格下翻 b上翻(管道不起作用)
less 分页显示 到底不退出
/文本 搜索文本
head 文件 #默认读取前十行
-n 3 或者 -3 #显示前3行
-c3 取前3个字节
tail #默认读取后十行
-f 跟踪文件后10行 (常做观察日志文件使用)
-f 文件 & 在后台监控文件后10行
-f 文件 -n0 & #只显示新增加的行并在后台运行
-F 跟踪文件后10行并监控文件名
tailf 等同于 tail -f #性能更好,文件不增长时不访问文件
cut 剪切内容-以列为单位,默认tab作为分隔符
-d 指定分隔符
-f 指定列
例: cut -d: -f1-3,7 –output-delimiter=”分隔符” 文件
#以:作为分隔符取第1和3列 更改显示分隔符
例子:df | cut -c44-46 #取第44到46个字符
paste 将多个指定文件按行合并 默认分隔符为tab
-d’分隔符’ 指定合并后的分隔符
-s 把单个文件合并为一行,并把多个文件追加合并
wc 统计 显示格式: 行 单词 字节
-l 行数
-w 单词数
-L 最长行的字符数
sort 排序 默认第一列
-n 按数字从小到大排序
-r 倒序
-u 去重(去掉重复内容的行)
例子:sort -nr -t: -k1 /etc/passwd
uniq -u 只显示不重复的行
-c 显示每行重复出现的次数
-d 只显示重复的行
##额外知识点##
dd if=/dev/zero of=/boot/bigfile bs=1M count=500 #创建指定大小的文件
inputfile outputfile blocksize 大小
~tab键 查看所有用户
openssl rand -bash64 100 #生成100位随机数
(超过100)
lsof | grep deleted #查看进程占用的已经删除的文件(哪些文件被删除 还没有释放空间)
批量创建文件
touch 参数有数量限制
echo f{1..500000}|xargs touch
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88615