1.
ls [选项] [目录名]
-a -all列出目录下所有文件,包括.开头的隐藏文件
-l 除文件名之外 还将文件的权限 所有者 文件大小等信息
-d -directory将目录像文件一样显示 而不是显示其下的文件
-h -human-readable 以容易理解的格式列出文件大小(1k 2M 3G)
-t 以文件修改时间排序
ls -alh /home 表示以容易理解的格式列出/home目录中所有的文件目录大小
ls -l s* 列出当前目录中s开头的文件目录的详细内容
2
①mkdir命令:mkdir 命令用来创建指定名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录
参数有-m (设定目录权限) -p(目录路径,一次建立多个目录) -v(每次创建目录都显示信息)
mkdir -p zhou/test 创建zhou目录 目录下又创建test目录
mkdir -m 777 zhou 创建权限为777 的目录
mkdir -vp zhou/test 回车之后会提示创建了zhou目录 创建了zhou/test目录
②rm命令:删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
-f 忽略不存在的文件 从不给出提示
-i进行交互式删除
-r指示rm将参数中列出的 全部目录和子目录均递归地删除
-v详细显示进行的步骤
例子:rm -i *.txt 删除后缀名为.txt的所有 删除前逐一询问
③mv命令 移动文件或者更改文件名
-b 若需覆盖文件 ,则覆盖前先备份
-f 如果目标文件已经存在 不会询问直接覆盖
-i 如果目标文件已经存在 会询问是否覆盖
-u 如果目标文件已经存在 且源文件比较新 才会更新
-t 用于移动多个源文件到一个目录的情况,此时目标目录在前 源文件在后
例子:
mv wqq.txt WQQ.txt 将文件wqq.txt重命名为WQQ.txt
mv WQQ.txt test 将文件WQQ.txt移动到test目录下(目录必须存在,否则执行重命名)
④cp命令 复制文件或者目录
-t target指定目标目录
-i 覆盖前询问 使前面的-n选项失效
-n 不要覆盖已存在的文件 使前面的-i选项失效
-s 对源文件建立符号链接 而不是复制文件
-f 强制复制文件或目录 不论目的文件或目录是否已经存在
例子:对文件wqq.txt建立一个符号链接WQQ.txt
cp -i test1/* test2 将test1目录下的所有文件复制到test2目录下,覆盖前询问
⑤cat命令 -n 加编号 ,编号从1开始 -s有连续两行以上的空白行就代换为一行
例子:cat -n a/aa.txt > test.txt aa.txt文件内容加上行号之后输入到test.txt文件中
⑥nl命令 计算行号与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能
参数 -b a 不论是否为空行 同样列出行号 类似cat -n
-b t 若有空行 空行不列出行号(默认值)
⑦more 功能类似 cat ,cat 命令是将整个文件的内容从上到下显示在屏幕上。 more 命令会一页一页的显示;以及搜寻字符串的功能
⑧less命令 也是对文件或其它输出进行分页显示的工具
/字符串 向下搜索字符串
?字符串 向上搜索字符串
less 与 cat 和 more 的区别:
cat 命令功能:用于显示整个文件的内容,单独使用没有翻页功能。因此经常和 more 命令搭配使用,cat 命令还有就是可以将数个文件合并成一个文件的功能。
more 命令功能:让画面在显示满一页时暂停,此时可按空格健继续显示下一个画面,或按 q 键停止显示。
less 命令功能:less 命令的用法与 more 命令类似,也可以用来浏览超过一页的文件。所不同的是 less 命令除了可以按空格键向下显示文件外,还可以利用上下键来卷动文件。当要结束浏览时,只要在 less 命令的提示符“:”下按 q 键即可。
其实这三个命令除了 cat 命令有合并文件的功能,其余功能上相近,只是从浏览习惯和显示方式上有所不同。
tail命令:用于显示指定文件末尾内容,常用查看日志文件
-f :循环读取 -q不显示处理信息 -v显示详细的处理信息 -c显示字节数 -n显示行数
例子: tail -n 5 wqq.txt 显示最后5行内容
3.which whereis locate
①which :在PATH变量指定的路径中搜索可执行文件的所在位置,一般用来 确认系统中是否安装了指定的软件
格式:which 可执行文件名称 例子 which gcc确认是否安装了gcc 返回gcc程序的路径
②whereis:主要用于定位可执行文件,源代码文件,帮助文件在文件系统中的 位置 whereis命令还具有搜索源代码,指定备用搜索路径和搜索不寻常项的能力
-b定位可执行文件 -m定位帮助文件 -s定位源代码文件 -u搜索默认路径下除可执行文件,源代码文件,帮助文件以外的其他文件
-B指定搜索可执行文件的路径 -M指定搜索帮助文件的路径 -S指定搜索源代码文件的路径
例子:whereis -b gcc 搜索gcc可执行文件的路径
whereis -m gcc搜索gcc帮助文件的路径
whereis -s gcc搜索gcc源代码路径
③locate命令 和whereis相似 但是可以获取更全面的搜索结果 ,也可匹配查找文本
locate [选项][搜索字符串]
-q不会显示任何错误信息 -n至多显示n个输出 -r使用正则做寻找条件 -V显示版本信息
例子:locate /etc/sh 搜索etc目录下所有以sh开头的文件
locate /etc/*lou* 搜索etc目录下文件名包含lou的文件
4 ,find xargs
①find [选项] [搜索路径][表达式]
默认路径是当前目录 默认表达式-print
-print 将匹配的文件输出到标准输出
-exec 对匹配的文件执行该参数所给出的shell命令
-name按照文件名查找文件
-type查找某一类型的文件
-prune 使find命令不在当前指定的目录中查找,如果同时使用-depth,那么-prune将被忽略
例子:find . -print 打印当前目录下的文件目录列表
find . -name "*.txt" -print 打印当前目录下所有以.txt结尾的文件名
find . ! -name "*.txt" 打印当前目录下所有不以.txt结尾的文件名
find . -name "*.php" -exec ls -l {} \; 找到当前目录下所有的php文件 并显示详细信息(-exec是find对找到的文件执行的动作)
find . -name "*.c" -exec cat {} \;>all.c 先查到所有的c语言代码文件,再将这些文件内容写入到一个文件中 下载该文件;
5.wc命令(word count) 主要用来显示文件所包含的行,字,字节数
-c 统计字节数 -l 统计行数 -m统计字符数,不能与-c一起使用 -w统计字数
例子 wc -c wqq.txt
6.
①grep [选项] pattern [files]
-c 计算找到'搜寻字符串'(即pattern)的次数
-i忽略大小写不同 -n 输出行号 -v反向选择,打印不匹配的行 -r递归搜索 --color=auto 将找到关键词的部分加上颜色显示
例子:grep "root" /etc/passwd --color=auto 将/etc/passwd 文件中出现的root的行取出来 关键词加上颜色
grep -v "root" /etc/passwd | gerp -v "nologin" 将/etc/passwd文件中没有出现root和nologin的行取出来
grep -r "main()" 在当前目录下递归搜索文件中包含main()的文件 经常用于查找某些函数位于哪些源代码文件中
②正则 ^ $ . [] {} - ? * + () | \
^ 起始行标记 ^wqq匹配以wqq起始的行
$ 行尾标记 $wqq 匹配以wqq结尾的行
. 匹配任意一个字符 a.c匹配abc 或acc,但不匹配abbc
[] 匹配包含在[字符]之中的任意一个字符 ab[cd]匹配abc或者abd
[^]匹配除[^字符]之外的任意一个字符 1[^01]匹配12或13,但不匹配10 11
[-]匹配[]指定范围内的任意一个字符 [1-5] 匹配1-5的任意一个数字
{n}匹配之前的项n次 [0-9]{2} 匹配任意一个两位数,相当于[0-9][0-9]
{n,}之前的项至少需要匹配n次,[0-9]{2} 匹配任意一个两位或者更多位的数字
{n,m}指定之前的项需要匹配的最小和最大次数 [0-9]{2,5} 匹配从两位数到五位数之间的任意一个数字
?匹配之前的项1次或者0次 ,shiy?an匹配shiyan或shian
*匹配之前的项0次或者多次 ,shiy*an 匹配shian,shiyan,shiyyan
+匹配之前的项一次或多次,shiy+an 匹配shiyan shiyyan
()创建一个用于匹配的子串, ma(in)? 配ma 或者main
| 匹配|两边任意一项 Dec(1st | 2nd) 匹配Dec 1st 或者Dec 2nd
\将上面的特殊字符进行转义 a\+b匹配a+b
7
①cut
如果一行数据包含多个字段(多列) cut命令可以提取其中的一列或者多列
cut [选项] [文件名]
-b以字节为单位进行分割 -c以字符为单位进行分割 -d自定义分隔符 默认为制表符 -f自定义字段 --complement抽取整个文本行
例子 : cut -f 1,3 -d ' ' wqq.txt 取出wqq.txt文件中的第一列和第三列(因为文件中是空格分隔每列的,而cut命令默认分隔符是tab,所以要加 -d ' ')
cut -f 1-3 -d ' ' wqq.txt 取出wqq.txt文件中的前三列
cut -f 1 -d ' ' wqq.txt --complement 取出wqq.txt文件中除第一列的其他列
给任意一字符串str 取出最后一个字符 :
②paste 与cut相反 它会添加一个或多个文本列到文件中,通过读取多个文件 把每个文件中的字段整合成单个文本流,输入到标准输出
paste[选项] [文件名]
将俩文件的内容按列拼接 指定分隔符为':'
将俩文件中的内容各自拼接成一行:
③tr命令 常被用来更改字符 tr只能通过stdin(标准输入) 而无法通过命令行参数来接受输入
tr[选项] SET1 SET2
-d 删除匹配SET1的内容 并不做替换
将输入的字符大写转化为小写; 将输入的字符中的数字删除
8 sort uniq join 后两个只能用于排过序的数据
9 comm 只能用于排过序的数据 逐行比较已经排序的两个文件。显示结果包括 3 列:第 1 列为只在第一个文件中找到的行,第 2 列为只在第二个文件中找到的行,第 3 列为两个文件的共有行
diff 检测文件之间的差异 -c显示全部内文 并标出不同之处
+ 添加行 这一行将会出现在第二个文件内 而不是第一个文件内
- 删除行 这一行将会出现在第一个文件中 而不是第二个文件内
!更该行 将会显示某个文件行的两个版本,每个版本会出现在更改组的各自部分
patch被用来把更改应用到文本文件中
10
①df命令(disk free) 用来检查linux服务器的文件系统的磁盘空间占用情况,可以利用该命令来获取硬盘被占用了多少空间及剩余空间
df [选项] 文件
-a全部文件系统的列表 -h方便阅读方式显示 -i显示inode信息 -T文件系统类型
-t<文件系统类型>只显示选定文件系统的磁盘信息 -x<文件系统类型> 不显示选定文件系统的磁盘信息
②du命令(disk usage) 与df不同的是 du是对文件和目录磁盘使用的空间的查看
du [选项] 文件
-a 显示目录中个别文件的大小 -b显示大小时,以byte为单位 -c除了显示个别目录或者文件的大小,同时显示所有目录或文件的总和 -k 以KB(1024bytes)为单位输出 -m 以MB单位 -s 仅显示总计 只列出最后加总的值 -h以K,M,G为单位,方便阅读
例子:du -h wqq1.txt
显示几个文件或者目录各自占用的磁盘空间的大小,并且统计总和:
du -ch wqq1.txt wqq2.txt
按照空间大小逆序显示:
③time命令 常用于测量一个命令的运行时间 (实际运行时间 ,用户态使用时间,内核态使用时间)
实际运行时间:从command命令开始执行到运行终止的时间
用户态使用时间:命令执行完成花费的用户cpu时间,即命令在用户态中执行时间总和
内核态使用时间:命令执行完成花费的系统cpu时间,即命令在核心态中执行时间总和
例子:测量date命令运行的时间:(户 CPU 时间和系统 CPU 时间之和为 CPU 时间,即命令占用 CPU 执行的时间总和。实际时间要大于 CPU 时间,因为 Linux 是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务)
例子:将time命令的执行结果保存到文件中:
time 是 shell 的关键字,shell 做了特殊处理,它会把 time 命令后面的命令行作为一个整体来进行处理,在重定向时,实际上是针对后面的命令来的,time 命令本身的输出并不会被重定向的。比如,执行 time date 2>3.txt,3.txt 内容为空。另外,time 命令的输出信息是打印在标准错误输出上的
11 新建一个固定大小的文件
dd if=/dev/zero of=zeroFile bs=1K count=1
12,
13.