初学者linux命令大全

1cplinux

(复制文件或目录)git

cp语法:正则表达式

cp 源文件(source) 目标文件(destination)shell

cp [options]suoucebash

例题一:用root身份将主文件夹下的.bashrc复制到/tmp下,并改名为bashrcless

Image.png


例题二:切换目录到/tmp。并将/var/log/wtmp复制到/tmp且查看属性ide


blob.png


例题三:复制/etc/这个目录的全部内容到/tmp下面。工具


blob.png

2rmui

(移除文件和目录)spa

rm[fir]

-f :就是force 的意思,忽略不存在的文件,不会发出警告

-i: 互动模式,在删除前会询问用户是否操做

-r:递归删除。最经常使用在目录的删除,这是很是危险的参数


例题一:将刚才在cp中建立的bashrc删除。


blob.png

3mv

(移动文件于目录,或改名)

mv [-fiu]source destination

mv [options] source1 source2 .........directory

-f:force强制的意思,若是目标文件已经存在,不会询问而直接覆盖

-i: 若目标文件已经存在,就会询问是否覆盖

-u: 如目标文件已经存在,且source 比较新,才会更新


例题一:复制一个文件,建立一个目录,将文件 移动到目录中


blob.png


例题二:将刚才的目录名称重命名为mvtest2,在建立二个文件,在所有移动到/tmp/mvtest2。


blob.png

4cat

[AbEnTv]

例题一:查看/etc/issue,而且加上行号,而后空白行在不加行号


blob.png

5tac

(反向列示)


blob.png

6nl

(添加行号打印)能够将输出的内容自动加上行号


blob.png


可翻页查看的有more 和less

数据的选取有head 和tail


7head(取出前面几行默认十行)

-n 后面接数字,表明几行的意思


head -n 20 /etc/man.config 显示文件的前20行


8tail (取出后面的几行)

tail [-n number]文件

-n 后面接数字

-f 表示持续检测后面所接的文件名,要等到按下CTRL -c 才会中止


例题一:若是我不知道/etc/man.config有几行,却只想要列出100行以后的数据那


blob.png

9mtime:


当该文件的内容数据被修改时,就会更新这个时间,内容数据指的时文件的内容,而不是文件的属性或权限。

10Stime


当该文件的状态改变时,就会更新这个时间,举例来讲,像是权限属性被改变了,就会更新这个时间。

11atime

当文件的内容被取用时,就会更新这个读取时间,举例来讲,咱们用cat读取/etc/man.config,就会更新该文件的atime了。


12touch [-acdmt]文件

-a 仅修改访问时间

-c 仅修改文件的时间,如该文件不存在则不建立新文件

-d 后面能够接欲修改的日期而不用目前的日期,也能够用- -date=“日期或时间”

-m 仅修改mtime

-t 后面能够接想修改的时间而不用目前的时间格式为[YYMMDDhhmm]


例题一:将~/.bashrc 复制成为bashrc,假设彻底复制,检查其日期


blob.png


注意ll 是ls -l 的别名“;”则表明连续命令的执行


例题二;修改文件bashrc,将日期调整为二天前


blob.png


例题三:将bashrc日期改成2007/09/15 2:02


blob.png


在Linux中,常常会遇到很大的文件须要复制粘贴,可是文件太大,须要很长的时间来完成,这个时间就须要咱们用到相似windos中的经常使用工具,压缩了。


在linux中经常使用的压缩命令就是 compress gzip 和bzip2



linux中常见的压缩文件的扩展名:

*.z compress程序压缩的文件

*.gz gzip程序压缩的文件

*.bz2 bzip2程序压缩的文件

*.tar tar程序打包的数据,并无压缩过

*.tar.gz tar程序打包的文件,其中通过gzip的压缩

*.tar.bz2 tar程序打包的文件,其中通过bzip2的压缩




compress[-rcdv]文件或目录 这里是压缩

uncompress文件.Z 这里是解压

compress srcfile 将源文件压缩成压缩包,源文件消失

compress -r 能够连同目录下的文件也同时给予压缩

compress -v srcfile 压缩或解压缩时显示详细信息

compress -c srcfile > dstfile.Z 将源文件压缩成压缩包,源文件保留

compress -d dstfile.Z 将压缩包解压成源文件,压缩包消失

compress -d -c dstfile.Z > srcfile 将压缩包解压成源文件,压缩包保留


**例题解析**:将/etc/man.config复制到/tmp,并压缩。而后解压。


blob.png


注意一点,若是你系统上没有安装compress的话,这个是练习不了的,要安装的话用yum install ncompress 。值得注意的是compress在默认的状况下源文件会不见,压缩文件会被建立,扩展名会是.z。文件的大小从4940降到2873. 最后一步是解压缩。copmress由于不能打开.gz的文件,因此不经常使用或不多用。


gzip能够解开 compress zip gzip等全部的压缩软件,它的压缩文件名为*.gz。

gzip[-cdtv#]文件名

gzip -v 能够显示出源文件和压缩文件的压缩比等信息

gzip- t 用来检验一个压缩文件的一致性,看看文件是否有 误

gzip srcfile 将源文件压缩成压缩包,源文件消失

gzip -c srcfile > dstfile.gz 将源文件压缩成压缩包,源文件保留

gzip -d dstfile.gz 将压缩包解压成源文件,压缩包消失

gzip -d -c dstfile.gz > srcfile 或 zcat dstfile.gz > srcfile 将压缩包解压成源文件, 压缩包保留

gzip -# srcfile (#即1-9,表示压缩比,数字越大压缩比越高,默认为6)

**bzip2和bzcat**

**gzip为了替代compress,那么bzip2则是为了取代gzip,由于它的压缩比更高**。

**bzip2[-cdkzv#]文件名

bzcat 文件名。bz2**


参数:

-c :将压缩过程当中产生的数据输出到屏幕上

-d:加压缩的参数-k:保留源文件,而不会删除原始的文件

-#:计算压缩比的参数


总结:compress gzip 和bzip2都是压缩工具但效果bzip2>gzip>compress.由于它的压缩比最高。


tar 的命令功能就是打包命令,能够将多个目录或者文件打包成为一个大文件,同时还能够经过gzip和bzip的支持,将文件经行压缩,而且windos中也支持tar.zg文件名的解压缩。


**tar -tf mage.tar.xz

预览压缩包的文件列表

tar -rf mage.tar /path/newfile

往tar包中加强文件(注意只能对tar包增长文件,而不能对压缩包增长)

tar -cf mage.tar filename1 filename2 [filenameN]

将多个文件打包至mage.tar

tar -zcf mage.tar.gz filename1 filename2 [filenameN]

将多个文件打包并用gzip压 缩为mage.tar.gz

tar -jcf mage.tar.bz2 filename1 filename2 [filenameN]

将多个文件打包并用bzip2 压缩为mage.tar.bz2

tar -Jcf mage.tar.xz filename1 filename2 [filenameN]

将多个文件打包并用xz压 缩为mage.tar.xz

tar -xf mage.tar

解压tar包的全部文件到当前目录

tar -xf mage.tar.xz filename

仅将压缩包中的其中一个文件filename解压到当前目录

tar -zxf mage.tar.gz

解压gz的压缩包到当前目录

tar -jxf mage.tar.bz2

解压bzip2的压缩包到当前目录

tar -Jxf mage.tar.xz

解压xz的压缩包到当前目录

tar -zxf mage.tar.gz -C /tmp

解压gz的压缩包到/tmp目录

tar -zvxf mage.tar.gz

解压gz的压缩包到当前目录并显示详细过程

tar zcvf mage.tar.gz -T yasuolist.txt -X paichu.txt

-T 指定须要打包并压缩的文件列表,每一个文件路径一行

-X 指定要排除的文件列表,每一个文件一行


总的来讲只须要记住tar的三个用法就好


压缩:tar -jcv-f filename.tar.bz2 被压缩的文件或目录名称

查询:tar-jtv-filename.tar.bz2

解压缩:tar-jxv-f filename.tar.bz2-C 欲解压缩的目录


13管道命令|


“|”管道命令的用途:仅能处理由前面一个命令传来的正确信息。

例题若是要想知道/etc/下面有多少文件,能够利用ls /etc 来查阅,由于/etc/下面的文件太多,咱们能够利用less来协助。


blob.png

14 选取命令:cut 和grep


cut命令

用来显示行中的指定部分,行为单位,删除文件中指定字段。cut常常用来显示文件的内容,相似于下的type命令

cut 选项 参数


选项:

-b:仅显示行中指定直接范围的内容;

-c:仅显示行中指定范围的字符;

-d:指定字段的分隔符,默认的字段分隔符为“TAB”;

-f:显示指定字段的内容;

-n:与“-b”选项连用,不分割多字节字符;

--complement:补足被选择的字节、字符或字段;

--out-delimiter=<字段分隔符>:指定输出内容是的字段分割符;

--help:显示指令的帮助信息;

--version:显示指令的版本信息。


参数: 文件:指定要进行内容过滤的文件


例题一:

将PATH 变量取出,找出第五个路径

[root@localhost ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

[root@localhost ~]# echo $PATH | cut -d ':' -f 5

/root/bin

路径用“:”做为分割,-d -f 通常联合使用


若是取第3与第5就是这样:

[root@localhost ~]# echo $PATH | cut -d ':' -f 3,5

/usr/sbin:/root/bin


例题二:


将export输出的信息取得第12字符之后的全部字符串

[root@localhost ~]# export | cut -c 12-

若是取12-20的字符,就是cut -c 12-20


grep是一种强大的搜索工具,它可以用正则表达式搜索文本,并把匹配的行打印出来。

-a 表示不要忽视二进制数据。

-A显示列数,出了显示符合样本的那一行以外,并显示该行以后的内容。

-b 在显示符合样本的那一行以外,并显示该行以前的内容。

-c 计算符合样本的列数。

-C显示列数或显示行数,除了显示符合样本的那一行以外,并显示该行以前后的内容。

-d 进行动做,当指定要查找的目录而非文件时,必需要使用这项参数,不然grep命令将汇报信息并中止动做。

-e 指定字符串做为查找文件内容的范本文件

-i 忽略字符大小写的差异

-q 不显示任何信息

-n 在显示符合范本的那一行以前,表列出该列的标号。


例题一:用dmesg列出内核信息,并找出含“e1000”的那行。


blob.png


解析 dmesg 能够列出内核产生的信息,经过grep来选取网卡的相关信息,那我想把e1000,让他显色,而且还要加上行号,该怎样表示那?


blob.png


个人第一步先让关键字显色,第二部是显示行号,那么若是我想在关键字的前三行后四行也显示出来,该怎样表示那


blob.png

上面的很简单,那咱们来作这一道显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面存非空白字符的行。

首先咱们查看这个文件


blob.png


至少以一个空白字符开头的且后面存非空白字符的行^[[:space:]]\+"[^[:space:]]"

grep的用法有不少,后面都是跟一些命令的。例如。显示三个用户root,mage,wang的uid和默认shell,该怎样显示那,第一步也就是咱们先要弄清楚,咱们系统里面有没有这三个用户,当让通常都是没有的,因此咱们要新建mage,和王的用户,


blob.png


第二部咱们就是要找出uid和默认的shell


blob.png


这样的话咱们这一题就已经作好了,此题主要考察咱们的egrep的用法以及uid和shell的具体使用方法。

找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行,


本题就考察咱们的egrep后面加一些经常使用命令的具体用法了,

blob.png


利用扩展正则表达式分别表示0-九、10-9九、100-19九、200-24九、250-255


blob.png


这些题都是很简单的主要就是来考察咱们egrep的具体用法,


sort命令


是在Linux里很是有用,它将文件进行排序,并将排序结果标准输出。sort命令既能够从特定的文件,也能够从stdin中获取输入。

-b:忽略每行前面开始出的空格字符;

-c:检查文件是否已经按照顺序排序;

-d:排序时,处理英文字母、数字及空格字符外,忽略其余的字符;

-f:排序时,将小写字母视为大写字母;

-i:排序时,除了040至176之间的ASCII字符外,忽略其余的字符;

-m:将几个排序号的文件进行合并;

-M:将前面3个字母依照月份的缩写进行排序;

-n:依照数值的大小排序;

-o<输出文件>:将排序后的结果存入制定的文件;

-r:以相反的顺序来排序;

-t<分隔字符>:指定排序时所用的栏位分隔字符;

+<起始栏位>-<结束栏位>:以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

例题:

我的帐号都记录在/etc/passwd下。请将帐号排序。


[root@localhost ~]# cat /etc/passwd | sort

abrt:x:173:173::/etc/abrt:/sbin/nologin

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

andy:x:1002:1002::/home/andy:/bin/bash

avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin

barry:x:1003:1003::/home/barry:/bin/bash

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

byj:x:1007:1007::/home/byj:/bin/bash

carl:x:1004:1004::/home/carl:/bin/bash

chrony:x:995:993::/var/lib/chrony:/sbin/nologin

例题二;

若是例题一中我用第三列排序,如何表示:


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

mage:x:1000:1000:mage:/home/mage:/bin/bash

wang:x:1001:1001::/home/wang:/bin/bash

andy:x:1002:1002::/home/andy:/bin/bash

barry:x:1003:1003::/home/barry:/bin/bash

carl:x:1004:1004::/home/carl:/bin/bash

duke:x:1005:1005::/home/duke:/bin/bash

eric:x:1006:1006::/home/eric:/bin/bash

byj:x:1007:1007::/home/byj:/bin/bash

qemu:x:107:107:qemu user:/:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin

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

games:x:12:100:games:/usr/games:/sbin/nologin


看到黑体部分了把,若是是以文字的类型来排序的话,就会这样,想要用数字来排序就要加-n


[root@localhost ~]# cat /etc/passwd | sort -t ':' -k 3 -n

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

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


last命令

用于显示用户最近登陆信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单所有显示出来。

-a:把从何处登入系统的主机名称或ip地址,显示在最后一行;

-d:将IP地址转换成主机名称;

-f <记录文件>:指定记录文件。

-n <显示列数>或-<显示列数>:设置列出名单的显示列数;

-R:不显示登入系统的主机名称或IP地址;

-x:显示系统关机,从新开机,以及执行等级的改变等信息。


例题

利用last将输出的数据帐号仅取出帐号,并加以排序。

[root@localhost ~]# last | cut -d ' ' -f1 | sort

mage

mage

mage

mage


uniq命令


用于报告或忽略文件中的重复行,通常与sort命令结合使用。

-c或——count:在每列旁边显示该行重复出现的次数;

-d或--repeated:仅显示重复出现的行列;

-f<栏位>或--skip-fields=<栏位>:忽略比较指定的栏位;

-s<字符位置>或--skip-chars=<字符位置>:忽略比较指定的字符;

-u或——unique:仅显示出一次的行列;

-w<字符位置>或--check-chars=<字符位置>:指定要比较的字符。

例题 使用last将帐号列出,仅取出帐号列,进行排序后进去出第一位

[root@localhost ~]# last | cut -d ' ' -f1 | sort | uniq

mage

reboot

root

wtmp

承上,若是我下个知道每一个人登录的总次数:

[root@localhost ~]# last | cut -d ' ' -f1 | sort | uniq -c

      1

     33 mage

     32 reboot

     67 root

      1 wtmp

wc命令用来计算数字。


-c或--bytes或——chars:只显示Bytes数;

-l或——lines:只显示列数;

-w或——words:只显示字数。

例题一

说一下/etc/man_db.conf 里面到底有多少相关的字,行,字符数

[root@localhost ~]# cat /etc/man_db.conf | wc

    131     723    5171

例题

咱们知道用last能够输出登录者,可是last最后二行并不是帐号内容,如何以一行的命令取得这个月登录系统的总人次

[root@localhost ~]# last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l

132

因为last会输出空白行与wtmp字样在最下面二行,所以我利用grep取出非空白行,以及除去wtmp那一行,在计算行数。

若是你想知道你目前帐号里面有多少个帐号时,就用cat /etc/passwd | wc -l

tr命令

能够对来自标准输入的字符进行替换、压缩和删除。它能够将一组字符变成另外一组字符,常常用来编写优美的单行命令,做用很强大

-c或——complerment:取代全部不属于第一字符集的字符;

-d或——delete:删除全部属于第一字符集的字符;

-s或--squeeze-repeats:把连续重复的字符以单独一个字符表示;

-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符。

blob.png

linux中主要是敲一些命令,咱们能够经过作题来了解咱们有没有掌握这些命令:

一、显示/var目录下全部以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录

ls -d /var/l*[0-9]*[[:lower:]]

二、显示/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录

ls -d /etc/[0-9]*[^0-9]

三、显示/etc/目录下以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录

ls -d /etc/[^a-Z][a-Z]*

四、显示/etc/目录下全部以rc开头,并后面是0-6之间的数字,其它为任意字符的文件或目录

ls -d /etc/rc[0-6]*

五、显示/etc目录下,全部以.d结尾的文件或目录

ls -d /etc/*.d

六、显示/etc目录下,全部.conf结尾,且以m,n,r,p开头的文件或目录

ls -d /etc/[mnrp]*.conf

七、只显示/root下的隐藏文件和目录

ls -a --ignore=[^.]*  /root

ls -a -I "[^.]*"  /root

ls -d .*  /root

八、只显示/etc下的非隐藏目录

ls -d /etc/*/

上面这八道题很简单,基本都是用了文件的通配符和ls的命令来完成的,

ls -a 列出全部文件和目录 

ls -d  显示目录名称而非其内容

. 表示隐藏文件

* 表示0或多个任意字符

? 表示任意一个单一字符

[0-9] 表示数字范围

[a-Z]表示全部字母

[bais]表示包含b或a或i或s

[^bais]表示不包含b或a或i或s

[:digit:] 表示任意数字

[:upper:] 表示大写

[:lower:] 表示小写

[:alpha:] 表示任意字母包含大小写

[:alum:] 表示任意字母或数字

[:space:] 表示空格或换行

[:blank:] 表示空格

[:punct:] 表示符号

下面这七道题也是相同类型的,须要注意一下~ 表明“目前用户身份”所在的主文件夹,其余题参靠通配符都能作出来


一、显示/etc目录下全部以k开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录

ls -d /etc/k*[[:digit:]]*[[:lower]]

二、显示/proc目录下名字由任意三位数字组成的文件或目录

ls -d /proc/[0-9][0-9][0-9]

三、显示/var/log目录下文件名包含符号及数字的文件或目录

ls -d /var/log/*[[:punct:]]*[0-9]*

四、显示/usr/share/man目录下全部以m开头,以一个数字和x结尾的文件或目录

ls -d /usr/share/man/m*[0-9]x

五、显示/etc目录下,全部以一个大写字母开头,以两个数字结尾的文件或目录

ls -d /etc/[[:upper]]*[0-9][0-9]

六、显示/etc目录下,文件名至少包含一个小写字母和一个数字并以.conf结尾的文件或目录

ls -d /etc/*[[:lower]]*[0-9]*.conf

七、只显示用户家目录下的非隐藏目录

ls -d ~/*/

下面这八道题主要主要考察了管道符 | 和 tr以及输入输出重定向

   Linux系统中的命令能够将标准输入读取数据,还能将这些数据送到标准输出中去,这种功能被系统进一步的利用,从而产生出一种新的特性,称之为管道符“|”,      这     个符号能够将一个命令的标准输出管道为另一个命令的标准输入。

     须要注意的是管道符的使用有两个条件:

    一、管道命令只能处理前一个命令的标准输出,而不能处理标准错误;

    二、管道命令右边命令必须可以接收标准输入。

    标准输入(stain):代码为0,使用<或<<,

    标准输出(stdout);代码为1,使用>或>>.

    标准错误输出(stderr):代码为2,使用2>或2>>

    1>:以覆盖的方法将正确的数据输出到指定的文件或设备上

    1>>:以累加的方法将正确的数据输出到指定的文件或设备上

    2>: 以覆盖的方法将错误的数据输出到指定的文件或设备上

    2>>:以累加的方法将错误的数据输出到指定的文件或设备上

tr 用来标准输入中经过替换或删除操做进字符转换。经常使用命令:

-c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII

-d 删除字符串1中全部输入字符

-s 删除全部重复出现字符序列,只保留第一个,即将重复出现字符串压缩为一个字符串。

今天先更新到这里把,改天再写,长时间面对电脑也很差。

相关文章
相关标签/搜索