1、创建目录mkdir

创建目录命令,常用的参数-p,递归创建目录

[root@web01 ~]# mkdir /data

[root@web01 ~]# mkdir /data/a/b

mkdir: cannot create directory ‘/data/a/b’: No such file or directory

[root@web01 ~]# mkdir /data/a/b -p   #可以创建多级目录

[root@web01 ~]#

绝对路径   相对路径

1、绝对路径  从根开始

/data      /etc

2、相对路径   不是从根开始的

data

2、 切换目录cd

cd aa切换工作目录,cd ..返回上一级目录,cd / 返回根目录, cd – 返回上次一的工作目录, cd~ 返回家目录。

[root@web01 ~]# cd /opt   #切换到指定的目录下,   cd 目录 切换到当前的目录下的目录

[root@web01 opt]# cd ..   #回到上一级

[root@web01 /]# cd /   #返回根目录

[root@web01 /]# cd -   返回上一次工作目录

/

[root@web01 /]# cd ~  #返回家目录

[root@web01 ~]#

3、 ls命令总结

ls可以说是Linux系统最常用的命令之一,相当于windows下的dir命令。常用的参数如下:

-a –all:列出目录下的所有文件,包括以 . 开头的隐含文件。

-l 列出文件的详细信息也可以简写为ll。

total 32 代表当前目录下文件大小的总和为32K(每个目录的大小都按4K算)

drwxr-xr-x 第一个字符有3种情况:“-”表示普通文件,“d”代表目录,“l”代表连接文件,“b”代表设备文件。

后面的9个字符每3个为一组,分别代表文件所有者、文件所有者所在用户组、其它用户对文件拥有的权限。每组中3个字符分别代表读、写、执行的权限,若没有其中的任何一个权限则用“-”表示。执行的权限有两个字符可选“x”代表可执行,“s”代表套接口文件。

紧接着的数字2代表 “aa”这个目录下的目录文件数目(这个数目=隐藏目录数目+普通目录数目)。

再接下来的root代表这个文件(目录)的属主为 用户root

再接下来的root代表这个文件(目录)所属的用户组为 组root

28 代表文件的大小(字节数),目录的大小总是为28字节。

Dec 28 20:13 代表文件(目录)的修改时间。

c代表文件(目录)在名字。

在~/.bashrc文件里添加export TIME_STYLE='+%Y/%m/%d %H:%M:%S' ,可修改ls -l命令里日期时间的显示格式,此操作只对当前用户生效。/etc/bashrc文件或者/etc/profile添加则对所有用户生效。

-i 输出文件的 i 节点的索引信息。

-d 将目录象文件一样显示,而不是显示其下的文件。

-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通
文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套
接字(sockets)。

-r 对目录反向排序。

-t 以时间排序。

-u 以文件上次被访问的时间排序。

-s 在每个文件名后输出该文件的大小。

-S 以文件大小排序。

-h 显示文件大小时增加可读性

显示彩色目录列表
打开/etc/bashrc,
加入如下一行:
alias ls="ls --color"
下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:
1. 蓝色-->目录
2. 绿色-->可执行文件
3. 红色-->压缩文件
4. 浅蓝色-->链接文件
5. 灰色-->其他文件

4、 pwd命令总结

返回当前工作目录列表

5、rmdir命令总结

删除空目录

6、文件创建命令touch

用来修改文件时间戳,或者新建一个不存在的文件。

-a   或--time=atime或--time=access或--time=use  只更改存取时间。

-d  使用指定的日期时间,而非现在的时间。

-m   或--time=mtime或--time=modify
 只更改变动时间。

-t  使用指定的日期时间,而非现在的时间。

[root@web01 data]# touch oldboy.txt

[root@web01 data]# ll

total 0

drwxr-xr-x. 3 root root 14 Oct 11 00:41 a

-rw-r--r--. 1 root root  0 Oct 11 01:09 oldboy.txt

7、增加内容到文件vi 、echo

方法1:使用vi命令打开vi编辑器,按i键进入编辑模式,可以输入内容,按esc键退出编辑模式,按:wq保存并退出,按:q退出,按:q!强制退出。

方法2:使用echo命令

echo命令打印内容到当前屏幕。

[root@oldboyedu-sh01 ~]# echo "oldboyedu.com"

oldboyedu.com

[root@oldboyedu-sh01 ~]# echo "oldboyedu.com" >> /data/oldboy.txt

[root@oldboyedu-sh01 ~]# cat  /data/oldboy.txt

I am studying linux. at oldboyedu.com

oldboyedu.com

>>追加重定向  把内容追加到文件的结尾

>  重定向     先把文件内容清空,把内容追加到文件的结尾

[root@oldboyedu-sh01 ~]# echo "alex" >/data/oldboy.txt

[root@oldboyedu-sh01 ~]# cat /data/oldboy.txt

alex

>> 或 1>>  追加重定向  把内容追加到文件的结尾

>  或 1>   重定向     先把文件内容清空,把内容追加到文件的结尾

2>> 错误追加重定向  把内容追加到文件的结尾

2>  错误重定向     先把文件内容清空,把内容追加到文件的结尾

[root@web01 data]# ech 2>> oldboy.txt

[root@web01 data]# cat oldboy.txt

alex

-bash: ech: command not found

[root@web01 data]# ech 2> oldboy.txt

[root@web01 data]# cat oldboy.txt

-bash: ech: command not found

[root@web01 data]# ech >oldboy.txt

-bash: ech: command not found

[root@web01 data]# cat oldboy.txt

8 、文件内容查看命令cat

常用于读取、显示、拼接文件内容

打印单个或多个文件内容

将标准输入与文件内容合并显示(-被做为stdin文本的文件名)

–s参数压缩相邻的空白行。

–n参数显示行号

9、 复制命令cp

cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

-f 或 --force       强行复制文件或目录,不论目的文件或目录是否已经存在

-i 或 --interactive 覆盖文件之前先询问用户

-p 或 --preserve    保留源文件或目录的属性,包括所有者、所属组、权限与时间

-r                  递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-a相当于-dpr

有时候cp –f 还是提示是否覆盖,是因为别名的原因,可以通过alias命令查看,可以通过编辑~/.bashrc文件注释相关的内容,退出重新登录即可,此方法只对当前用户生效,修改/etc/bashrc文件或者/etc/profile文件对所有用户生效。也可以在cp命令加\即可。

[root@web01 data]# cp oldboy.txt /tmp/

[root@web01 data]# ll /tmp/

total 0

-rw-r--r--. 1 root root  0 Oct 11 01:29 oldboy.txt

10、 移动文件或者目录mv

-f, --force   do not prompt before overwriting

-i, --interactive  prompt before overwrite

mv命令也可以用来给文件改名,

11、 改名命令rename

批量改名 ,rename需要提供三个参数,然后才能决定最终结果。第一个参数:被替换掉的字符串、第二个参数:替换成的字符串、第三个参数:匹配要替换的文件模式。

rename .htm .html *.htm 将当前目录下所有的以.htm结尾的文件改名为以.hmtl结尾。

12、 删除文件rm

rm删除文件或者目录,生产场景尽量不要使用rm,非要使用的情况下,要先备份再删除。

替代方法使用mv移动到临时目录,相当于回收站 。

Find删除 :find /var/ -type f –exec rm {} \;

exec处理查找的结果,rm对前面找到内容的处理命令,{}表示找到的内容,\;转义

常用参数如下:

-f --force略过不存在的文件,不显示任何信息

-d --directory删除可能仍有数据的目录

-i --interactive 进行任何删除操作前必须先确认

-r/R --recursive同时删除该目录下的所有目录层

13、 查找命令find

查找文件在一个目录里.命令格式:find 查找的位置 [OPTION]

1)          列出目录及子目录下的所有文件及文件夹

[root@oldboy ~]# find /opt

/opt

/opt/rh

[root@oldboy ~]#

[root@oldboy ~]# find /opt -print

/opt

/opt/rh

[root@oldboy ~]#

[root@oldboy ~]# find /opt -print0

/opt/opt/rh[root@oldboy ~]#

2)         -name参数指定了文件名所必须匹配的字符串。我们可以使用通配符*.txt,-iname忽略文件名的大小写

[root@oldboy oldboy]# ll

total 0

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 oldboy1.log

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 oldboy2.log

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 oldboy3.log

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd1.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd2.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd3.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd4.txt

[root@oldboy oldboy]# find . -name "*.log"

./oldboy3.log

./oldboy2.log

./oldboy1.log

[root@oldboy oldboy]#

3)         !否定参数

[root@oldboy oldboy]# ll

total 0

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 oldboy1.log

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 oldboy2.log

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 oldboy3.log

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd1.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd2.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd3.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd4.txt

[root@oldboy oldboy]# find . ! -name "*.log"

.

./wd1.txt

./wd4.txt

./wd3.txt

./wd2.txt

[root@oldboy oldboy]#

4)         -type根据文件类型搜索(d 目录 f 普通文件 s 套接字 l 符号连接 b 设备 c 字符设备等)

[root@oldboy oldboy]# find /etc -type d |head -3

/etc

/etc/popt.d

/etc/libreport

[root@oldboy oldboy]#

[root@oldboy oldboy]# find /etc -type l |head -3

/etc/rc.d/rc4.d/S80postfix

/etc/rc.d/rc4.d/K10psacct

/etc/rc.d/rc4.d/K95rdma

[root@oldboy oldboy]#

5)         根据文件时间进行搜索

-atime用户最近一次访问时间

-mtime文件内容最后一次被修改时间

-ctime文件元数据(例如权限或所有权)最后一次改变的时间

以上三个都可以做为find的时间选项,它们可以用整数值指定,单位是天,还可以带“+ -”,-表示小于,+表示大于

-amin(访问时间)

-mmin(修改时间)

-cmin (变化时间)这三个参数的单位是分钟。

[root@oldboy oldboy]# find . -type f -atime -7

./wd1.txt

./oldboy3.log

./oldboy2.log

./wd4.txt

./wd3.txt

./oldboy1.log

./wd2.txt

[root@oldboy oldboy]# find . -type f -atime +7

[root@oldboy oldboy]# find . -type f -amin +7

./wd1.txt

./oldboy3.log

./oldboy2.log

./wd4.txt

./wd3.txt

./oldboy1.log

./wd2.txt

[root@oldboy oldboy]# find . -type f -amin -7

./wd1.txt

[root@oldboy oldboy]#

6)         -newer参数,指一个参考文件,然后找出比指定文件更新(修改时间)所有文件。

[root@oldboy oldboy]# ll -t

total 0

-rw-r--r-- 1 root root 0 2016/03/08 12:15:49 wd1.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 oldboy1.log

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 oldboy2.log

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 oldboy3.log

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd2.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd3.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 wd4.txt

[root@oldboy oldboy]# find . -type f -newer wd2.txt -exec ls -l {} \;

-rw-r--r-- 1 root root 0 2016/03/08 12:15:49 ./wd1.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 ./oldboy3.log

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 ./oldboy2.log

-rw-r--r-- 1 root root 0 2016/03/08 10:49:38 ./oldboy1.log

[root@oldboy oldboy]#

7)         -size基于文件大小的搜索 –size +2k大于2k,-size -2M 小于2M  b-块、c-字节、w-字、k-1024字节、M-1024k、G-1024M

[root@oldboy oldboy]# ls -Slh

total 712K

-rw-r--r-- 1 root root 576K 2016/03/08 12:26:45 wd2.log

-rw-r--r-- 1 root root  68K 2016/03/08 12:27:03 wd4.log

-rw-r--r-- 1 root root  48K 2016/03/08 12:26:40 wd1.log

-rw-r--r-- 1 root root 3.9K 2016/03/08 12:26:29 oldboy3.log

-rw-r--r-- 1 root root  424 2016/03/08 12:26:54 wd3.log

-rw-r--r-- 1 root root  292 2016/03/08 12:26:19 oldboy2.log

-rw-r--r-- 1 root root  292 2016/03/08 12:26:13 oldboyw.log

-rw-r--r-- 1 root root   21 2016/03/08 12:26:03 oldboy1.log

-rw-r--r-- 1 root root    0 2016/03/08 12:15:49 wd1.txt

-rw-r--r-- 1 root root    0 2016/03/08 10:48:58 wd2.txt

-rw-r--r-- 1 root root    0 2016/03/08 10:48:58 wd3.txt

-rw-r--r-- 1 root root    0 2016/03/08 10:48:58 wd4.txt

[root@oldboy oldboy]# find -type f -size +2k -exec ls -lS {} \;

-rw-r--r-- 1 root root 68892 2016/03/08 12:27:03 ./wd4.log

-rw-r--r-- 1 root root 3893 2016/03/08 12:26:29 ./oldboy3.log

-rw-r--r-- 1 root root 48894 2016/03/08 12:26:40 ./wd1.log

-rw-r--r-- 1 root root 588902 2016/03/08 12:26:45 ./wd2.log

[root@oldboy oldboy]#

[root@oldboy oldboy]# find -type f -size -2M -exec ls -lSh {} \;

-rw-r--r-- 1 root root 68K 2016/03/08 12:27:03 ./wd4.log

-rw-r--r-- 1 root root 424 2016/03/08 12:26:54 ./wd3.log

-rw-r--r-- 1 root root 0 2016/03/08 12:15:49 ./wd1.txt

-rw-r--r-- 1 root root 3.9K 2016/03/08 12:26:29 ./oldboy3.log

-rw-r--r-- 1 root root 292 2016/03/08 12:26:19 ./oldboy2.log

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 ./wd4.txt

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 ./wd3.txt

-rw-r--r-- 1 root root 21 2016/03/08 12:26:03 ./oldboy1.log

-rw-r--r-- 1 root root 48K 2016/03/08 12:26:40 ./wd1.log

-rw-r--r-- 1 root root 0 2016/03/08 10:48:58 ./wd2.txt

-rw-r--r-- 1 root root 576K 2016/03/08 12:26:45 ./wd2.log

-rw-r--r-- 1 root root 292 2016/03/08 12:26:13 ./oldboyw.log

[root@oldboy oldboy]#

8)         -delete删除找到的文件

[root@oldboy oldboy]# ll

total 712

-rw-r--r-- 1 root root     21 2016/03/08 12:26:03 oldboy1.log

-rw-r--r-- 1 root root    292 2016/03/08 12:26:19 oldboy2.log

-rw-r--r-- 1 root root   3893 2016/03/08 12:26:29 oldboy3.log

-rw-r--r-- 1 root root    292 2016/03/08 12:26:13 oldboyw.log

-rw-r--r-- 1 root root  48894 2016/03/08 12:26:40 wd1.log

-rw-r--r-- 1 root root      0 2016/03/08 12:15:49 wd1.txt

-rw-r--r-- 1 root root 588902 2016/03/08 12:26:45 wd2.log

-rw-r--r-- 1 root root      0 2016/03/08 10:48:58 wd2.txt

-rw-r--r-- 1 root root    424 2016/03/08 12:26:54 wd3.log

-rw-r--r-- 1 root root      0 2016/03/08 10:48:58 wd3.txt

-rw-r--r-- 1 root root  68892 2016/03/08 12:27:03 wd4.log

-rw-r--r-- 1 root root      0 2016/03/08 10:48:58 wd4.txt

[root@oldboy oldboy]# find -type f -name wd1.log -delete

[root@oldboy oldboy]# ll

total 664

-rw-r--r-- 1 root root     21 2016/03/08 12:26:03 oldboy1.log

-rw-r--r-- 1 root root    292 2016/03/08 12:26:19 oldboy2.log

-rw-r--r-- 1 root root   3893 2016/03/08 12:26:29 oldboy3.log

-rw-r--r-- 1 root root    292 2016/03/08 12:26:13 oldboyw.log

-rw-r--r-- 1 root root      0 2016/03/08 12:15:49 wd1.txt

-rw-r--r-- 1 root root 588902 2016/03/08 12:26:45 wd2.log

-rw-r--r-- 1 root root      0 2016/03/08 10:48:58 wd2.txt

-rw-r--r-- 1 root root    424 2016/03/08 12:26:54 wd3.log

-rw-r--r-- 1 root root      0 2016/03/08 10:48:58 wd3.txt

-rw-r--r-- 1 root root  68892 2016/03/08 12:27:03 wd4.log

-rw-r--r-- 1 root root      0 2016/03/08 10:48:58 wd4.txt

[root@oldboy oldboy]#

9)         -perm基本文件权限、-user基本于所有权匹配。

[root@oldboy oldboy]# ll

total 664

-rw-r--r-- 1 root root     21 2016/03/08 12:26:03 oldboy1.log

-rw-r--r-- 1 root root    292 2016/03/08 12:26:19 oldboy2.log

-rwxrwxrwx 1 root root   3893 2016/03/08 12:26:29 oldboy3.log

-rw-r--r-- 1 root root    292 2016/03/08 12:26:13 oldboyw.log

-rw-r--r-- 1 root root      0 2016/03/08 12:15:49 wd1.txt

-rwxrwxrwx 1 root root 588902 2016/03/08 12:26:45 wd2.log

-rw-r--r-- 1 root root      0 2016/03/08 10:48:58 wd2.txt

-rw-r--r-- 1 root root    424 2016/03/08 12:26:54 wd3.log

-rw-r--r-- 1 root root      0 2016/03/08 10:48:58 wd3.txt

-rwxrwxrwx 1 root root  68892 2016/03/08 12:27:03 wd4.log

-rw-r--r-- 1 root root      0 2016/03/08 10:48:58 wd4.txt

[root@oldboy oldboy]# find -type f -perm 777 -exec ls -l {} \;

-rwxrwxrwx 1 root root 68892 2016/03/08 12:27:03 ./wd4.log

-rwxrwxrwx 1 root root 3893 2016/03/08 12:26:29 ./oldboy3.log

-rwxrwxrwx 1 root root 588902 2016/03/08 12:26:45 ./wd2.log

[root@oldboy oldboy]#

[root@oldboy oldboy]# ll

total 664

-rw-r--r-- 1 oldboy oldboy     21 2016/03/08 12:26:03 oldboy1.log

-rw-r--r-- 1 oldboy oldboy    292 2016/03/08 12:26:19 oldboy2.log

-rwxrwxrwx 1 oldboy oldboy   3893 2016/03/08 12:26:29 oldboy3.log

-rw-r--r-- 1 oldboy oldboy    292 2016/03/08 12:26:13 oldboyw.log

-rw-r--r-- 1 root   root        0 2016/03/08 12:15:49 wd1.txt

-rwxrwxrwx 1 root   root   588902 2016/03/08 12:26:45 wd2.log

-rw-r--r-- 1 root   root        0 2016/03/08 10:48:58 wd2.txt

-rw-r--r-- 1 root   root      424 2016/03/08 12:26:54 wd3.log

-rw-r--r-- 1 root   root        0 2016/03/08 10:48:58 wd3.txt

-rwxrwxrwx 1 root   root    68892 2016/03/08 12:27:03 wd4.log

-rw-r--r-- 1 root   root        0 2016/03/08 10:48:58 wd4.txt

[root@oldboy oldboy]# find . -type f -user oldboy -exec ls -l {} \;

-rwxrwxrwx 1 oldboy oldboy 3893 2016/03/08 12:26:29 ./oldboy3.log

-rw-r--r-- 1 oldboy oldboy 292 2016/03/08 12:26:19 ./oldboy2.log

-rw-r--r-- 1 oldboy oldboy 21 2016/03/08 12:26:03 ./oldboy1.log

-rw-r--r-- 1 oldboy oldboy 292 2016/03/08 12:26:13 ./oldboyw.log

[root@oldboy oldboy]#

10)      -exec:执行其他命令。{}是一个与-exec选项搭配使用的特殊字符串。表示一个匹配,对于每一个匹配的文件,{}会被替换成相应的文件名。-exec执行是每搜到一行就执行一次后面的命令,可以使用+参数,将搜索到的文件名形成列表做为命令参数,这样就可以少执行几次命令了。

[root@oldboy oldboy]# ll

total 664

-rw-r--r-- 1 oldboy oldboy     21 2016/03/08 12:26:03 oldboy1.log

-rw-r--r-- 1 oldboy oldboy    292 2016/03/08 12:26:19 oldboy2.log

-rwxrwxrwx 1 oldboy oldboy   3893 2016/03/08 12:26:29 oldboy3.log

-rw-r--r-- 1 oldboy oldboy    292 2016/03/08 12:26:13 oldboyw.log

-rw-r--r-- 1 root   root        0 2016/03/08 12:15:49 wd1.txt

-rwxrwxrwx 1 root   root   588902 2016/03/08 12:26:45 wd2.log

-rw-r--r-- 1 root   root        0 2016/03/08 10:48:58 wd2.txt

-rw-r--r-- 1 root   root      424 2016/03/08 12:26:54 wd3.log

-rw-r--r-- 1 root   root        0 2016/03/08 10:48:58 wd3.txt

-rwxrwxrwx 1 root   root    68892 2016/03/08 12:27:03 wd4.log

-rw-r--r-- 1 root   root        0 2016/03/08 10:48:58 wd4.txt

[root@oldboy oldboy]# find -type f -name "wd*.log" -exec rm -f {} \;

[root@oldboy oldboy]# ll

total 16

-rw-r--r-- 1 oldboy oldboy   21 2016/03/08 12:26:03 oldboy1.log

-rw-r--r-- 1 oldboy oldboy  292 2016/03/08 12:26:19 oldboy2.log

-rwxrwxrwx 1 oldboy oldboy 3893 2016/03/08 12:26:29 oldboy3.log

-rw-r--r-- 1 oldboy oldboy  292 2016/03/08 12:26:13 oldboyw.log

-rw-r--r-- 1 root   root      0 2016/03/08 12:15:49 wd1.txt

-rw-r--r-- 1 root   root      0 2016/03/08 10:48:58 wd2.txt

-rw-r--r-- 1 root   root      0 2016/03/08 10:48:58 wd3.txt

-rw-r--r-- 1 root   root      0 2016/03/08 10:48:58 wd4.txt

[root@oldboy oldboy]#

[root@oldboy oldboy]# find -type f -atime -2 -exec cp {} /tmp \;

[root@oldboy oldboy]# cd /tmp/

[root@oldboy tmp]# ll

total 20

-rw-r--r--  1 root root   21 2016/03/08 12:51:56 oldboy1.log

-rw-r--r--  1 root root  292 2016/03/08 12:51:56 oldboy2.log

-rwxr-xr-x  1 root root 3893 2016/03/08 12:51:56 oldboy3.log

-rw-r--r--  1 root root  292 2016/03/08 12:51:56 oldboyw.log

drwx------  2 root root 4096 2016/03/08 09:12:57 ssh-EAyLCQ1743

-rw-r--r--  1 root root    0 2016/03/08 12:51:56 wd1.txt

-rw-r--r--  1 root root    0 2016/03/08 12:51:56 wd2.txt

-rw-r--r--  1 root root    0 2016/03/08 12:51:56 wd3.txt

-rw-r--r--  1 root root    0 2016/03/08 12:51:56 wd4.txt

-rw-------. 1 root root    0 2016/03/06 16:21:46 yum.log

[root@oldboy tmp]#

11)      -maxdepth n 查找的深度。

[root@oldgirl oldboy]# find . -maxdepth 1 -type d ! -name "."

./ext

./test

./xiaofan

./xiaodong

./xingfujie

[root@oldgirl oldboy]#

14、 文件查看命令之head、tail 、more、less

more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。more命令从前向后读取文件,因此在启动时就加载整个文件。

+n      从笫n行开始显示

常用操作命令

Enter    向下n行,需要定义。默认为1行

Ctrl+F   向下滚动一屏

空格键  向下滚动一屏

Ctrl+B  返回上一屏

=       输出当前行的行号

:f     输出文件名和当前行的行号

V      调用vi编辑器

!命令   调用Shell,并执行命令 

q       退出more

less命令更加弹性,功能更加强大,可以向前、向后翻看文件,同时还有更多的搜索功能,可以向上、向下搜索。

常用操作命令:

b  向后翻一页

d  向后翻半页

u  向前滚动半页

y  向前滚动一行

[pagedown]: 向下翻动一页

[pageup]:   向上翻动一页

Q  退出less 命令

head取文件的前几行,如果不加参数默认取文件的前10行。常用参数-n后接数字,表示显示前n行,可以简写成head -5,取文件前5行。

tail取文件的后几行,如果不加参数默认取文件的后10行。常用参数-n后接数字,表示显示后n行,可以简写成head -5,取文件前5行。-f参数用于接收文件尾部的变化,常用于查看日志文件更新。

15、 检索命令grep

grep是Linux系统命令三剑客之一,用于文本搜索,能够接受正则表达式,生成各种各样的输出。常用于过虑检索,常用的参数如下:

搜索包含特定模式的文本行:

也可以像下面这样从stdin中读取

单个grep 命令可以对多个文件时间进行搜索:

用—color选项可以在输出行中着重标记出匹配到的单词:

grep 命令只解释match_test中的某些特殊字符,如果要使用正则表达式,需要使用-E参数,或者使用egrep命令。

只输出文件中匹配到的文本部分,使用-o参数

输出包含匹配到的行之外的所有行,使用-v参数

统计匹配文件或者文本中匹配字符串的行数(只是行数而不是次数),使用-c参数

输出包含匹配字符串的行号:

搜索多个文件找出匹配文本位于那个文件之中,使用-l参数,-L结果相反。

如果需要在多级目录中对文本进行递归搜索,使用参数-R –n

忽略样式中的大小写,使用参数-i

匹配多个样式,使用-e参数

此外还可以将多个样式写在一个文件中,然后使用-f参数读取文件。

在搜索中指定或排队文件

可以搜索过程上指定(include)或排除(exclude)某些文件。要排队目录,可以使用—exclude-dir选项。

输出匹配文本之前或者之后的几行,使用-A n(之后n行),-B n(之前n行),-C n(之前n行,之后n行)

-E可以有多个匹配条件相当于egrep

-i忽略大小写

16、 三剑客之sed命令

sed是Linux系统命令三剑客之一,是流编辑器(stream editor),常用于取行及文本替换,常见用法如下:

删除空行,用正则表达式^$配置空行,d表示删除符合模式的行:

[root@oldboy oldboy]# cat test.txt

My name is wd.

I am stuty Linux.

Line3

Line4

line5

[root@oldboy oldboy]# sed '/^$/d' test.txt

My name is wd.

I am stuty Linux.

Line3

Line4

line5

[root@oldboy oldboy]#

删除行首空格

[root@oldboy oldboy]# cat test.txt

My name is wd.

I am stuty Linux.

Line3

Line4

line5

[root@oldboy oldboy]# sed 's#^ * ##g' test.txt

My name is wd.

I am stuty Linux.

Line3

Line4

line5

[root@oldboy oldboy]#

打印文件2-5行及删除,p表示打印,打印某个选择的数据,通常与-n参数一起使用,-n参数是安静模式,只有经过sed处理的行才显示出来,其他不显示。

[root@oldboy oldboy]# cat -n /etc/passwd | sed -n '2,5p'

2       bin:x:1:1:bin:/bin:/sbin/nologin

3       daemon:x:2:2:daemon:/sbin:/sbin/nologin

4       adm:x:3:4:adm:/var/adm:/sbin/nologin

5       lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@oldboy oldboy]# cat -n /etc/passwd |sed '2,20d'

1       root:x:0:0:root:/root:/bin/bash

21       saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

22       postfix:x:89:89::/var/spool/postfix:/sbin/nologin

23       sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

24       tcpdump:x:72:72::/:/sbin/nologin

25       oldboy:x:500:500::/home/oldboy:/bin/bash

26       oldgirl:x:501:501::/home/oldgirl:/bin/bash

27       msn:x:502:502::/home/msn:/bin/bash

[root@oldboy oldboy]#

在第2行后面添加一行内容“hello wd!”,a表示添加,后接字符串,添加到当前行的下一行。

[root@oldboy oldboy]# cat -n /etc/passwd |sed '2a hello wd!'|head -5

1       root:x:0:0:root:/root:/bin/bash

2       bin:x:1:1:bin:/bin:/sbin/nologin

hello wd!

3       daemon:x:2:2:daemon:/sbin:/sbin/nologin

4       adm:x:3:4:adm:/var/adm:/sbin/nologin

[root@oldboy oldboy]# cat -n /etc/passwd |sed '2a hello "wd!\nhell everyone"'|head -5

1       root:x:0:0:root:/root:/bin/bash

2       bin:x:1:1:bin:/bin:/sbin/nologin

hello "wd!

hell everyone"

3       daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@oldboy oldboy]#

在第2行这前添加一行内容“hello wd!”,i表示插入,后接字符串,添加到当前行的上一行。

[root@oldboy oldboy]# cat -n /etc/passwd |sed '2i hello wd!\nhell everyone'|head -5

1       root:x:0:0:root:/root:/bin/bash

hello wd!

hell everyone

2       bin:x:1:1:bin:/bin:/sbin/nologin

3       daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@oldboy oldboy]# cat -n /etc/passwd |sed '2i hello "wd!\nhell everyone"'|head -5

1       root:x:0:0:root:/root:/bin/bash

hello "wd!

hell everyone"

2       bin:x:1:1:bin:/bin:/sbin/nologin

3       daemon:x:2:2:daemon:/sbin:/sbin/nologin

[root@oldboy oldboy]#

将2-4内容替换成“I am study Linux.”c表示替换,后接字符串,用它替换n1-n2之间的行。

[root@oldboy oldboy]# cat -n /etc/passwd |sed '2,4c hello "I am study Linux."'|head -5

1       root:x:0:0:root:/root:/bin/bash

hello "I am study Linux."

5       lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

6       sync:x:5:0:sync:/sbin:/bin/sync

7       shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

[root@oldboy oldboy]#

-i参数将修改的结果保存到文件中。

[root@oldboy oldboy]# cat wd.txt

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@oldboy oldboy]# sed -i '2,3d' wd.txt

[root@oldboy oldboy]# cat wd.txt

root:x:0:0:root:/root:/bin/bash

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@oldboy oldboy]#

将test.txt文件中的wd替换成oldboy。s表示搜索,也可以替换

[root@oldboy oldboy]# cat test.txt

My name is wd.

I am stuty Linux.

Line3

Line4

line5

[root@oldboy oldboy]# sed -i 's#wd#oldboy#g' test.txt

[root@oldboy oldboy]# cat test.txt

My name is oldboy.

I am stuty Linux.

Line3

Line4

line5

[root@oldboy oldboy]#

使用sed命令取本机IP

[root@oldboy oldboy]# ifconfig| sed -n '2p'

inet addr:192.168.33.128  Bcast:192.168.33.255  Mask:255.255.255.0

[root@oldboy oldboy]# ifconfig| sed -n '2p'|sed 's#.*addr:##g'

192.168.33.128  Bcast:192.168.33.255  Mask:255.255.255.0

[root@oldboy oldboy]# ifconfig| sed -n '2p'|sed 's#.*addr:##g'|sed 's#Bca.*$##g'

192.168.33.128

[root@oldboy oldboy]# ifconfig eth0|sed -n '2p'| awk -F[:" "]+ '{print $4}'

192.168.33.128

使用&符号标记匹配到的字符串,我们就可以在后面的替换中使用己匹配到的内容。

[root@oldboy oldboy]# echo "This is a test"|sed 's#\w\+#[&]#g'

[This] [is] [a] [test]

(pattern)用于匹配子串,对于匹配到的第一个子串,在后面可以\1引用,以此类推,这种引用被称为后向引用。-r参数表示使用扩展的正则表达式。

[root@oldboy oldboy]# echo "This is a test"|sed -r 's#This (.*) a (.*)$#\1\n\2#g'

is

test

[root@oldboy oldboy]#

删除空行、注释、及行首空格

[root@oldboy oldboy]# cat test.txt

#My name is oldboy.

I am stuty Linux.

Line3

Line4

line5

This is a test.

[root@oldboy oldboy]# sed '/^$/d' test.txt |sed  '/^#.*$/d'|sed 's#^ * ##g'

I am stuty Linux.

Line3

Line4

line5

This is a test.

[root@oldboy oldboy]#

注释passwd文件的前3行。

[root@oldboy oldboy]# head -5 /etc/passwd|sed 's#^#\##g'

#root:x:0:0:root:/root:/bin/bash

#bin:x:1:1:bin:/bin:/sbin/nologin

#daemon:x:2:2:daemon:/sbin:/sbin/nologin

#adm:x:3:4:adm:/var/adm:/sbin/nologin

#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@oldboy oldboy]#

17、 三剑客之awk

是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk做大的优势。awk常用于取列。

												

开发中常用linux命令的更多相关文章

  1. 工作中常用Linux命令--服务器运维

    工作中常用Linux命令--服务器运维 lsof查看端口使用情况 lsof -i:8080更多lsof命令使用说明:http://www.cnblogs.com/peida/archive/2013/ ...

  2. linux开发中常用的命令及技巧(连载)

    1.在内核或uboot目录下搜索相关内容/文件名时:grep "USB" * -nR find -name "*USB*" 2.查看系统中设备 cat  /pr ...

  3. SecureCRT中常用linux命令 -《转载》

    常用命令: 一.ls 只列出文件名 (相当于dir,dir也可以使用) -A:列出所有文件,包含隐藏文 件. -l:列表形式,包含文件的绝大部分属性. -R:递归显示. --help:此命令的帮助. ...

  4. Android 开发中常用 ADB 命令总结

    adb 的全称为 Android Debug Bridge,就是起到调试桥的作用.通过 adb 我们可以在 Eclipse 中方便通过 DDMS 来调试 Android 程序,说白了就是 debug ...

  5. 日常开发工作常用linux命令

    :wq 保存退出 :q! 强制退出 vi 查看 vim 编辑 rpm -qa|grep jdk 命令查看当前的jdk情况 yum -y remove java java-1.7.0-openjdk* ...

  6. 工作中常用Linux命令

    建立软链接  ln -s      例:ln -s b a 解释:把文件夹a和文件夹b关联起来,访问文件夹a,实际访问的是问价夹b 删除软连接  rm -rf a  直接删掉a文件夹跟a和b的软连接. ...

  7. 深度学习之常用linux命令总结

    深度学习中常用linux命令总结 1.创建文件夹 mkdir 文件名2.删除文件 rm -d 目录名 #删除一个空目录 rmdir 目录名 #删除一个空目录 rm -r 目录名 #删除一个非空目录 r ...

  8. Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令

    Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Andr ...

  9. 常用Linux命令小结

    常用Linux命令小结 Linux下有很多常用的很有用的命令,这种命令用的多了就熟了,对于我来说,如果长时间没有用的话,就容易忘记.当然,可以到时候用man命令查看帮助,但是,到时候查找的话未免有些临 ...

随机推荐

  1. Java8 新特性 Stream() API

    新特性里面为什么要加入流Steam() 集合是Java中使用最多的API,几乎每一个Java程序都会制造和处理集合.集合对于很多程序都是必须的,但是如果一个集合进行,分组,排序,筛选,过滤...这些操 ...

  2. 集合类源码(四)Collection之BlockingQueue(ArrayBlockingQueue, DelayQueue, LinkedBlockingQueue)

    ArrayBlockingQueue 功能 全名 public class ArrayBlockingQueue<E> extends AbstractQueue<E> imp ...

  3. 常见的Redis面试"刁难"问题,值得一读

    Redis有哪些数据结构? 字符串String.字典Hash.列表List.集合Set.有序集合SortedSet. 如果你是Redis中高级用户,还需要加上下面几种数据结构HyperLogLog.G ...

  4. java获取调用当前方法的方法名和行数

    java获取调用当前方法的方法名和行数String className = Thread.currentThread().getStackTrace()[2].getClassName();//调用的 ...

  5. Blend 设置一个圆形的按钮

    原文:Blend 设置一个圆形的按钮 1)画一个圆形 右击构成控件 3)选择button  当然如果想做成别的控件 都可以 4)我们有了一个button 5)做动画 6)定义触发器 7)定义事件 效果

  6. ASP.NET Core 3.0 WebApi 系列【1】创建ASP.NET Core WebApi 项目

    目录 写在前面 一.运行环境 二.项目搭建 三.测试 API 四.基础知识 五.写在最后 写在前面 C#语言可以创建RESTful服务,被称作WebApi.在这里总结学习使用支持创建.读取.更新.删除 ...

  7. git操作:撤销更改的文件

    在没有git add之前: #撤销所有更改 git checkout . #撤销指定文件的更改 git checkout -- myfile.txt 在git add之后: git reset HEA ...

  8. 【转载】 C#中ArrayList使用ToArray方法转换为数组

    在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,可以使用ArrayList中的ToArray方法将ArrayList集合对象转换为数组,ToArray方法有2个重载形式,其一为vi ...

  9. Composer更新与清除缓存命令

    一.更新命令 composer self-update --preview 二.清除缓存命令 composer clearcache 操作如下图所示:

  10. set实现交集,并集,差集

    let a = new Set([1, 2, 3]); let b = new Set([4, 3, 2]); // 并集 let union = new Set([...a, ...b]); // ...