1.who命令
---将列出所有正在使用系统的用户、所用终端名和注册到系统的时间
who who am i---列出使用该命令的当前用户的相关信息
2.echo命令
---用于输出提示信息
3.date命令(可增加选项和参数)
---显示系统当前的日期时间
2016年03月9日 星期二 20:12:51 CST
4.cal命令
$cal 10(---列出公元10年的日历)
$cal 10 2016(---列出2016年10月的日历)
5.clear命令
----清屏命令
6.passwd命令
-----更改密码口令
7.文件类型{
普通文件;(文本文件;数据文件;可执行的二进制文件)
目录文件;
设备文件;
符号链接文件;(存放的数据是文件系统通向文件的路径)
}
8.cat命令(文件显示命令)
$cat m1 m2 (---同时显示文件m1和m2的内容)
(功能)-----1.连接文件并打印到标准输出设备上(经常用来显示文件的内容)
-----2.连接两个或多个文件,如cat f1 f2>f3(合并f1,f2的文件内容,放入f3中)
----- -b(从1开始对所有非空输出行编号)
----- -n(从1开始对所有输出行编号)
----- -s(将多个相邻的空行合并成一个空行)
----Ctrl+S (停止滚屏)
----Ctrl+Q(恢复滚屏)
9.more命令(显示文件内容,每次只显示一屏)(P42)
(功能)---每次只显示一屏文本,且在屏幕底部出现提示信息-->给出已显示文件的百分比 (--More--(xx%))
-------1.按space键:显示下一屏内容
-------2.按enter键:显示文件的下一行内容
-------3.按斜线符(/)键,然后输入一个模式:可以在文本中寻找下一个相匹配的模式
-------4.按H键:显示帮助屏
-------5.按B键:显示文件的上一屏内容
-------6.按Q键:退出More命令
10.less命令(P43)
-----与more命令的区别:less允许用户向后或向前浏览文件,more只能向前浏览
------1.PageUp键向上翻页,PageDown向下翻页
------2.按Q键:退出less命令
11.head命令(显示指定文件的开头若干行,默认行数显示值为10)(P44)
------1.-c:显示每个文件的前面N字节
------2.-q:不显示给定文件的标题
------3.-v:始终显示给定文件的标题
12.tail命令(显示指定文件的结尾若干行,默认行数显示值为10)(P44)
-----1.-c:输出最后N字节
-----2.-f:当文件增长时输出附加的数据
-----2.-n:输出最后N行,而不是默认的10行
-----2.-q:不输出包含给定文件的标题
-----2.-v:始终输出包含给定文件的标题
$ tail +20 mfile //(显示文件的内容,从第20行到文件末尾)
13.ls命令(显示目录)
-----1.-a:显示所有文件及目录
-----2.-c:按列输出,纵向排列
-----3.-x:按列输出,横向排列
-----4.-l:除文件名外,也将其文件状态大小等详细信息列出
-----5.-t:按文件建立时间先后次序输出
-----6.-A:同-a。但不列出“.”(当前目录)和”..”(父目录)
-----7.-X:按扩展名排序显示
-----8.-R:递归显示下层子目录
-----9.-i:索引节点数
14.touch命令(创建空文件或修改文件的时间戳属性)
功能:---------1.修改指定文件的时间标签
-------------------2.创建一个空文件
----1.-a:仅改变指定文件的存取时间
----2.-c:不创建任何文件
----3.-m:仅改变指定文件的修改时间
----4.-t STAMP:使用STAMP指定的时间标签
//匹配、排序以及显示指定内容的命令(15.16.17)(page45)
15.grep命令(在文本文件中查找指定模式的词或短语,并在标准输出设备上显示给定字符串模式的所有行)
------1.-E:将查找模式解释成扩展的正则表达式
------2.-F:将查找模式解释成单纯的字符串
------3.-i:匹配时不区分字母的大小写
------4.-c:只显示文件中包含匹配字符串的行的总数
grep [关键字][目标文件]
16.sort命令(对文本文件的各行进行排序)
17.uniq命令()
18.wc命令(文本统计命令)
wc [选项]文件
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
-L 打印最长行的长度。
-help 显示帮助信息
--version 显示版本信息
//比较文件内容的命令
比较:
1. -eq 等于,如:if [ "$a" -eq "$b" ]
2. -ne 不等于,如:if [ "$a" -ne "$b" ]
3. -gt 大于,如:if [ "$a" -gt "$b" ]
4. -ge 大于等于,如:if [ "$a" -ge "$b" ]
5. -lt 小于,如:if [ "$a" -lt "$b" ]
6. -le 小于等于,如:if [ "$a" -le "$b" ]
7. < 小于(需要双括号),如:(("$a" < "$b"))
8. <= 小于等于(需要双括号),如:(("$a" <= "$b"))
9. > 大于(需要双括号),如:(("$a" > "$b"))
10. >= 大于等于(需要双括号),如:(("$a" >= "$b"))
18.comm命令(对两个已排序文件进行逐行比较)
19.mkdir命令(创建目录)
-----1.mkdir -p /tmp/dir1/dir2 (创建嵌套目录,如在当前tmp目录下创建dir1目录,同时在dir1下创建dir2目录)
20.rmdir命令(删除空目录,比如不能rmdir dir1,因为dir1里面还有dir2,dir1不为空目录)
-----
21.nano命令(打开文件)如: nano ./hello.sh
22.su命令(切换用户)
23.chmod命令(修改文件权限) 如:chmod 700 hello.sh(700对应为:111000000)
(111000000代表:对于文件拥有者:rwx:(可读可写可执行)
对于文件从属的用户组:---:不可读不可写不可执行
对于其他用户:---:不可读不可写不可执行)
24.chown命令(修改文件的拥有者和从属用户组属性)
如:#chomn nbcc:stu hello.sh
(代表:将hello.sh文件的拥有者和从属用户组分别改成nbcc用户和stu用户组)
--若只修改文件拥有者,则冒号后面可以省略,如:chown stu hello.sh
--若只修改从属用户组,则冒号前面可以省略,如:chown :nbcc hello.sh
25.cp命令(拷贝目录)
--- cp [要拷贝的文件|文件列表|目的文件名|目的目录]
--- cp -r 拷贝整个目录
--- \cp -f 强制覆盖所有同名文件
--- cp -p保证目录具有原来的属性(文件拥有者等等)--(但用此-p命令需要保证命令有写权限)
--- -i(覆盖前询问)
--- -n(不覆盖已存在文件)
--- -R(递归复制目录及其子目录的所有内容)
--- -s(只创建符号链接而不复制文件)
--- -l(只创建硬连接文件而不复制文件)
26.mv命令(移动目录或将文件重命名)
--- mv [要移动的文件|文件列表|目的文件名|目的目录]
--- mv -f 强制覆盖所有同名文件(覆盖前不询问)
---- mv -i(覆盖前询问)
---- mv -n(不覆盖已存在文件)
--- 没有-R选项:mv可以直接移动目录
27.rm命令(删除文件)
--- rm [要删除的文件|文件列表|目录]
--- rm -r
--- rm -r
--- rm -R 递归删除目录及其内容
--- rm -i 删除前需要确认
--- rm -f 强制删除文件,不询问直接删除目录
28.ln 命令(创建链接文件)
--- ln -s [l链接指向的文件|链接文件名]
--- ln (创建硬链接文件,不能跨硬盘分区建立硬链接)
29.tar -cf 命令(打包文件,不压缩文件)
-c:(创建打包文件,强烈推荐.tar作为后缀名)
-f:(指定要创建的打包文件名)
---- tar -cf[打包文件名][要打包的文件/列表]
---- tar -tf(列出打包文件中的所有文件名)
-----删除打包文件下的某一文件用delete
如:tar -f ./samplefile.tar --delete tmp/file05
---- -A 合并两个打包文件
如:tar -f ./samplefile01.tar -A ./samplefile.tar (把 ./samplefile.tar 这个打包文件合并到 ./samplefile01.tar 中)
--- -r向打包文件中添加新文件
如:tar -f ./samplefile.tar -r ~/fileA.txt
--- tar -xf ./samplefile.tar 解包 ./samplefile.tar 文件
如:tar -xf ./samplefile.tar -C ./samplefile (其中-C来制定要解包目录)
30.gzip命令(压缩命令,不打包文件)
如:gzip ./samplefile01.tar
---- gzip -d (解压文件)
如:gzip -d ./samplefile01.tar.gz
1.2.3.4.5.6.7.8.9为压缩比(默认为-6)
--- -1:最高压缩比
--- -9:最低压缩比
如:gzip -9 ./samplefile01.tar.gz
/*gzip 往往和tar 一起使用,先打包再压缩,或者先解压再解包 tar 中的-z
tar -czf 打包压缩
tar -xzf 解压缩解包
*/
//查找命令(---locate(查找较快,功能较弱)
----find(查找较慢,功能强大))
31.locate命令(实际上是从/var/lib/mlocate数据库中查找而非通过遍历硬盘查找,所以查找速度快)
----locate [查找的路径][文件名的关键字]
如:locate .tar
Locate局限性:可能会导致查找到已删除的数据
Or刚刚建立的文件无法查找到
(这是由于mlocate数据库不实时更新造成的,此数据库默认情况下每天更新一次,用updatedb命令手动更新这个数据库)
32.find命令(可以按照用户指定的各种准则来匹配文件)
--- find [查找范围][查找条件][动作]
如:1.按文件名查找(-name): find / -name passwd
2.按文件关键字进行查找:需要用到通配符
3.按文件类型进行查找(-type):find /bin -type l(代表查找bin目录下的所有符号链接文件(l))
4.按文件大小进行查找(-size):
如:find /tmp -size -3K -ls
(在tmp目录下查找比3K字节小的文件)
如:find /tmp -size +100c -ls
(在tmp目录下查找比100字节大的文件)
如:find /tmp -size 10M -ls
(在tmp目录下查找正好为10M大小的文件)
5.按文件的时间属性进行查找(6个):-mtime (单位:天) -mmin (单位:分钟)
-ctime -cmin (与文件属性修改的时间有关)
-atime -amin(与文件被读取或执行的时间有关)
如:find /tmp -mtime -3 -ls
(查找3天之内的内容曾经发生改变的文件)
如:find /tmp -mtime +7 -ls
(查找7天以前内容曾经发生改变的文件)
如:find /tmp -mtime 4 -ls
(查找4天以前的那一天内容曾经发生改变的文件)
6.按文件拥有者和从属用户组的属性进行查找(4个):-user -uid
-group -gid
如:find /tmp -user root
(在tmp目录下查找拥有者是root用户的文件)
如:find /tmp -uid 500
(在tmp目录下查找拥有者用户的uid的是500的文件)
如:find /tmp -group stu
(在tmp目录下查找从属于stu用户组的文件)
如:find /tmp -gid 0
(在tmp目录下查找从属于gid为0的用户组的文件)
7.按文件权限进行查找(-perm,后面接8进制的文件访问权限数字)
如:find /tmp -prem 754
(在tmp目录下查找从754权限的文件)
find命令中: 连用命令查找(与:-a
或:-o
非:!)
使用多个查找条件时,要用圆括号括起来,还有用反斜杠\对圆括号进行转义
-exec 后接shell命令:执行该动作参数等所指制定的shell命令
-ok可以替换-exec,更安全,因为执行每一个命令都会给出提示
33.man命令:帮助文档查看命令
如:man who 查看who命令的帮助文档 (q键退出)
{
NAME:表示这个命令的名称和简单用途的说明
SYNOPSIS:表示命令使用方法概要即命令的一些语法
DESCRIPTION:表示命令详细说明,包括选项和参数的用法
AUTHOR:表示命令的作者
COPYRIGHT:表示命令版权协议
SEE ALSO:表示还可以参考哪些文档
COMMANDS:表示命令在运行的时候,可以在命令中间执行的内部指令
FILES:表示这个命令相关的某些文件
EXAMPLES:表示用法参考样例
}
通配符
* 代表任意长度的字符串(包括长度为0)
? 代表任意的单个字符
[ ] 以下两种用法
[c1-c2] 表示匹配c1-c2字符序列中的任意单一字符(前提是c1-c2是一个有序的字符序 列,如[0-9],[A-Z])
[c1,c2,c3,...,cn]表示匹配中括号之间字符列表中任意一个单一自字符
如:chomd 700 /tmp/script[a,1,x].sh
将tmp目录下名字以script字样打头,紧接a,1或者x中的任意一个字符,以.sh结尾的文件的访问权限改成700
{} 大括号
{string1,string2,...,stringn}
表示匹配string1,string2,直至stringn这N个字符串中的某一个字符串
如:rm -rf /tmp/{script,script}*.sh
删除在当前tmp目录下名字以script或者jiaoben字样打头,以.sh结尾的文件
! 表示取反
重定向:
1.对输入输出进行重定向
2.将命令的输出通过管道连接到另一个命令的输入
3.Bash提供三种标准输出流{1.标准输出流stout 显示来自命令的输出 文件描述符是1
2.标准错误输出流stderr 显示来自命令的错误输出 文件描述符是2 3.标准输入流stdin 向命令提供输入 文件描述符是0
}
输出重定向:将某个命令默认指向stdout或者stderr的输出文本转而指向一个文件,即---使得命令输出到某个指定文件中而不是输出到终端屏幕或者终端窗口中了
如:ls -l /tmp/example/ 1> ./stdout.txt
将ls命令的标准输出重定向到当前目录stdout.txt文件中去(1是文件描述符)
若文件本来没有,则会被创建,
若原本有,则会把原来内容覆盖掉
若不想覆盖原本文件,则用 “>>” (命令输出将添加到文件原来的内容后面)
如: ls -l /tmp/example/ 1>> ./stdout.txt
输入输出命令
read (从键盘上读取数据,然后赋给指定的变量)
echo(输出打印数据)