好啦,从这里开始我们就开始学习linux的一些常用命令。首先进入centos-》应用程序-》附件-》终端,开始命令行之旅。
一、文件处理命令
1.网络信息查看命令:ifconfig 英文原型:intface config(附加的。。。可以无视)
2.文件处理命令:ls 英文原型:list 命令所在路径:/bin/ls 执行权限:所有用户
功能表述:显示文件目录 常用可选项:-a -l -i(a表示all即显示所有文件目录,l表示long即显示详细文件属性,i显示文件的inode)
注:当键入ls -l时候,会输出类似如下图所示信息
第1个字母表示的文件类型(d表示目录,-表示2进制文件,l表示软链接文件)
第2-4字母表示的是文件拥有者的权限(r表示read,w表示write,x表示execute)
第5-7和第8-10字符分别表示文件所属组的权限与其他用户的权限
第11个数字表示此文件的硬链接数
第12个单词表示文件拥有者是谁?
第13个单词表示文件所属组是谁?
接下来的数字是文件的大小(字节单位)和文件最后修改的时间
3.文件处理命令:cd 英文原型:change directory 命令所在路径:shell内置命令 执行权限:所有用户
功能表述:切换目录
注:.表示当前目录,..表示上级目录,/表示根目录
4.文件处理命令:pwd 英文原型:print working directory 命令所在路径:/bin/pwd 执行权限:所有用户
功能表述:显示当前所在的工作目录
5.文件处理命令:mkdir 英文原型:make directory 命令所在路径:/bin/mkdir 执行权限:所有用户
功能表述:创建目录
6.文件处理命令:touch 命令所在路径:/bin/touch 执行权限:所有用户
功能表述:创建文件
7.文件处理命令:cp 英文原型:copy 命令所在路径:/bin/cp 执行权限:所有用户
功能表述:复制文件或目录 常用可选项:-R -p(-R表示复制目录,p表示复制时不改变时间)
注:cp 源文件 目的文件
8.文件处理命令:mv 英文原型:move 命令所在路径:/bin/mv 执行权限:所有用户
功能表述:剪切文件或改名
9.文件处理命令:rm 英文原型:remove 命令所在路径:/bin/rm 执行权限:所有用户
功能表述:删除文件或目录 常用可选项:-r -f(r表示删除目录,f表示force即强制删除无须任何询问)
10.文件处理命令:cat 英文原型:concatenate and display file 命令所在路径:/bin/cat 执行权限:所有用户
功能表述:显示文件内容(适合较短文件)
11.文件处理命令:more 命令所在路径:/bin/more 执行权限:所有用户
功能表述:分页显示文件内容
注:进入分页显示状态后,空格表示下一页,回车表示下一行,q表示退出分页显示模式
12.文件处理命令:head 命令所在路径:/bin/head 执行权限:所有用户
功能表述:显示文件头几行 常用可选项:-number(此处数字表示需要显示的文件头几行的数字)
13.文件处理命令:tail 命令所在路径:/bin/tail 执行权限:所有用户
功能表述:显示文件后几行 常用可选项:-number -f(此处数字表示需要显示的文件后几行的数字,f表示动态显示)
注:对于一些日志,实时在更新,那么通常使用-f选项来关注日志不断更新的末尾.
14.文件处理命令:ln 英文原型:link 命令所在路径:/bin/ln 执行权限:所有用户
功能表述:创建链接 常用可选项:-s(s表示soft即创建的链接是软链接)
现在看下图,来演示创建软链接
上图中首先用ln -s创建一个软链接host.soft,而这个软件链接指向了/etc/host.conf文件。其实所谓的软链接在windows里面就当于快捷方式而已。可以看见软链接的类型是l类型,而软链接的权限基本上全是满的,后面还用箭头表示了软链接指向那个文件。
如果没有用-s则创建硬链接,应注意硬链接是windows里面没有的功能,硬链接相当于一个可以可以动态更新的副本。而且当原文件删除后,软连接就无用了,硬链接却还有用。看如下指令:
首先我试图创建一个硬链接由/study/host.hard指向/etc/host.conf,但是失败了。原因是/study和/根分区不是一个物理分区,在我装系统的时候,把根分区和/study分成了sda0和sda1两个物理分区。所以结论是硬链接只能在同一个物理分区上进行。然后我建立了一个test文件,并创建了一个硬链接指向它,可以看见权限和内容是完全一样的。
那以上是为什么呢?链接的底层到底是怎么实现的呢?
由于linux下的文件是通过索引节点号(Inode)来唯一标示文件,硬链接可以认为并不是一个新文件而只是一个指针,指向原文件索引节点的指针,系统并不为它重新分配inode。每添加一个一个硬链接,原文件的链接数就加1。而软链接却是一个新的文件,所以有不同的inode,只不过它的文件内容是原文件的路径。
二、权限管理命令:
1.权限管理命令:chmod 英文原型:change the permission mode 命令所在路径:/bin/chmod 执行权限:所有用户
功能表述:更改文件或目录权限
注:chmod有两种格式,第一种是字母格式,chmod u/g/o +/-/= r/w/x 文件名/目录名(u代表user即文件所有者,g代表gourp即文件所属组,o代表other即其他用户,+-=分别表示添加、删除、赋予权限的操作,rwx代表权限).第二种格式是数字格式,chmod xyz(xyz分别是三个0-7的数字,每个0-7的数字其实是3个二进制的换算,3个二进制分别表示rwx,也就是说r是4、w是2、x是1。而x代表文件所有者得权限数字,y代表所属组权限数字,z是其他用户的权限数字.比如某文件的权限是rwxr-xr-x 换成数字形式就是 755).接下来看下面一个实验:
上面代码中创建了一个目录,后又在目录创建了一个文件并给予满权限,但当我用一个普通用户去删除这个文件时候却为什么说权限不够呢?可是权限上说other的权限是rwx丫。原因其实在于我们对rwx的理解,其实rwx对于文件和目录是不同的。总结如下:
文件的r(cat、more、head、tail)、w(echo、vi)、x(命令、脚本)
目录的r(ls)、w(touch、rm、mkdir)、x(cd)
2.权限管理命令:chown 英文原型:change file ownership 命令所在路径:/bin/chown 执行权限:所有用户
功能表述:改变文件或目录所有者
注:chown 用户 文件
3.权限管理命令:chgrp 英文原型:change file group 命令所在路径:/bin/chgrp 执行权限:所有用户
功能表述:改变文件或目录所属组
注:chgrp 所属组 文件
4.权限管理命令:umask 命令所在路径:/bin/umask 执行权限:所有用户
功能表述:显示和设置文件的缺省权限 常用可选项:-S(S表示以rwx的方式显示缺省权限)
注:umask有两种使用方式,演示如下:
第一种是rws的方式显示出缺省权限,而第二种方式是显示的0002,这是什么意思呢?第一个数字0是表示一种特殊权限位,而后面的三个数字就是分别表示ugo的缺省权限,可是为什么不是775呢?显然775+002=777,所以我们可以看出002其实是缺省缺陷的掩码。哇哈哈~
三、文件搜索命令:
1.文件搜索命令:which 命令所在路径:/user/bin/which 执行权限:所有用户
功能表述:显示系统命令所在目录
2.文件搜索命令:find 命令所在路径:/user/bin/which 执行权限:所有用户
功能表述:查找文件或目录
注:find的命令较为复杂,大致格式为find 目标目录 搜索选项 搜索条件。常用的搜索选项有4种:
(1)-name 以文件或目录的名称来搜索,常用*,?等通配符连用
(2)-size 以文件或者目录大小来搜索,用+(大于)、-(小于)某一个数字来搜索。单位是512字节(block),100M=204800
(3)-user 以文件的拥有者来搜索
(4)以时间的搜索方式,常用-ctime、-atime、-mtime、-cmin、-amin、-mmin,其中time表示天,min表示分钟,c表示change指代文件或目录的属性被修改过,a表示access指代文件或目录被访问过,m表示modify指代文件或目录的内容被修改过。另外用-表示在某段时间之内,+表示某段时间之外。举例如下:
以上程序段在列举了上面4种方式外,还加入了两种连接符。第一种是逻辑连接符,-a表示and即逻辑与,-o表示or即逻辑或.第二种是执行连接符,当你用find查询到一个元素集合时,你可以通过-exec来对集合中的元素进行操作,要特别注意格式:-exec 操作命令 {}\另外可以用ok来代替exec,两者之间功能相似,不同的在于exec是直接执行,而ok会先询问再执行。
3.文件搜索命令:locate 命令所在路径:/user/bin/locate 执行权限:所有用户
功能表述:寻找文件或者目录
注:此命令功能类似于find,但查找方式不同。find是在硬盘中查找,而locate是在文件目录的数据库查找,速度与效率比find快很多。但有一个缺点就是,如果你需要查找的文件在目录数据库中没有记录的话就查找不到,所以常配合更新目录数据库的updatedb使用。
从上面程序段可以看出,我新创建的test.file文件刚开始用locate查找不到,而用find却可以查到。但当我更新过目录文件数据库后,再用locate就可以查询到了。
4. 文件搜索命令:grep 命令所在路径:/bin/locate 执行权限:所有用户
功能表述:在指定文件中搜索指定的字符串行并输出
注:举例如下,在services文件中查找含tftp字符串的行,并输出
四、帮助命令:
1.帮助命令:man 英文原型:manual 命令所在路径:/usr/bin/man 执行权限:所有用户
功能表述:获取帮组信息
注:man后面可以接命令,同时也可以接配置文件。如果命令和配置文件同名,默认是命令帮组(man 1 commad),你可以man 5 配置file
2.帮助命令:whatis 执行权限:所有用户
功能表述:获取简短帮助信息
注:whatis也是从某帮助信息的数据库中查询帮助,所以常用makewhatis来更新相关数据库。
3.帮助命令:help 执行权限:所有用户
功能表述:查看shell内置命令的帮助,man是误差查询shell内置命令的帮助的。当你用man查询的时候如果查不到你所需要的东西。也许用help你会有意外的收获,哇呵呵。
五、压缩命令:
1.压缩命令:gzip 命令所在路径:/bin/gzip 执行权限:所有用户
功能表述:压缩文件(只能是文件,不能是目录)
注:gzip压缩文件会丢失原文件。gzip -d 文件,是解压缩
2.压缩命令:gunzip 命令所在路径:/bin/gunzip 执行权限:所有用户
功能表述:解压gizp文件
3.压缩命令:tar 命令所在路径:/bin/tar 执行权限:所有用户
功能表述:把文件或目录打包成一个二进制文件 常用可选项:-cxvfz(c代表create即创建,x代表execute即解包,v代表view即查看打包或解包过程,f与c连用表示打包后的文件名称,f与x连用表示解包的目标名称,z与c连用表示打包后压缩,z与x连用表示解包后解压)
注:f必须放在可选项的最后,源文件在前,目标文件在后。下面演示该命令:
4.压缩命令:zip 命令所在路径:/usr/bin/zip 执行权限:所有用户
功能表述:以zip的形式压缩文件或目录 常用可选项:-r(r表示压缩目录)
注:zip格式是与window之间无需转换而可通用的压缩格式,用来压缩一些不大且共享与双系统间的文件很好。
5.压缩命令:unzip 命令所在路径:/usr/bin/unzip 执行权限:所有用户
功能表述:以zip的形式解压文件或目录
6.压缩命令:bzip2 命令所在路径:/usr/bin/bzip2 执行权限:所有用户
功能表述:以bzip2的形式压缩文件(是gzip的升级版) 常用可选项:-k(压缩后保留原文件)
六、网络通信命令:
1.网络通信命令:write 命令所在路径:/usr/bin/write 执行权限:所有用户
功能表述:向另外一个用户实时发送消息,并以CTRL+d结束
注:格式是write 用户
2.网络通信命令:wall 命令所在路径:/usr/bin/wall 执行权限:所有用户
功能表述:向所有用户广播消息
3.网络通信命令:ping 命令所在路径:/usr/sbin/ping 执行权限:所有用户
功能表述:发送icmp报文 常用可选项:-cs(c代表count即控制报文数目,s代表报文大小)
七、系统命令:
1.系统命令:shutdown 命令所在路径:/usr/sbin/shutdown 执行权限:所有用户
功能表述:关机 常用可选项:-h(h代表hour即多少小时以后关机)
2.系统命令:reboot 命令所在路径:/usr/sbin/reboot 执行权限:所有用户
功能表述:重启
八、Shell命令:
shell是一整命令行解释程序,一个linux操作系统可以有多个shell,我们可以查看:
操作系统默认的一般是bash,我也是用bash。在shell中,你可用tab键自动补全。
1.Shell命令:alias
功能表述:别名机制,alias 别名="命令 -选项"(若没有选项可不用引号)
注:unalias 别名,可以解除别名
2.Shell命令:alias
功能表述:别名机制,alias 别名="命令 -选项"(若没有选项可不用引号)
注:unalias 别名,可以解除别名
3.Shell命令:> >> < 2>
功能表述:输出、附加输出、输入、错误输出
注:进程的文件描述字是 输出为0,输入为1,错误输出为2
4.Shell命令: | (管道)
功能表述:把前一个命令的输出结果作为下一个命令的输入参数。
第一个把ls命令的查询结果用more命令来读取,后面类似。
5.Shell命令: ; && || (命令连接符)
功能表述:如下
6.Shell命令:
``(命令替换符号)
功能表述:如下