首页 > 代码库 > linux之文件的高级命令

linux之文件的高级命令

      在我们日常系统运维中,经常需要利用shell写一些自动化脚本,这些脚本写的好坏很大程度上取决于linux的高级操作命令掌握的是否熟练,那么我们看看工作中使用频率最高的一些命令。


     cat -n a.txt  给输入的文本编号

cat a.sh
cat > /etc/yum.repos.d/test.repo <<ok
[yumtest]
name=my home
baseurl=file:///yumtest/
enabled=1
gpgcheck=0
ok

./a.sh  --->配置yum


tac
tac  /etc/passwd  倒序显示

wc  
统计文本内容的行数量  字符数  单词数
cat /etc/passwd | wc  
wc -l  统计行数
   -w  统计单词数
   -c  统计字符数

cut
数列为单位切换
cut -b 按照字节切
    -c 按照字符切
    -d :  以冒号为分割符

切出/etc/passwd中redhat用户中的shell信息
cat /etc/passwd | grep redhat | cut -d: -f7
/bin/bash

cat /etc/passwd | cut -d ":" -f1,3,4 取出用户的第1、3、 4 列
cat /etc/passwd | cut -d ":" -f1-4   取出用户连续的4列
cat /etc/passwd | cut -d ":" -f -5   取出第5列前的所有列 包含第5列
cat /etc/passwd | cut -d ":" -f 5-   取出第5列后的所有列
cat /etc/passwd | cut -d ":" -f1,5-7 取出1 5 6 7

[root@server1 tmp]# cat /etc/passwd | grep jim | cut -b 5  切第五个字节
x

split
拆分文件
split -5  passwd  按照文本内容以5行为单位切割 每5行一个文件

split  -1  -a 3  a.txt  以1行为单位切割 且切割后的文件后缀程度为3

split -l 5 a.txt  以5行为单位切割

split -b 1k  passwd  默认单位为字节 以1kb为单位切割  
(KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y)
   
split  -d a.txt   以数字作为切割后的后缀名

----------------------------------------------
tr
cat a.txt  | tr "a" "A" 把文件中所有小写的a换为A
cat a.txt  | tr "a-z" "A-Z" 把所有的小写字母换为大写字母
cat a.txt  | tr "a-b" "A-C"   a b ---> A  B
cat a.txt  | tr -s "\n"  去掉空白行
cat a.txt  | tr -s "abcd" 把连续重复的字符替换为一个字符

sort
排序命令
sort -n a.txt   第一列以数字方式排序
     -r a.txt
     -k, --key=位置1[,位置2]
     -t 指定分割符  
     -u, --unique  去掉重复行
     sort -t " " -k 2.2  a.txt  以空格为分割符 取分割后的第2块的第2列

uniq
去掉连续重复行
uniq  a.txt
uniq -c a.txt  统计每行重复的次数且重复的行要是连续重复
uniq -d a.txt  只输出重复的行(连续重复)
     -i 忽略大写小

diff
文件差异对比
[root@server1 test]# cat a.txt
111
[root@server1 test]# cat b.txt
111
222

diff a.txt  b.txt
1a2
> 222

diff -u a.txt  b.txt  > ab.patch  -u标准格式  以标准格式制作补丁
patch  <  ab.patch  a.txt           打补丁

du
du -h /etc/ 统计整个目录文件总大小

which
查看二进制命令的绝对路径
which  cat
/bin/cat

stat

stat /etc/passwd  查看文件类型和三个时间
Access:  最后一次被访问时间
Modify:  最后一次修改属性时间
Change:  最后一次内容的改变

touch /etc/passwd  刷新三个时间

系统有一种保护机制 当Modify比Access时间旧 旧不频繁刷新access时间


lsof
lsof -i:80 通过端口号查看服务是否在运行

fuser
fuser -km  /mnt 如果卸载分区的时候 有人占用挂载点 强制踢掉
fuser -km   /dev/pts/3

     

本文出自 “云计算” 博客,请务必保留此出处http://huanghaisky.blog.51cto.com/3064496/1918946

linux之文件的高级命令