1.pwd
Print the current working directory. With the -P option, pwd prints
the physical directory, without any symbolic links; the -L option
makes pwd follow symbolic links.
通常进入系统后,往往想知道自己当前位置,因此pwd就派上用场了,使用时注意一下-L,-P的区别,-P选项会显示物理路径。
1 mengxialeideMBP:~ mengxianglei$ ls -ld /etc2 lrwxr-xr-x@ 1 root wheel 11 12 2 2017 /etc -> private/etc3 mengxialeideMBP:~ mengxianglei$ cd /etc4 mengxialeideMBP:etc mengxianglei$ pwd5 /etc6 mengxialeideMBP:etc mengxianglei$ pwd -L7 /etc8 mengxialeideMBP:etc mengxianglei$ pwd -P9 /private/etc
2.paste
The paste utility concatenates the corresponding lines of the given input files, replacing all but the last file's newline characters with a single tab character, and writes the resulting lines to standard
output. If end-of-file is reached on an input file while other input files still contain data, the file is treated as if it were an endless source of empty lines.
英文的意思粘贴,可以将两个文件粘合为一个,粘贴的方式时按照行进行粘合。
1 mengxialeideMBP:mxl mengxianglei$ cat int.txt 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9 810 911 1012 mengxialeideMBP:mxl mengxianglei$ cat char.txt13 a14 b15 c16 d17 e18 f19 g20 h21 i22 j23 mengxialeideMBP:mxl mengxianglei$ paste int.txt char.txt24 1 a25 2 b26 3 c27 4 d28 5 e29 6 f30 7 g31 8 h32 9 i33 10 j
-d 选项可以指定粘合的分隔符
1 mengxialeideMBP:mxl mengxianglei$ paste -d "*" char.txt int.txt 2 a*1 3 b*2 4 c*3 5 d*4 6 e*5 7 f*6 8 g*7 9 h*810 i*911 j*10
-s 选项使文本内容按照一行显示
1 mengxialeideMBP:mxl mengxianglei$ seq 1000 > test.txt2 mengxialeideMBP:mxl mengxianglei$ wc -l test.txt3 1000 test.txt4 mengxialeideMBP:mxl mengxianglei$ paste -s test.txt |wc -l5 1
-sd配合使用格式单个文件,这个时候的分隔符是依次使用的
1 mengxialeideMBP:mxl mengxianglei$ paste -sd '+-' char.txt2 a+b-c+d-e+f-g+h-i+j
paste 还可以将列转行的时候,指定几行的内容归为一行,- 代表一行的内容,下面是把三行归为一行进行处理
1 mengxialeideMBP:mxl mengxianglei$ paste - - -
3.ps
The ps utility displays a header line, followed by lines containing information about all of your processes that have controlling terminals.
ps命令工作中常用,排查进程是否启动,获取进程号等等,通常可以结合grep获取到想要的进程的运行情况
-e选项显示所有进程,-f选项显示uip,pid等
1 mengxialeideMBP:mxl mengxianglei$ ps -ef|grep server2 55 51 1 0 251018 ?? 0:01.46 /System/Library/CoreServices/appleeventsd --server3 0 364 1 0 251018 ?? 0:00.04 /System/Library/CoreServices/CrashReporterSupportHelper server-init4 0 408 1 0 251018 ?? 0:00.19 /usr/sbin/systemsoundserverd5 0 567 1 0 261018 ?? 0:00.23 /System/Library/CoreServices/SubmitDiagInfo server-init6 501 3621 3488 0 11:40上午 ttys000 0:00.00 grep server
-u可以获取到指定用户下的相关进程
1 mengxialeideMBP:mxl mengxianglei$ ps -u mengxianglei2 UID PID TTY TIME CMD3 501 265 ?? 0:06.43 /usr/sbin/cfprefsd agent4 501 266 ?? 0:12.98 /usr/libexec/UserEventAgent (Aqua)5 501 268 ?? 0:19.82 /usr/sbin/distnoted agent
4.cd
Change the current directory to DIR
更改当前的目录到指定的路径
用法比较简单,cd 后面直接跟需要跳转的路径即可。
特殊符号说明
~代表用户家目录
-代表用户上一次的目录
. 代表用户当前目录
..代表上一级目录
以/开头的是绝对路径,否则是以当前路径为基础的相对路径
5.mkdir
The mkdir utility creates the directories named as operands, in the order specified, using mode rwxrwxrwx (0777) as modified by the current umask(2).
创建目录命令,类似window里面的信件文件夹
-p 如果创建多级目录,需要使用-p选项
-v 显示创建详细过程
创建目录时可以技巧性创建多个目录
1 mkdir -p ./mulu/{1,2}2 mengxialeideMBP:mxl mengxianglei$ cd mulu/3 mengxialeideMBP:mulu mengxianglei$ ls4 1 25 mengxialeideMBP:mulu mengxianglei$
1 mengxialeideMBP:mxl mengxianglei$ mkdir -p ./mulu/{1..3}2 mengxialeideMBP:mxl mengxianglei$ cd mulu3 mengxialeideMBP:mulu mengxianglei$ ls4 1 2 3
1 mengxialeideMBP:mxl mengxianglei$ cat mkmulu.txt 2 ./mulu/13 ./mulu/24 ./mulu/35 ./mulu/46 mengxialeideMBP:mxl mengxianglei$ mkdir -p `cat mkmulu.txt`7 mengxialeideMBP:mxl mengxianglei$ cd mulu8 mengxialeideMBP:mulu mengxianglei$ ls9 1 2 3 4
6.touch
The touch utility sets the modification and access times of files. If any file does not exist, it is created with default permissions.
创建空文件,如果文件存在修改文件时间
linux文件时间介绍
atime:文件的最后访问时间
mtime:最后的文件修改时间(修改文件内容)
ctime:最后的文件状态改变时间(访问、修改文件内容、文件移动、权限改变)
1 mengxialeideMBP:mxl mengxianglei$ touch touchfile 2 mengxialeideMBP:mxl mengxianglei$ ls -l 3 total 0 4 -rw-r--r-- 1 mengxianglei staff 0 11 4 13:06 touchfile 5 mengxialeideMBP:mxl mengxianglei$ stat touchfile 6 16777220 3212171 -rw-r--r-- 1 mengxianglei staff 0 0 "Nov 4 13:06:48 2018" "Nov 4 13:06:48 2018" "Nov 4 13:06:48 2018" "Nov 4 13:06:48 2018" 4194304 0 0 touchfile 7 mengxialeideMBP:mxl mengxianglei$ touch -a touchfile 8 mengxialeideMBP:mxl mengxianglei$ stat touchfile 9 16777220 3212171 -rw-r--r-- 1 mengxianglei staff 0 0 "Nov 4 13:07:41 2018" "Nov 4 13:06:48 2018" "Nov 4 13:07:41 2018" "Nov 4 13:06:48 2018" 4194304 0 0 touchfile10 mengxialeideMBP:mxl mengxianglei$ touch -m touchfile 11 mengxialeideMBP:mxl mengxianglei$ stat touchfile 12 16777220 3212171 -rw-r--r-- 1 mengxianglei staff 0 0 "Nov 4 13:07:41 2018" "Nov 4 13:08:55 2018" "Nov 4 13:08:55 2018" "Nov 4 13:06:48 2018" 4194304 0 0 touchfile
-r 选项,可以修改目标文件时间属性与源文件一样
1 mengxialeideMBP:mxl mengxianglei$ touch 1.txt2 mengxialeideMBP:mxl mengxianglei$ stat 1.txt3 16777220 3212193 -rw-r--r-- 1 mengxianglei staff 0 0 "Nov 4 13:12:18 2018" "Nov 4 13:12:18 2018" "Nov 4 13:12:18 2018" "Nov 4 13:12:18 2018" 4194304 0 0 1.txt4 mengxialeideMBP:mxl mengxianglei$ touch 2.txt5 mengxialeideMBP:mxl mengxianglei$ stat 2.txt6 16777220 3212194 -rw-r--r-- 1 mengxianglei staff 0 0 "Nov 4 13:13:00 2018" "Nov 4 13:13:00 2018" "Nov 4 13:13:00 2018" "Nov 4 13:13:00 2018" 4194304 0 0 2.txt7 mengxialeideMBP:mxl mengxianglei$ touch -r 1.txt 2.txt8 mengxialeideMBP:mxl mengxianglei$ stat 2.txt9 16777220 3212194 -rw-r--r-- 1 mengxianglei staff 0 0 "Nov 4 13:12:18 2018" "Nov 4 13:12:18 2018" "Nov 4 13:13:14 2018" "Nov 4 13:12:18 2018" 4194304 0 0 2.txt
7.ls
list directory contents
显示目录内容
常用参数介绍:
l 长格式显示
a 显示所有文件包扩隐藏文件
A 显示所有文件包括隐藏文件,但不显示.、..
t 按照最后修改时间(mtime)排序
r 相反次序
F 目录后面加/
i 显示inode节点信息
d 显示目录本身信息
h 人类可读
--full-time 显示完整时间
1 mengxialeideMBP:mxl mengxianglei$ ls -AlrtFih2 total 03 3212194 -rw-r--r-- 1 mengxianglei staff 0B 11 4 13:12 2.txt4 3212193 -rw-r--r-- 1 mengxianglei staff 0B 11 4 13:17 1.txt5 3212415 drwxr-xr-x 2 mengxianglei staff 64B 11 4 13:38 mulu/
8.cp
In the first synopsis form, the cp utility copies the contents of the source_file to the target_file. In the second synopsis form, the contents of each named source_file is copied to the destination
target_directory. The names of the files themselves are not changed. If cp detects an attempt to copy a file to itself, the copy will fail.
复制文件或目录,通常对一些文件的修改,我们要先备份一下,因此cp命令比较常用
-r 复制目录时递归复制,必须加上-r选项
-p 保留文件所有者、权限信息、时间属性
-d 如果文件为链接文件,仅复制链接文件本身
-a 相当于drp
1 mengxialeideMBP:mxl mengxianglei$ ls -ld script/2 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:36 script/3 mengxialeideMBP:mxl mengxianglei$ cp -r script "script.$(date +%F)"4 mengxialeideMBP:mxl mengxianglei$ ls -l5 total 06 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:36 script7 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:37 script.2018-11-04
-i 如果存在相同文件,则提示用户进行确认
1 mengxialeideMBP:script mengxianglei$ touch getdate.sh getcurrentdate.sh2 mengxialeideMBP:script mengxianglei$ cp -i getdate.sh getcurrentdate.sh 3 overwrite getcurrentdate.sh? (y/n [n]) y
9.mv
In its first form, the mv utility renames the file named by the source operand to the destination path named by the target operand. This form is assumed when the last operand does not name an already existing
directory.
移动文件或目录,如果目标不存在,则重命名
1 mengxialeideMBP:script mengxianglei$ mkdir dir{1..5} 2 mengxialeideMBP:script mengxianglei$ ls 3 dir1 dir2 dir3 dir4 dir5 4 mengxialeideMBP:script mengxianglei$ mv dir1 dir6 5 mengxialeideMBP:script mengxianglei$ ls -ld 6 drwxr-xr-x 7 mengxianglei staff 224 11 4 14:52 . 7 mengxialeideMBP:script mengxianglei$ ls -l ./ 8 total 0 9 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:51 dir210 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:51 dir311 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:51 dir412 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:51 dir513 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:51 dir614 mengxialeideMBP:script mengxianglei$ mv dir2 dir615 mengxialeideMBP:script mengxianglei$ ls -l ./16 total 017 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:51 dir318 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:51 dir419 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:51 dir520 drwxr-xr-x 3 mengxianglei staff 96 11 4 14:52 dir621 mengxialeideMBP:script mengxianglei$ ls -l dir622 total 023 drwxr-xr-x 2 mengxianglei staff 64 11 4 14:51 dir2
10.rm
The rm utility attempts to remove the non-directory type files specified on the command line. If the permissions of the file do not permit writing, and the standard input device is a terminal, the user is
prompted (on the standard error output) for confirmation.
删除文件或者目录,系统运行会产生一些垃圾文件,因此为了节省磁盘,会经常将不需要的备份或者垃圾文件进行删除操作
-r 可以递归删除目录及目录里面的内容
-f 强制删除,无需提示
1 mengxialeideMBP:script mengxianglei$ rm -rf dir62 mengxialeideMBP:script mengxianglei$ ls3 dir3 dir4 dir5
通常可以结合find命令进行文件删除操作
1 mengxialeideMBP:script mengxianglei$ ls2 dir3 dir4 dir53 mengxialeideMBP:script mengxianglei$ find ./ -type d -name "dir3"|xargs rm -rf4 mengxialeideMBP:script mengxianglei$ ls5 dir4 dir5
11.ln
The ln utility creates a new directory entry (linked file) which has the same modes as the original file. It is useful for maintaining multiple copies of a file in many places at once without using up storage
for the ``copies''; instead, a link ``points'' to the original copy. There are two types of links; hard links and symbolic links. How a link ``points'' to a file is one of the differences between a hard and
symbolic link.
linux下创建链接分为硬链接合软链接,两种链接方式时由区别的,默认创建硬链接,-s参数创建软链接,即快捷方式。硬链接相当于文件的另一个入口,与源文件是同一个inode编号,软链接则由自己的inode,是一个链接文件。
平时的应用创建软链接的情况较多,另外,目录是不可以创建硬链接的。
1 mengxialeideMBP:script mengxianglei$ touch file1 2 mengxialeideMBP:script mengxianglei$ ln file1 hard_link 3 mengxialeideMBP:script mengxianglei$ ln -s file1 soft_link 4 mengxialeideMBP:script mengxianglei$ ls -l 5 total 0 6 -rw-r--r-- 2 mengxianglei staff 0 11 4 15:15 file1 7 -rw-r--r-- 2 mengxianglei staff 0 11 4 15:15 hard_link 8 lrwxr-xr-x 1 mengxianglei staff 5 11 4 15:16 soft_link -> file1 9 mengxialeideMBP:script mengxianglei$ ls -lhi10 total 011 3213173 -rw-r--r-- 2 mengxianglei staff 0B 11 4 15:15 file112 3213173 -rw-r--r-- 2 mengxianglei staff 0B 11 4 15:15 hard_link13 3213177 lrwxr-xr-x 1 mengxianglei staff 5B 11 4 15:16 soft_link -> file114 mengxialeideMBP:script mengxianglei$
12.find
The find utility recursively descends the directory tree for each path listed, evaluating an expression (composed of the ``primaries'' and ``operands'' listed below) in terms of each file in the tree.
通常为了查找一些内容,进行find命令,比较常用。
-type 查找类型
-name 文件名称
-mtime 修改时间 +、-
! 取反
-user 属于某个用户的文件
-nouser 不属于任何用户的文件
-maxdepth 1 最深一级目录
1 mengxialeideMBP:script mengxianglei$ touch {1..5}.txt2 mengxialeideMBP:script mengxianglei$ ls3 1.txt 2.txt 3.txt 4.txt 5.txt4 mengxialeideMBP:script mengxianglei$ find ./ -name "1.txt" |xargs rm 5 mengxialeideMBP:script mengxianglei$ ls6 2.txt 3.txt 4.txt 5.txt7 mengxialeideMBP:script mengxianglei$ find ./ -name "2.txt" -exec rm {} \; 8 mengxialeideMBP:script mengxianglei$ ls9 3.txt 4.txt 5.txt
通过-exec命令,给找到的文件批量改名字,逐条处理
1 mengxialeideMBP:script mengxianglei$ touch {1..9}.txt2 mengxialeideMBP:script mengxianglei$ find ./ -name "*.txt" -exec mv {} {}.bak \; 3 mengxialeideMBP:script mengxianglei$ ls4 1.txt.bak 2.txt.bak 3.txt.bak 4.txt.bak 5.txt.bak 6.txt.bak 7.txt.bak 8.txt.bak 9.txt.bak
通过xargs,将查找的结果集一起处理
1 mengxialeideMBP:script mengxianglei$ find ./ -name "*.txt"|xargs2 .//9.txt .//8.txt .//5.txt .//4.txt .//6.txt .//7.txt .//3.txt .//2.txt .//1.txt3 mengxialeideMBP:script mengxianglei$ find ./ -name "*.txt"|xargs rm -r
13.xargs
The xargs utility reads space, tab, newline and end-of-file delimited strings from the standard input and executes utility with the strings as arguments
标准输入处理为入参
-n 每行显示个数
-d 指定分隔符号
1 mengxialeideMBP:script mengxianglei$ cat int.txt 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9 810 911 1012 mengxialeideMBP:script mengxianglei$ xargs < int.txt13 1 2 3 4 5 6 7 8 9 1014 mengxialeideMBP:script mengxianglei$ xargs -n 2 < int.txt15 1 216 3 417 5 618 7 819 9 10
14.rename
替换文件名
rename from to file
15.basename
显示文件名,不显示路径
1 mengxialeideMBP:script mengxianglei$ ls2 int.txt3 mengxialeideMBP:script mengxianglei$ basename int.txt4 int.txt5 mengxialeideMBP:script mengxianglei$ basename int.txt .txt6 int
16.dirname
显示路径,参数如果是相对路径,则返回内容也同样相对,参数如果是绝对路径,返回内容也是绝对。
1 mengxialeideMBP:script mengxianglei$ dirname /Users/mengxianglei/mxl/script/int.txt2 /Users/mengxianglei/mxl/script3 mengxialeideMBP:script mengxianglei$ dirname int.txt4 .
17.chattr
修改文件扩展属性
a 只能想文件追加数据。+a 、 -a
i. 文件不能被删除、改名、写入或者新增 +i、-i
18.lsattr
查看文件扩展属性
19.chown
The chown utility changes the user ID and/or the group ID of the specified files. Symbolic links named by arguments are silently left unchanged unless -h is used.
更改文件所属用户即属主
-R 递归更改目录下文件
1 chown mengxianglei ./dir12 chown -R mengxianglei.staff ./dir3 chown -R .staff ./dir4 chown -R :staff ./dir
20.chmod
改变文件或者目录权限
-R 递归处理
r 读权限
w 写权限
x 执行权限
4,2,1 通过4,2,1来计算,可以理解4,2,1为读写执行的权重,计算的总和即文件的执行权限。
ls -l 查看文件时候,第一位为文件的类型,后面9位分别代表属主、属组、其他用户的读、写、执行
21.cat
cat -- concatenate and print files
查看或者聚合文件,与paste不同的是,是按照文件内容依次结合,而非逐行结合
通过cat将两个文件内容简单合并
1 mengxialeideMBP:mxl mengxianglei$ cat int.txt 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9 810 911 1012 mengxialeideMBP:mxl mengxianglei$ cat char.txt13 a14 b15 c16 d17 e18 f19 g20 h21 i22 j23 k24 l25 m26 n27 o28 p29 q30 r31 s32 t33 u34 v35 w36 x37 y38 z39 mengxialeideMBP:mxl mengxianglei$ cat int.txt char.txt40 141 242 343 444 545 646 747 848 949 1050 a51 b52 c53 d54 e55 f56 g57 h58 i59 j60 k61 l62 m63 n64 o65 p66 q67 r68 s69 t70 u71 v72 w73 x74 y75 z
-n 显示行号
1 mengxialeideMBP:mxl mengxianglei$ cat -n char.txt 2 1 a 3 2 b 4 3 c 5 4 d 6 5 e 7 6 f 8 7 g 9 8 h10 9 i11 10 j12 11 k13 12 l14 13 m15 14 n16 15 o17 16 p18 17 q19 18 r20 19 s21 20 t22 21 u23 22 v24 23 w25 24 x26 25 y27 26 z
通过cat命令清空文件内容
1 mengxialeideMBP:mxl mengxianglei$ cat /dev/null>test.txt 2 mengxialeideMBP:mxl mengxianglei$ cat test.txt 3 mengxialeideMBP:mxl mengxianglei$
通过cat 非交互式写入文件内容,如果结尾<<-EOF,最后的EOF可以不顶格
1 mengxialeideMBP:mxl mengxianglei$ cat >>test.txt<aaa3 > ddd4 > ddd5 > EOF6 mengxialeideMBP:mxl mengxianglei$ cat test.txt 7 aaa8 ddd9 ddd
mengxialeideMBP:mxl mengxianglei$ cat <<-EOF> fsdf> fsdfsdf> EOFfsdffsdfsdf
22.less
根据需要加载文件,支持分页查看
-N 显示每页行号
输入空格,跳转到下一页,输入b,返回到上一页,上下键逐行移动
1 mengxialeideMBP:mxl mengxianglei$ less -N /etc/services
23.head
head -- display first lines of a file
显示文件开头几行
-n 指定显示的行数
1 mengxialeideMBP:mxl mengxianglei$ head -n 11 int.txt 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9 810 911 1012 11
24.tail
tail -- display the last part of a file
显示文件的后面行数,通常查看日志时常用该命令监控日志文件信息
-n 指定显示多少行
-f 实时监控文件变化
-F 实时监控文件变化,文件不存在是不报错,一直等待
25.cut
The cut utility cuts out selected portions of each line (as specified by list) from each file and writes them to the standard output. If no file arguments are specified, or a file argument is a single dash
(`-'), cut reads from the standard input. The items specified by list can be in terms of column position or in terms of fields delimited by a special character. Column numbering starts from 1.
从文本中提取文字
-b 以字节单位进行分隔
-c 以字符为单位进行分隔
-d 指定分隔符
-f 指定显示区域
1 mengxialeideMBP:mxl mengxianglei$ cat char.txt 2 a b c d e f g h i j k l m n o p q r s t u v w x y z 3 mengxialeideMBP:mxl mengxianglei$ cut -c 1-5 char.txt 4 a b c 5 mengxialeideMBP:mxl mengxianglei$ cut -b 1-5 char.txt 6 a b c 7 mengxialeideMBP:mxl mengxianglei$ cut -b 1-5,7 char.txt 8 a b cd 9 mengxialeideMBP:mxl mengxianglei$ cut -d " " -f 2 char.txt 10 b
1 mengxialeideMBP:mxl mengxianglei$ cut -d : -f 1 /etc/passwd 2 ## 3 # User Database 4 # 5 # Note that this file is consulted directly only when the system is running 6 # in single-user mode. At other times this information is provided by 7 # Open Directory. 8 # 9 # See the opendirectoryd(8) man page for additional information about10 # Open Directory.11 ##12 nobody13 root14 daemon15 _uucp16 _taskgated17 _networkd18 _installassistant19 _lp20 _postfix21 _scsd22 _ces23 _appstore24 _mcxalr25 _appleevents26 _geod27 _serialnumberd28 _devdocs29 _sandbox30 _mdnsresponder
26.split
split -- split a file into pieces
将大文件分割为小软件
-l 指定分隔的行数
1 mengxialeideMBP:mxl mengxianglei$ wc -l int.txt 2 100 int.txt 3 mengxialeideMBP:mxl mengxianglei$ split -l 30 int.txt int_s_ 4 mengxialeideMBP:mxl mengxianglei$ ls -l 5 total 40 6 -rw-r--r-- 1 mengxianglei staff 292 11 5 00:02 int.txt 7 -rw-r--r-- 1 mengxianglei staff 81 11 5 00:12 int_s_aa 8 -rw-r--r-- 1 mengxianglei staff 90 11 5 00:12 int_s_ab 9 -rw-r--r-- 1 mengxianglei staff 90 11 5 00:12 int_s_ac10 -rw-r--r-- 1 mengxianglei staff 31 11 5 00:12 int_s_ad
-a 指定文件扩展名长度
1 mengxialeideMBP:mxl mengxianglei$ split -l 10 -a 5 int.txt 2 mengxialeideMBP:mxl mengxianglei$ ls -l 3 total 88 4 -rw-r--r-- 1 mengxianglei staff 292 11 5 00:02 int.txt 5 -rw-r--r-- 1 mengxianglei staff 21 11 5 00:16 xaaaaa 6 -rw-r--r-- 1 mengxianglei staff 30 11 5 00:16 xaaaab 7 -rw-r--r-- 1 mengxianglei staff 30 11 5 00:16 xaaaac 8 -rw-r--r-- 1 mengxianglei staff 30 11 5 00:16 xaaaad 9 -rw-r--r-- 1 mengxianglei staff 30 11 5 00:16 xaaaae10 -rw-r--r-- 1 mengxianglei staff 30 11 5 00:16 xaaaaf11 -rw-r--r-- 1 mengxianglei staff 30 11 5 00:16 xaaaag12 -rw-r--r-- 1 mengxianglei staff 30 11 5 00:16 xaaaah13 -rw-r--r-- 1 mengxianglei staff 30 11 5 00:16 xaaaai14 -rw-r--r-- 1 mengxianglei staff 31 11 5 00:16 xaaaaj
27.sort
sort -- sort or merge records (lines) of text and binary files
-n 按照数值大小排序
-r 倒叙
-t 指定分隔
-k 指定排序
1 mengxialeideMBP:mxl mengxianglei$ cat test.txt 2 1 z 3 2 y 4 3 x 5 4 w 6 5 v 7 6 u 8 7 t 9 8 s10 9 r11 10 q12 p13 o14 n15 m16 l17 k18 j19 i20 h21 g22 f23 e24 d25 c26 b27 a28 mengxialeideMBP:mxl mengxianglei$ sort -t " " -k 2 test.txt 29 a30 b31 c32 d33 e34 f35 g36 h37 i38 j39 k40 l41 m42 n43 o44 p45 1 z46 10 q47 2 y48 3 x49 4 w50 5 v51 6 u52 7 t53 8 s54 9 r
28.uniq
The uniq utility reads the specified input_file comparing adjacent lines, and writes a copy of each unique input line to the output_file. If input_file is a single dash (`-') or absent, the standard input is
read. If output_file is absent, standard output is used for output. The second and succeeding copies of identical adjacent input lines are not written. Repeated lines in the input will not be detected if
they are not adjacent, so it may be necessary to sort the files first.
去除重复行,只能去除相邻的重复行,如果想去除所有重复行,需要先排序
-c 去除重复行,统计出重复行的个数
1 mengxialeideMBP:mxl mengxianglei$ sort -n int.txt |uniq -c 2 5 1 3 5 2 4 5 3 5 5 4 6 5 5 7 5 6 8 5 7 9 5 810 5 911 5 10
29.wc
wc -- word, line, character, and byte count
-l 统计行数
-L 统计最长行长度
-m 统计字符数
1 mengxialeideMBP:mxl mengxianglei$ who|wc -l2 2
30.diff
diff - compare files line by line
逐行比较文件
31.tr
The tr utility copies the standard input to the standard output with substitution or deletion of selected characters.
-d 删除字符
-s 保留连续字符的第一个字符
1 mengxialeideMBP:mxl mengxianglei$ cat test.txt 2 aafdfdsfsfaaaaafsdfsdffn1122111fsf3433 mengxialeideMBP:mxl mengxianglei$ tr 'abc' '123'
32.tee
tee -- pipe fitting
多重定向
-a 追加
1 mengxialeideMBP:mxl mengxianglei$ cat a.txt|tee b.txt 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9 810 911 1012 mengxialeideMBP:mxl mengxianglei$ cat a.txt|tee -a b.txt13 114 215 316 417 518 619 720 821 922 1023 mengxialeideMBP:mxl mengxianglei$ cat b.txt 24 125 226 327 428 529 630 731 832 933 1034 135 236 337 438 539 640 741 842 943 10
34.grep
the grep utility searches any given input files, selecting lines thatmatch one or more patterns.
-v 排除,显示不匹配的行
1 mengxialeideMBP:mxl mengxianglei$ cat a.txt 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9 810 911 1012 mengxialeideMBP:mxl mengxianglei$ grep -v 2 a.txt13 114 315 416 517 618 719 820 921 10
-n 显示匹配行或者行号
-i 不区分大小写
-E 扩展的grep
1 mengxialeideMBP:mxl mengxianglei$ grep "1|2" a.txt 2 mengxialeideMBP:mxl mengxianglei$ grep -E "1|2" a.txt 3 14 25 10
--color=auto
-w 只匹配过滤的单词
1 mengxialeideMBP:mxl mengxianglei$ grep -w --color=auto hello 2.txt2 hello3 hello
去除空行和日志
grep -EV "^$|#" nginx.conf
35.sed
the sed utility reads the specified files, or the standard input if no files are specified, modifying the input as specified by a list of commands.
添加内容指定行前增加内容
sed '2i 2' int.txt 指定行后增加内容 sed '2a 2' int.txt 增加多行 sed '2a 2\n3' int.txt 删除文件中一行 sed '2d' int.txt 删除多行 sed '2,5d' int.txt 文本替换 sed -i 's#1#2#g' int.txt 打印 sed -n '2p' int.txt N的特殊用法 sed 'N;s#\n#=#g' int.txt
36.awk
awk scans each input file for lines that match any of a set of patterns specified literally in prog or in one or more files specified as -f progfile.
-F 指定分隔符
NR 行号
NF 尾
$0 整行
输出指定的行信息
1 awk 'NR==5' b.txt
输出指定行范围信息
1 awk 'NR==2,NR==6' a.txt
1 awk '{print NR $0}' int.txt
gsub函数使用
gsub("替换对象",“替换成什么内容”,哪一列)
1 awk '{gsub("/sbing/nologin","/bin/bash",$0);print $0}' int.txt
获取以太网eth0的ip地址
ifconfig etc0|awk -F "(adds:)|( Bcast)" 'NR==2{print $2}'
ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'
awk -F '/' '{print $3}' int.txt|sort|uniq -c
37.uname
uname -- Print operating system name
-r 显示内核版本
-m 显示硬件架构
-a 显示所有信息
-n 显示主机名
38.hostname
hostname -- set or print name of current host system
/etc/sysconfig/network
/etc/hostname
-a显示主机别名
-i 主机IP
-I 主机IP,不依赖DNS解析,速度快
39.stat
40.du
41.date
42.echo