一些linux命令

  1. 截取命令
    将一段数据分析后,取出我们想要的结果,一般截取信息是针对一行一行来分析的
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快很多。

  1. whereis [-bmsu] filename
    -b: 只找binary格式的文件
    -m: 只找在说明档manual路径下的文件
    -s: 只找source来源文件
    -u: 搜寻不在上述三个项目当中的其他特殊文件
  2. locate [-ir] filename (locate依据/var/lib/mlocate内的数据库记载来搜索的,有时候需要升级数据库来更新updatedb,updatedb会根据/etc/updatedb.conf的配置去搜寻系统硬盘内的文件名,并升级/var/lib/mlocate内的数据库文件)
    -i: 忽略大小写
  3. 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:搜索某个文件名

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • which 查看可执行文件的位置 命令格式:which 可执行文件名称 命令功能:which指令会在PATH变量指...
    upupSue阅读 728评论 0 1
  • 命令描述 此处要介绍的相关命令共有29个关于文件与目录管理的命令有9个,分别是cd、ls、pwd、mkdir、rm...
    镜下尘埃阅读 734评论 1 8
  • Linux指令大全 1.cat 使用权限:所有使用者 使用方式:cat [-AbeEnstTuv] [--help...
    muyang_js的简书阅读 2,853评论 0 12
  • 一盏孤灯,满地空瓶, 她独自一人坐在那里,仰头痛饮,直到微醺。 到底因为什么,让她如此无奈痛心? 不知是朦胧入梦,...
    味博士阅读 354评论 0 0
  • 少年游 春色如水,芳容胜雪,素衣入花前。 似锦珠帘,丹青素染,一曲天籁翦。 轻声问:寄愁何处?月落古山间。 客衣白...
    白笺阅读 331评论 0 2