9、grep 命令
grep 命令用于查找当前目录下的所有文件内容,其常用参数有-a、-c、-I、-r,其格式如下:
grep [-a/-c/-I/-r] string /catalogue
(1)参数-a表示将二进制文件以text文件格式的方式搜寻数据;
(2)参数-c计算查找string字符串的次数;
(3)参数-r表示以递归的方式查找目录及子目录下符合条件的文件;
(4)参数-I忽略大小写查找。
例如递归查找/tmp目录下名为host的文件,如下:
[yyx329@192 ~]$ su root #使用root权限 [root@192 yyx329]# grep -r host /etc
在终端中输入命令,可得到名称中含有host的文件:
10、chmod 命令 文档权限
chmod 命令用于控制文档的存取权限,Linux中的存取权限分为三级,分为文件拥有者(User)、与拥有者同组的用户(Group)和其他用户(Other)三级,这三级对应a、b和c三个数字,不管权限位如何设置,root用户拥有最高的访问权限,chmod命令的格式如下:
chmod abc filename
这里的abc有两种表示形式,分别是字母形式和数字形式:
①字母形式通过用户类别(u、g、o)、如何改变(+、-)和权限(r、w、x)三部分组成,其中的r w x分别代表r=4,w=2,x=1【r是可读、w是可写、x是可执行】:
例如,我们通过vi 命令在/home下创建一个文件file1,其内容为123,保存后退出,然后再通过ls命令显示其信息:
[root@yyx12 yyx]# vi /home/file1 [root@yyx12 yyx]#ls -l /home/file1
file1文件内容:
在终端中输入命令,可以看到其最前面显示的就是文件的类型以及文件拥有者(User)、与拥有者同组的用户(Group)和其他用户(Other)对应的权限:
我们知道这个文件是对文件拥有者来说只有可读、可写权限,而没有可执行权限,对与拥有者同组的用户和其他用户只有可读权限,若现在想将该文件对文件拥有者的权限改为既可读、可写并且可执行,通过chmod的字母形式来进行更改,由于我们只修改文件拥有者(User)的权限,即通过增加权限(+)符号以及x(可执行)即可完成:
[root@yyx12 yyx]# chmod u+x /home/file1 [root@yyx12 yyx]# ls -l /home/file1
在Linux终端输入命令,修改后再次通过ls命令查看该文件信息,可见如下:
②后者数字形式是将r w x对应为数字,对应的位数上有权限为1,没有权限为0,如下表:
三级中各位上的rwx代表的数字对应的权限如下,其实rwx这三项就相当于二进制依次递增到rwx:
rwx | 数字 | 权限 |
- - - | 0 | 无权限 |
- - x | 1 | 只执行 |
- w - | 2 | 只写入 |
- w x | 3 | 写入和执行 |
r - - | 4 | 只读 |
r - x | 5 | 只读和执行 |
r w - | 6 | 只读和写入 |
r w x | 7 | 只读和执行和写入 |
刚刚上面的file1文件的权限修改方式也可以通过chmod命令的数字形式来修改,修改之前文件拥有者的rwx对应的数字为6,即只读和写入,我们要将其变为只读、执行和写入,即直接将其修改为7,整个权限由644变为744,如下命令:
[root@yyx12 yyx]# chmod 744 /home/file1 [root@yyx12 yyx]# ls -l /home/file1
在Linux终端输入命令:
以下是chmod命令常用的后缀和相关知识如下:
(1)Linux操作系统支持的文件类型
文件类型名称 | 含义 |
d | 目录文件 |
- | 普通文件 |
c | 字符设备文件 |
b | 块设备文件 |
p | 管道文件 |
s | 套接字文件 |
l | 符号链接文件 |
例如通过ls 命令查看/etc/hosts和/etc/inittab文件以及/etc/rc.d目录:
[yyx329@192 ~]$ ls -l /etc/hosts [yyx329@192 ~]$ ls -l /etc/inittab [yyx329@192 ~]$ ls -l /etc/rc.d
在终端中输入命令:
这里以第一个文件为例,其中各栏目说明如下:
(2)字母及符号
名称 | 解释 |
r | 可读取 |
w | 可写入 |
x | 可执行 |
+ | 增加权限 |
- | 取消权限 |
= | 直接设定权限 |
例如,在Linux操作系统中,命令“chmod ugo+r file1.txt”的含义是修改文件名称为file1.txt的文件的权限为所有用户可读。
例如在Linux中一个文件的访问权限信息为“-rwxr- -r- -”,则文件所有者、其他用户拥有哪些权限?
由于该文件的访问权限信息为“-rwxr- -r- -”,对应:
该文件类型为普通文件,该文件的拥有者有读、写和执行权限,与拥有者同组者以及其他用户都没有读、写和执行权限。
11、chown 命令、chgrp 命令
(1)chown 命令
chown 命令用于修改文件后目录的所有者,后跟参数-R表示递归地改变指定目录及其下的所有子目录和文件的所有者,即一并进行变更;后跟参数-v表示显示该命令执行的过程。
(2)chgrp 命令
chgrp 命令用于变更文件或目录的工作组,格式如下:
chgrp -option 工作组 文件或目录
(1)-R 将指定目录下的所有文件及子目录一并变更;
(2)-v 显示执行的过程。
12、mount 命令
mount 命令用于挂载Linux系统之外的文件,例如如下命令:
mount -t iso9660 /dev/cdrom /mnt/cdrom #挂载光盘 umount /mnt/cdrom #卸载光盘 mount /dev/sdb1 /mnt/usb #挂载光盘
13、pr 命令
pr 命令用于格式化输出文件的内容至屏幕上,如下命令显示/etc目录下的hosts文件至屏幕上:
[yyx@192 ~]$ pr /etc/hosts
在Linux终端输入命令:
14、find 命令
find 命令用于在目录下搜索文件,它有以下常用参数:
(1)后跟参数-name表示搜索文件名称符合 name 的文件,后跟参数-iname则会忽略大小写进行搜索。
例如查找 /etc目录下的passwd文件,两种方式进行搜索,如下命令:
[yyx@yyx12 ~]$ su root ... [root@yyx12 yyx]# find /etc -name passwd ... [root@yyx12 yyx]# find /etc -iname passwd ...
在Linux终端输入命令:
(2)后跟参数-size n表示搜索文件大小为n的文件,后跟参数-type c表示搜索文件类型为c的文件。
15、wc 命令
wc 命令用于统计文件,可以对一个或多个文件进行其行、单词和字符数的统计,默认的情况下不带参数,wc 命令会统计指定文件的行数、字数,以及字节数,如下命令,统计“系统支持的文件系统类型”文件filesystems:
[yyx@192 ~]$ wc /etc/filesystems
在Linux终端输入命令:
后跟-l表示对行计数,-w表示对单词计数,-c表示对字符数计数,另外该命令可跟多个文件,然后进行统计,如下统计两个文件:
[yyx@192 ~]$ wc /etc/filesystems /etc/centos-release
在Linux终端输入命令:
三、Linux 其他常用命令
1、关机 shutdown 命令
shutdown 命令用于关机,也可以用来重新启动。
它有以下常用的参数:
(1)-h 关机,后跟now表示立即关机;
(2)-r 关机后重新启动,后跟now表示立即关机;
(3)-n 强行停止所有执行中的程序后关机;
(4)time 设定关机的时间;
(5)-t seconds 设定几秒钟之后关机。
例如通过shutdow命令立即重新启动系统:
[yyx329@192 ~]$ shutdow -r now
2、查看进程 ps 命令
ps命令用于查看进程的状态,它有以下常用的参数:
参数 | 含义 |
a | 查看现行虚拟机的所有进程,包括其他用户 |
-a | 查看所有虚拟机的所有进程,不包括阶段作业领导者 |
-A/All | 查看所有进程 |
-aux | 查看所有的静态进程 |
-top | 查看所有动态变化的进程 |
-l | 使用长格式显示进程 |
-r | 查看正在运行的进程 |
-ef | 显示所有进程以及命令行 |
通过ps命令查看的进程有以下状态,也就是通过ps命令显示的栏目中“S”项为进程的状态:
状态 | 含义 |
D | 无法中断的休眠状态 (通常指 IO 的进程) |
R | 正在运行状态 |
S | 休眠状态 |
T | 暂停或被追踪状态 |
W | 内存交换状态 |
Z | 不存在状态,或僵死状态暂时无法消除 |
例如通过以下命令查看所有进程:
ps -All
在终端中输入命令:
例如通过以下命令查看所有虚拟机的所有进程以及命令行:
[yyx329@192 ~]$ ps -aef
在终端中输入命令:
3、终止进程 kill 命令
kill命令用于终止杀死进程,后跟信号(发送给该进程的信号)和PID进程号(PID数值最小的进程最先运行)。
kill signal PID #signal为信号,PID为进程号
其中PID可以通过ps命令查到,如下:
常用的信号操作有:
(1)signal=1代表重新加载该进程;
(2)signal=9代表杀死该进程;
(3)signal=15代表正常停止该进程。
例如我们要杀死进程号PID为1000的进程,命令如下:
[yyx329@192 ~]$ kill 9 1000
4、管理软件包 rpm 命令
rpm 命令用于查询rpm包,它的常用参数有-a/-q,后跟-a参数表示显示所有套件,后跟-q参数表示查询之前首先询问用户,如下:
rpm -a rpm包 #显示所有套件 rpm -q rpm包 #表示查询前首先询问用户
例如命令:
[yyx329@192 ~]$ rpm -q #查询系统安装的所有软件包 [yyx329@192 ~]$ rpm -q bind #查询bind软件包是否安装
5、用户和用户组(工作组)命令
由于Linux是一个多用户、多任务的分时操作系统,所以每个要使用系统资源的用户需申请一个账号然后通过该账号进入系统。
(1)添加新用户 useradd 命令
useradd 命令用于创建一个新用户,后跟新用户的名称,在创建时要给该账号分配用户号、用户组、主目录和登录Shell等资源,另外可以通过userdel 命令删除帐号。
例如添加一个新用户,名称为user1,如下命令进入超级用户root权限下创建,然后通过cat 命令查看/etc/passwd中的用户记录:
[yyx@192 ~]$ su root ... [root@192 yyx]# useradd user1 [root@192 yyx]# cat /etc/passwd
在Linux终端输入命令:
可看到,/etc/passwd中的最后一行多了刚刚添加的新用户user1:
useradd 命令有以下常用的参数:
(1)-c 表示指定一段注释,注释位于passwd的备注栏中;
(2)-r 表示创建的是系统用户;
useradd -r username
(3)-d 表示指定用户的主目录,若该目录不存在,则可以通过参数-m创建主目录;
useradd -d /目录 username
(4)-g 表示指定用户所属的用户组,-G 表示指定用户所属的附加组;
useradd -g/-G 用户组/附加组 username
(5)-s 表示指定用户的登录Shell;
useradd -s Shell文件 username
(6)-u 表示指定用户的用户号,若同时带上参数-o则可以重复使用.其他用户的标识号。
例如创建一个新用户名称为new,该用户的登录Shell为/bin/sh,属于apache用户组,同时又属于admin和root用户组,如下命令:
[yyx329@192 ~]$ useradd -s /bin/sh -g apache -G admin,root new
(2)删除用户 userdel 命令
可以通过userdel 命令删除不使用的账号,即将存放在/etc/passwd等系统文件中的该用户记录删除,例如删除存在的用户user1,如下命令:
[root@192 yyx]# userdel user1
在Linux终端输入命令:
再次查看/etc/passwd中,该用户已经被删除:
/etc/passwd中每行的含义如下图:
(3)创建新的工作组 groupadd 命令
groupadd 命令用于创建一个新的工作组,后跟新工作组的名称。
例如创建一个新的工作组,名称为mygroup,最后再通过cat 命令查看/etc/group中的内容,如下命令:
[root@192 yyx]# groupadd mygroup [root@192 yyx]# cat /etc/group
在Linux终端输入命令:
可看到/etc/group最后一行多了我们刚刚创建的新的用户组mygroup:
groupadd 命令有以下常用参数:
(1)-g 表示指定工作组的ID(ID值是唯一的),若同时带上参数-o则ID可以重复使用(通常工作组ID中0-499是保留给系统账号使用,而新建的工作组ID从500开始依次递增);
(2)-r 表示建立系统组号,系统会自动选定ID小于499的ID值;
(3)-f 表示在创建工作组时,若该工作组已存在,则强制退出不对已存在的工作组进行修改。
(4)删除工作组 groupdel 命令
若要删除一个已有的工作组,可以使用groupdel 命令,后跟用户组的名称,例如通过groupdel命令删除存在的工作组mygroup,如下命令:
[root@192 yyx]# groupdel mygroup
在Linux终端输入命令:
有时候在删除一个工作组时,系统会提示不能移除用户的主组,此时是因为在该用户组内有用户,所以无法执行该操作,我们可通过命令先查看用户组信息如下:
[root@192 yyx]# cat /etc/group
然后再查看用户对应的用户组:
[root@192 yyx]# cat /etc/passwd
找到相应GID为该用户组的用户,然后通过userdel命令先删除相应的用户,再通过groupdel命令删除用户组。
(5)更改口令 passwd 命令
passwd 命令用于更改当前用户的口令,要注意该命令不是password,Linux中每个用户口令都存放在/etc/passwd中与之对应有一行记录,/etc/shadow中存放加密后的用户密码,/etc/group存放管理用户组的基本文件,每行记录对应一个组(用户组名、加密后的组口令、组ID和组成员列表)。
(1)passwd 命令不带参数时可以直接修改当前用户的密码,命令如下:
[yyx329@192 ~]$ passwd
在终端中输入命令,接下来会系统提示输入当前密码,然后系统会让你设置新的密码:
(2)passwd 命令后跟参数-l表示禁用账号使用,参数-u表示启用被禁用的账号,参数-d表示删除设置的密码(使下次登录时无密码),参数-f表示强迫用户下次登录时修改密码,参数-S显示密码信息。
6、设置服务 chkconfig 命令
chkconfig 命令用于设置和检查系统的各种服务,后跟服务的名称,它的常用参数有:
(1)-add 表示在系统启动的配置文件中增加指定系统服务,即增加配置;
(2)-del 表示在系统启动的配置文件中删除指定系统服务,即删除配置;
(3)-level 指定系统服务的执行等级的开启或关闭。
chkconfig -level level servename on/off
7、创建和维护分区表 fdisk 命令
fdisk 命令用于创建和维护分区表,其用法格式如下:
(1)fdisk命令后跟参数-l表示列出所有分区表,如下:
[yyx329@192 ~]$ su root ... [root@192 yyx329]# fdisk -l
在Linux中输入命令:
(2)后跟参数-s并加磁盘分区目录可显示指定分区的Blocks,如下,例如显示/dev/sda1分区的Blocks:
[yyx329@192 ~]$ su root ... [root@192 yyx329]# fdisk -s /dev/sda1
在Linux中输入命令:
8、显示磁盘使用情况 df 命令
通过df 命令显示磁盘的使用情况。
(1)后跟参数-a表示显示磁盘的所有的文件系统情况:
[yyx329@192 ~]$ df -a
在Linux中输入命令:
(2)后跟参数-T表示显示文件系统的形式:
[yyx329@192 ~]$ df -T
在Linux中输入命令:
9、“>”输入/输出重定向命令
命令的输入来自指定的文件称为输入重定向,命令的输出显示在指定的文件中称为输出重定向。
例如通过nl命令显示/etc目录下的nsswitch.conf文件,此时nsswitch.conf文件作为nl命令的输入:
[yyx329@192 ~]$ nl /etc/nsswitch.conf
在终端中输入命令:
例如通过cat命令使/etc目录下的nsswitch.conf文件的文件内容输出保存在一个名称为file.txt文件中,要通过“>”符号,若符号后跟的文件已经存在则会直接覆盖:
[yyx329@192 ~]$ cat> file.txt
10、“|”管道命令
所谓管道命令也就是通过管道“|”将两个或多个命令隔开,符号“|”左边命令的输出作为右边命令的输入,依次……
例如将cat命令和grep命令通过管道“|”命令连接,使用cat命令显示/etc/filesystems的内容,将其作为grep命令的输入,grep命令后跟要查找的名称,使grep查找符合的内容:
[yyx329@192 ~]$ cat /etc/filesystems|grep xfs [yyx329@192 ~]$ cat /etc/filesystems|grep ext
在终端中输入命令: