clear命令
clear 命令用于清除终端屏幕上现有的文字内容,将之上滚:
wget命令
wget:从指定的URL下载文件。wget非常稳定,它在带宽很窄的情况下和不稳定网络中有很强的适应性,如果是由于网络的原因下载失败,wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次联到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。
语法:wget(选项)(URL) 选项: -a<日志文件>:在指定的日志文件中记录资料的执行过程; -A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔; -b:进行后台的方式运行wget; -B<连接地址>:设置参考的连接地址的基地地址; -c:继续执行上次终端的任务; -C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on; -d:调试模式运行指令; -D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔; -e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令; -h:显示指令帮助信息; -i<文件>:从指定文件获取要下载的URL地址; -l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔; -L:仅顺着关联的连接; -r:递归下载方式; -nc:文件存在时,下载文件不覆盖原有文件; -nv:下载时只显示更新和出错信息,不显示指令的详细执行过程; -q:不显示指令执行过程; -nh:不查询主机名称; -v:显示详细执行过程; -V:显示版本信息; --passive-ftp:使用被动模式PASV连接FTP服务器; --follow-ftp:从HTML文件中下载FTP连接文件。 例子:下载并以不同的文件名保存 wget -O wordpress.zip http://www.linuxde.net/download.aspx?id=1080
which命令
which:查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
语法:which(选项)(命令) 选项: -n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名; -p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径; -w:指定输出时栏位的宽度; -V:显示版本信息。 例子:which pwd
ln命令
ln:用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。
语法:ln(选项)(参数) 选项: -b或--backup:删除,覆盖目标文件之前的备份; -d或-F或——directory:建立目录的硬连接; -f或——force:强行建立文件或目录的连接,不论文件或目录是否存在; -i或——interactive:覆盖既有文件之前先询问用户; -n或--no-dereference:把符号连接的目的目录视为一般文件; -s或——symbolic:对源文件建立符号连接,而非硬连接; -S<字尾备份字符串>或--suffix=<字尾备份字符串>:用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它; -v或——verbose:显示指令执行过程; -V<备份方式>或--version-control=<备份方式>:用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串; --help:在线帮助; --version:显示版本信息。 参数: 源文件:指定连接的源文件。如果使用-s选项创建符号连接,则“源文件”可以是文件或者目录。创建硬连接时,则“源文件”参数只能是文件; 目标文件:指定源文件的目标连接文件。 例子:将目录/usr/mengqc/mub1下的文件m2.c链接到目录/usr/liu下的文件a2.c cd /usr/mengqc ln /mub1/m2.c /usr/liu/a2.c
whereis命令
whereis:用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。 但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。
语法:whereis(选项)(参数) 选项: -b:只查找二进制文件; -B<目录>:只在设置的目录下查找二进制文件; -f:不显示文件名前的路径名称; -m:只查找说明文件; -M<目录>:只在设置的目录下查找说明文件; -s:只查找原始代码文件; -S<目录>只在设置的目录下查找原始代码文件; -u:查找不包含指定类型的文件。 参数: 指令名:要查找的二进制程序、源文件和man手册页的指令名。 实例:将相关的文件都查找出来 whereis tomcat
locate命令和slocate命令
locate命令和slocate命令都用来查找文件或目录。
locate命令其实是find -name
的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb
,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
语法:locate/slocate(选项)(参数) 选项: -i:忽略大小写 -d<目录>或--database=<目录>:指定数据库所在的目录; -u:更新slocate数据库; --help:显示帮助; --version:显示版本信息。 参数: 查找字符串:要查找的文件名中含有的字符串。 实例:搜索用户主目录下,所有以m开头的文件,并且忽略大小写: locate -i ~/m
du命令
du:查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。
语法:du [选项][文件] 选项: -a或-all 显示目录中个别文件的大小。 -b或-bytes 显示目录或文件大小时,以byte为单位。 -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。 -k或--kilobytes 以KB(1024bytes)为单位输出。 -m或--megabytes 以MB为单位输出。 -s或--summarize 仅显示总计,只列出最后加总的值。 -h或--human-readable 以K,M,G为单位,提高信息的可读性。 -x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。 -L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。 -S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。 -X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。 --exclude=<目录或文件> 略过指定的目录或文件。 -D或--dereference-args 显示指定符号链接的源文件大小。 -H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。 -l或--count-links 重复计算硬件链接的文件。 实例:显示目录或者文件所占空间: [root@localhost test]# du
diff命令
diff:比较给定的两个文件的不同。如果使用“-”代替“文件”参数,则要比较的内容将来自标准输入。diff命令是以逐行的方式,比较文本文件的异同处。如果该命令指定进行目录的比较,则将会比较该目录中具有相同文件名的文件,而不会对其子目录文件进行任何比较操作。
语法:diff(选项)(参数) 选项: -<行数>:指定要显示多少行的文本。此参数必须与-c或-u参数一并使用; -a或——text:diff预设只会逐行比较文本文件; -b或--ignore-space-change:不检查空格字符的不同; -B或--ignore-blank-lines:不检查空白行; -c:显示全部内容,并标出不同之处; -C<行数>或--context<行数>:与执行“-c-<行数>”指令相同; -d或——minimal:使用不同的演算法,以小的单位来做比较; -D<巨集名称>或ifdef<巨集名称>:此参数的输出格式可用于前置处理器巨集; -e或——ed:此参数的输出格式可用于ed的script文件; -f或-forward-ed:输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处; -H或--speed-large-files:比较大文件时,可加快速度; -l<字符或字符串>或--ignore-matching-lines<字符或字符串>:若两个文件在某几行有所不同,而之际航同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异; -i或--ignore-case:不检查大小写的不同; -l或——paginate:将结果交由pr程序来分页; -n或——rcs:将比较结果以RCS的格式来显示; -N或--new-file:在比较目录时,若文件A仅出现在某个目录中,预设会显示:Only in目录,文件A 若使用-N参数,则diff会将文件A 与一个空白的文件比较; -p:若比较的文件为C语言的程序码文件时,显示差异所在的函数名称; -P或--unidirectional-new-file:与-N类似,但只有当第二个目录包含了第一个目录所没有的文件时,才会将这个文件与空白的文件做比较; -q或--brief:仅显示有无差异,不显示详细的信息; -r或——recursive:比较子目录中的文件; -s或--report-identical-files:若没有发现任何差异,仍然显示信息; -S<文件>或--starting-file<文件>:在比较目录时,从指定的文件开始比较; -t或--expand-tabs:在输出时,将tab字符展开; -T或--initial-tab:在每行前面加上tab字符以便对齐; -u,-U<列数>或--unified=<列数>:以合并的方式来显示文件内容的不同; -v或——version:显示版本信息; -w或--ignore-all-space:忽略全部的空格字符; -W<宽度>或--width<宽度>:在使用-y参数时,指定栏宽; -x<文件名或目录>或--exclude<文件名或目录>:不比较选项中所指定的文件或目录; -X<文件>或--exclude-from<文件>;您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件; -y或--side-by-side:以并列的方式显示文件的异同之处; --help:显示帮助; --left-column:在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容; --suppress-common-lines:在使用-y参数时,仅显示不同之处。 参数: 文件1:指定要比较的第一个文件; 文件2:指定要比较的第二个文件。 例子:将目录/usr/li下的文件"test.txt"与当前目录下的文件"test.txt"进行比较,输入如下命令: diff /usr/li test.txt #使用diff指令对文件进行比较
free命令
free:显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。
语法:free(选项) 选项: -b:以Byte为单位显示内存使用情况; -k:以KB为单位显示内存使用情况; -m:以MB为单位显示内存使用情况; -o:不显示缓冲区调节列; -s<间隔秒数>:持续观察内存使用状况; -t:显示内存总和列; -V:显示版本信息。 实例: free -m total used free shared buffers cached Mem: 2016 1973 42 0 163 1497 -/+ buffers/cache: 312 1703 Swap: 4094 0 4094 第一部分Mem行解释: total:内存总数; used:已经使用的内存数; free:空闲的内存数; shared:当前已经废弃不用; buffers Buffer:缓存内存数; cached Page:缓存内存数。 第二部分(-/+ buffers/cache)解释: (-buffers/cache) used内存数:第一部分Mem行中的 used – buffers – cached (+buffers/cache) free内存数: 第一部分Mem行中的 free + buffers + cached 第三部分是指交换分区。
df命令
df:显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:df(选项)(文件) 选项: -a或--all:包含全部的文件系统; --block-size=<区块大小>:以指定的区块大小来显示区块数目; -h或--human-readable:以可读性较高的方式来显示信息; -H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes; -i或--inodes:显示inode的信息; -k或--kilobytes:指定区块大小为1024字节; -l或--local:仅显示本地端的文件系统; -m或--megabytes:指定区块大小为1048576字节; --no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值; -P或--portability:使用POSIX的输出格式; --sync:在取得磁盘使用信息前,先执行sync指令; -t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息; -T或--print-type:显示文件系统的类型; -x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息; --help:显示帮助; --version:显示版本信息。 实例: df -h
输出输入重定向
>:覆盖输出
>>:追加输出
2>:重定向错误输出
2>>;追加错误输出
&>;重定向标追输出或错误输出至同一个文件(重定向所有输出)
<:输入重定向
cat < /etc/fstab
<<:Here Document 此处文档
cat << END
aaa
END
cat >> a.txt << EOF
aaa
bbb
ccc
EOF
管道
管道:前一个命令的输出,作为后一个命令的输入
命令1 | 命令1 | 。。。。 # 命令1的输出当作命令2的输入
文件查找:grep,egrep,fgrep
grep:根据模式,搜索文本,并将符合模式的文本行显示出来。
-i:忽略大小写 -V:反向查找,显示没有被模式匹配到的行 -o:只显示被模式匹配到的字符串 --color或--colour:添加颜色 -E:使用扩展正则表达式
正则表达式
元字符:
.:任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
匹配次数(贪婪模式):
*:匹配其前面的字符仁意次数 a,b,ab,aab,acb,adb a*b 匹配出:ab aab .*:任意长度的任意字符 ?:匹配其前面的字符1次或0次 {m,n}:匹配其前面的字符至少m次,至多n次 {1,} {0,10}
位置锚定:
^:锚定行首,此字符后面的任意内容必须出现在行首 $:锚定行尾,此字符后面的任意内容必须出现在行尾 ^$:空白行 <或:其后面的任意字符必须作为单词首部出现 >或:其前面的任意字符必须作为单词尾部出现
分组:()
(ab)* 后向引用 1:引用第一个左括号以及与之对应的右括号所包括的所有内容 例:a.txt 文件里 有hellohello,hello字符出匹配出hellohello grep --color "(hello)1" a.txt # 1就是()里的内容 2: 3:
sed(流编辑器)基本用法:
语法:sed [选项] "地址命令" 文件1 文件2 ... 选项: -n:静默模式,不再默认显示模式空间中的内容 -i:直接修改原文件 -e:可以同时执行多个脚本 -e SCRIPT -e SCRIPT -e SCRIPT -f:多个脚本写在一个文件里,指定文件 -f /PATH/TO/SED_SCRIPT -r:表示使用扩展正则表达式
1. 地址:
1. 起始行,结束行 比如1,100 第一行到100行 $:最后一行 2. /RegExp/:模式需要加// /^root/ 3. /pattern1/,/pattern2/ 第一次被/pattern1/匹配到的行开始,到第二次被/pattern2/匹配的行结束。 4. LineNumber 指定的行 5. StartLine,+N 从StartLine开始,向后的n行
2. 命令:
d:删除符合条件的行 p:显示符合条件的行 a:a string:在指定的行后面追加新行,内容为string :换行 i:i string:在指定的行前面添加新行,内容为string r:r file:将指定的文件内容添加至符合条件的行处 w:w file:将指定范围内的内容另存至指定的文件中; s:s/pattern/string/修饰符:将/pattern/ s///:s###,s@@@, #s分隔符,可以中#,@ &:表示引用模式匹配到的整个串 例:把aa.txt 文件里的 like,love 替换成 liker,lover。 sed 's#l..e#&r#g' aa.txt 例2:后向引用 把aa.txt 文件里的 hello,like,love 替换成 hello,Like,Love sed 's#l(..e)#L1#g' aa.txt
3. 查找的字符串,替换成string字符串,默认只替换每行中第一次被我时匹配到的字符
加修饰符:
g:全局替换
i:忽略字符大小写
逻辑运算:与(&)、或(|)、非(!)、异或
1:真
0:假
与:两者都为真,结果才为真 1 & 0 = 0 0 & 1 = 0 0 & 0 = 0 1 & 1 = 1 或:一个为真,结果为真 1 & 0 = 1 0 & 1 = 1 0 & 0 = 0 非:取返 !假 = 真 !真 = 假 异或:操作数相同则为0,否则为1 1 异或 1 = 假 0 异或 0 = 假 1 异或 0 = 真 0 异或 1 = 真