文件及目录操作
cd
pwd
mkdir
rmdir
tree
打印文件目录树
mkdir -p -m
自动创建路径目录,设置权限
pwd
访问链接目录看的是逻辑地址,想要看实际物理地址 pwd -P
ls -d
可看链接文件指向的位置
ln
不可为目录创建硬链接,ls -s
可为目录创建软链接
rm -r link
注意对目录删除时,-r
参数注意删除
cp -i
复制时目标文件存在提示
basename
取绝对路径末尾,dirname
取绝对路径目录
cat
正向读 tac
反向读文件
nl
显示行号读文件
more
一页页读文件只能往下 less
可上下翻看文件
head
看文件前几行 tail
看文件末几行
wc
计数
diff
对比文件
sshfs
挂载远程目录
文件三时间 atime
访问时间 ctime
权限修改时间 mtime
修改时间
ls --time=atime
touch -a <file>
创建空文件或修改文件时间
chattr
操作文件隐藏属性 +-= Sci
同步写入,只能增加文件内容,不能删除增加链接等
lsattr
查看文件隐藏属性
文件的特殊权限,主组执行权限 x
可执行升格为 s
,他可升格为 t
u + s
用户在执行该文件时获取文件所有者的权限
g + s
用户在该目录下,有效组变为目录所属组
o + t
时,文件只能被所属主删除
whicih
查找 PATH 下执行文件
whereis
除了可执行文件 还能找到相关文件
locate
模糊系统中所有相关文件,需是之前一段时间,配合 updatedb
更新数据库
find
高级查找在目录下找文件
# 查找修改时间在一天只能用户为 xxx 的文件
find /home/ -mtime -1 -user xxx > 1.log 2>&1 #均重定向到一个文件中
find /home/ \( -name ".c" -or -name ".h" \) -size 0 #查找 .c 或 .h 文件 大小为 0 的文件
# 杀死该用户下所有进程
find /proc/ -user test1 2>/dev/null | cut -d '/' -f 3 | uniq | xarg rm -rf
# 统计文件行数
find . -name ".c" -exec ls {} \; | grep -v "source" | xargs cat | wc -l
tar
归档和压缩文件 -czvf
压缩文件 -xzvf
解压文件
awk 文本数据处理
方便的对有一定格式的文本进行处理
awk [-Ffv] `BEGIN { command } pattern { commands } END { commands }` file
# 统计登录用户登录时间
last | grep -v "^$" | grep -v "wtmp" | grep -v "still" | head -5 |
awk -v user=`whoami` 'BEGIN {} { if ($1 == user) {print $10} } END {}' | cut -c 2-6 |
awk -F: -v hour=0 -v min=0 '{hour+=$1;min+=$2} END {if (min >= 60) {hour+=(min/60); min=min%10} printf("%d hours, %s mins", hour, min)}'
数据提取操作
tr
字符集替换 -c
内容外替换 -d
字符集删除(有范围),-s
去除重复压缩
cut -d c -f num <file>
以字符切割,取第 num 个部分
grep -v
反向匹配未找到的 -c
统计搜索到的次数 -w
只匹配单词
# 统计词频
grep -R keyword . -n -c | awk -F: -v sum=0 '{sum += $2} END{print sum}'
sort
排序 -b
忽略空格 -n
纯数字排序 -M
日期排序 -r
反向排序 -t : -k 3
分隔符以区间排序
wc
统计字数 -l
统计行 -w
统计字 -m
统计字符
unique
去除重复 -i
忽略大小写 -c
计数
tee
输出额外重导向
split
切分数据 -b
以 size 大小切分 l
以行切分
xargs
参数代换 -n num
参数个数 -p
执行前询问
# 替换求和
echo "1 2 3 4 5 6 7 8 t ./8" | tr -s -c "0-9" " " | echo $[`tr " " "+"`]
echo $PATH | tr ":" "\n" | tail -n 1
# 以分割后第三位排序
cat /etc/passwd | sort -k : -t 3 -n -r
# 输出用户 uid gid 信息
cat /ect/passwd | head -n 20 | tail -n 10 | cut -d : -f 1 | xargs -esync -n 1 id
sed -i s@pattern1@pattern2@g <file>
全局替换
sed /pattern2/d <file>
全局删除
sed 6,8d <file>
删掉 6-8行
vim 中操作类似 :%s/abc/123/g
软连接 硬链接
inode
存放描述文件的信息 block
存储真实的文件
硬链接 指向同一个 inode
可通过 ls -ali
查看相关 inode 连接信息和数量
软连接 类似于快捷方式