Linux 命令2

核能气质少年 提交于 2019-12-21 02:51:27

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\}

位置锚定:

^:锚定行首,此字符后面的任意内容必须出现在行首
$:锚定行尾,此字符后面的任意内容必须出现在行尾
^$:空白行
\<或\b:其后面的任意字符必须作为单词首部出现
\>或\b:其前面的任意字符必须作为单词尾部出现

分组:\(\)

\(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
    \n:换行
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\)#L\1#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 = 真

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!