linux几个常用命令的介绍

来源:互联网 发布:电信云计算运维工程师 编辑:程序博客网 时间:2024/03/28 16:50

最近常用的几个命令在这分享一下,顺便加强一下记忆,后期可能会陆续添加

一:cut

选项说明:

-b, –bytes=LIST 以字节为单位取出固定字节区间
-c, –characters=LIST 以字符为单位取出固定字符区间
-d, –delimiter=DELIM 指定分隔符来代替默认的TAB分隔符
-f, –fields=LIST 依据 -d 指定的分隔符将一段内容分割成为数段,用 -f 取出第几段的意思
-n with -b: 不分隔多字节字符
–complement 补充选定的字节,字符集或字段
-s, –only-delimited 不打印不包含分隔符的行
–output-delimiter=STRING 使用String 作为输出分隔符,默认的是使用输入分隔符

#cut -d : -f1-3 /etc/passwd | head -n 5

二.du

du:查询档案或目录的磁盘使用空间

工作原理
du命令会对待统计文件逐个调用fstat这个系统调用,获取文件大小。它的数据是基于文件获取的,所以有很大的灵活性,不一定非要针对一个分区,可以跨越多个分区操作。如果针对的目录中文件很多,du速度就会很慢了。

选项说明:

 a:显示全部目录和其次目录下的每个档案所占的磁盘空间
 b:大小用bytes来表示 (默认值为k bytes)
 c:最后再加上总计 (默认值)
 s:只显示各档案大小的总合
 x:只计算同属同一个档案系统的档案
 L:计算所有的档案大小

三.df

df:显示所有文件系统对i节点和磁盘块的使用情况

工作原理
df命令使用的事statfs这个系统调用,直接读取分区的超级块信息获取分区使用情况。它的数据是基于分区元数据的,所以只能针对整个分区。由于df直接读取超级块,所以运行速度不受文件多少影响。

选项说明:

-a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。
-k:以k字节为单位显示。
-i:显示i节点信息,而不是磁盘块。
-t:显示各指定类型的文件系统的磁盘空间使用情况。
-x:列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。
-T:显示文件系统类型。
-h 方便阅读方式显示

ps:du和df不一致情况
常见的df和du不一致情况就是文件删除的问题。当一个文件被删除后,在文件系统目录中已经不可见了,所以du就不会再统计它了。然而如果此时还有运行的进程持有这个已经被删除了的文件的句柄,那么这个文件就不会真正在磁盘中被删除,分区超级块中的信息也就不会更改。这样df仍旧会统计这个被删除了的文件。

四.sort

sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出。如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。
选项说明:

f :忽略大小写的差异,例如 A 与 a 视为编码相同;
b :忽略最前面的空格符部分;
M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
n :使用『纯数字』进行排序(默认是以文字型态来排序的);
r :反向排序;
u :就是 uniq ,相同的数据中,仅出现一行代表;
t :分隔符,默认是用 [tab] 键来分隔;
k :以那个区间 (field) 来进行排序的意思
o :重定向到文件

五.uniq

报告或删除文件中重复的行。
选项说明:

c: 在输出行前面加上每行在输入文件中出现的次数。
d :仅显示重复行。
u :仅显示不重复的行。
要删除名为 fruit 文件中的重复行并将其保存到一个名为 newfruit 的文件中,输入:
uniq fruit newfruit

六.tee

读取标准输入的数据,并将其内容输出成文件
选项说明:

a:附加到既有文件的后面,而非覆盖它

七. tail

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件
命令参数:

-f 是–follow[=HOW]的缩写, 可以一直读文件末尾的字符并打印出来
-F 是–follow=name –retry的缩写, –follow=name是按照文件名跟踪文件, 可以定期去重新打开文件检查文件是否被其它程序删除并重新建立. –retry这个参数, 保证文件重新建立后,可以继续被跟踪.
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, –quiet, –silent 从不输出给出文件名的首部
-s, –sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

八.awk

awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。
语法:

awk [-F re] [parameter…] [‘program’] [-f ‘programfile’] [in_file_list]

awk内置变量

ARGC 命令行参数个数
ARGV 命令行参数排列
ENVIRON 支持队列中系统环境变量的使用
FILENAME awk浏览的文件名
FNR 浏览文件的记录数
FS 设置输入域分隔符,等价于命令行 -F选项
NF 浏览记录的域的个数(列)
NR 已读的记录数(行)
OFS 输出域分隔符
ORS 输出记录分隔符(设置分隔符)
RS 控制记录分隔符
$n 当前记录的第n个字段,字段间由FS分隔。
$0 完整的输入记录。

FNR,与NR功用类似,不同的是awk每打开一个新文件,FNR便从重新累计.

FS 与 -F

awk -F ‘:’ ‘{print $1}’ a
awk ‘BEGIN{FS=”:”}{print $1}’ a
两者结果一样

BEGIN和END的作用分别是给程序赋予初始状态和在程序结束之后执行一些扫尾的工作

九.sed

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
选项与参数:

-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
-i :直接修改读取的文件内容,而不是输出到终端。

function:

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!

十 .last

last -x

查看用户登陆历史
相关参数

  • R: 省略 hostname 的栏位
    -n:指定输出记录的条数。
    -f file:指定用文件file作为查询用的log文件。
    -t tty:只显示指定的虚拟控制台上登录情况。
    -h 节点:只显示指定的节点上的登录情况。
    -i IP:只显示指定的IP上登录的情况。
    -1:用IP来显示远端地址。
    -y:显示记录的年、月、日。
    -ID:知道查询的用户名。
    -x:显示系统关闭、用户登录和退出的历史。

    #last reboot
    最近的重启

十一.nohup

不挂断运行命令

nohup command > file.out 2>&1 &
退出账户时运行的进程还不想结束,在退出/关闭终端后可以使之继续运行

十二.tr

简化版sed,字符替换或除去一些字符。

参数:
-c或–complerment 取代所有不属于第一字符集的字符(取反)
-d或–delete 删除所有属于第一字符集的字符。
-s或–squeeze-repeats 把连续重复的字符以单独一个字符表示。
-t或–truncate-set1 这个比较难理解,man上面的解释是:first truncate SET1 to length of SET2,经过我的实践发现,将set1的字符依次替换成set2中的字符,如果set1中的字符数目超过set2,那么set1多出的字符忽略。如果没有-t,那么多出的字符都替换成set2的最后一个字符。

大小写转换

cat file | tr [a-z] [A-Z] > new_file

删除空行

cat file | tr -s “\n” > new_file

把路径变量中的冒号”:”,替换成换行符”\n”

echo $PATH | tr -s “:” “\n”

0 0
原创粉丝点击