- 截取命令
将一段数据分析后,取出我们想要的结果,一般截取信息是针对一行一行来分析的
cut: 主要用于在一行数据里面进行分解,取出我们需要的信息
paramters:
-d: delimiter
-f: 数值型, 根据-d的分隔符将一段信息分割成数段,用-f取出第几段,多个段数使用,分隔
-c:以字符为单位取出固定字符区间
[root@www ~]# echo $PATH
/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:/usr/games:
# 1 | 2 | 3 | 4 | 5 | 6 | 7
[root@www ~]# echo $PATH | cut -d ':' -f 5
# 如同上面的数字显示,以:作为分隔,最后打印 /usr/local/bin
# 那么如果想要列出第 3 与第 5 :
[root@www ~]# echo $PATH | cut -d ':' -f 3,5
[root@www ~]# last | cut-c 12-
grep: 分析一行数据,如果含有我们需要的字符串则返回这一行
parameters:
-a:将二进制文件以文本文件的方式搜索
-c:计算找到搜索出字符串的次数
-i:大小写相同
-n:输出行号
-v:反向选择,输出不包含字符串的行
--color=auto:关键词不同颜色显示
last | grep -v root #没有root行打印
#搜寻字符串
grep -n 'str' fileName
grep -vn 'str' fileName #不包含该字符串的行
ifconfig eth0 | grep 'inet addr'
grep '\*' /etc/* #找出etc下含有*的所有文件,只会搜索/etc下级目录
grep '\*' $(find /etc -type -f) #搜索/etc下所有目录
sed -[nefr] [action]:
-n: 安静模式,只有经过sed处理的那一行才会被列出来
-e: 直接在命令行进行sed命令的编辑
-f filename:直接将sed处理后的结果输出到文件
-r: 正则表达式
-i: 直接修改读取内容,没有屏幕输出
action: [n1[,n2]function
n1,n2: 不是必输值,代表进行动作的行数,如1,5function,表示对1-5行进行操作
function:
a: 新增
c: 取代,后可接字符串,直接取代n1,n2之间的行
d: 删除
i: 插入
p: 打印,一般和sed -n一起运行
s:取代,可搭配正则表达式
#行 新增和删除
nl /etc/passwd | sed '2,5d'
nl /etc/passwd | sed -n '2,6p' #最后加入-n选项 否则将会打印出全部结果和重复的2-6行
nl /etc/passwd | sed '2,5c no 2-5 lines'
nl /etc/passwd | sed -e '5d' -e '6c 'no line6' #sed后接超过2个动作,需要在每个动作之前添加-e
部分数据搜索并取代功能:
sed 's/stringToBeReplaced/newString/g'
#取ip
ifconfig | grep 'inet addr' | sed 's/^.*addr://g' | sed 's/Bcast:.*//g'
wc:
parameters:
wc [-lwm]
-l: 仅列出行数
-w:仅列出字数
-m:多少字符
cat /etc/passwd | wc -l #看帐号文件有多少账号
awk用来分析一行数据,适合处理小型数据
awk '条件1{动作1}条件2{动作2}...' fileName
awk里面的变量
NF:每一行($0)拥有的栏位数,
NR:目前处理的是第几行的数据
FS:使用的分隔符,默认空白
last -n 5 | awk '{print $1 ''\t" $3}' #取出登陆者名字和IP
last -n 5 | awk '{prrint $1 "\tlines:" NR "\tcolumns:" NF }'
diff来比对两个文件
diff [-bBi] fromFile toFile
-b: 忽略一行中仅有多个空格的差异,如hi linux与hi linux
-B: 忽略空白行差异
-i:忽略大小写差异
2.使linux记录用户操作以及时间
vim ~/.bash_logout
#add the following
date >> ~/.myhistory
history 50 > > ~/.myhistory
pwd -P: 显示绝对路径
mkdir [-pm]:可递归创建 mkdir -p /home/user/test, -m自定义权限
rmdir -p可以连同上级目录一起删除
more:
- 空格键:下翻一页
- 回车:下翻一行
- /string: 搜索字符串
- :f: 显示文档名及显示的行数
- q: 离开more
- b:往回翻页,只对文件有效
取文件的11-20行:
head -n 20 /file | tail -n 10
寻找文件命令:
find速度慢,whereis和locate利用linux数据库文件进行搜索,比find快很多。
- whereis [-bmsu] filename
-b: 只找binary格式的文件
-m: 只找在说明档manual路径下的文件
-s: 只找source来源文件
-u: 搜寻不在上述三个项目当中的其他特殊文件 - locate [-ir] filename (locate依据/var/lib/mlocate内的数据库记载来搜索的,有时候需要升级数据库来更新updatedb,updatedb会根据/etc/updatedb.conf的配置去搜寻系统硬盘内的文件名,并升级/var/lib/mlocate内的数据库文件)
-i: 忽略大小写 - find [path] [option] [action]
-mtime n: n为数字,表示n天之前的一天内被更改过的文件,0代表当前时间
find / -mtime 0 #24小时之内被更新过的文件
find / -mtime 3 #3天之前24小时被更新过的文件
-mtime +n: 列出n天之前(不包括n)被更改过的文件
-mtime -n: 列出n天之后(包括n)被更改过的文件
-newer file:file为已存在文件,列出比它更新的文件
-user username: 列出某用户的所有文件
-nouser:列出不属于系统任何人的文件
-name file:搜索某个文件名