一、Linux 目录的常用命令
1、ls 命令
(1)ls命令用于查看目录和文件信息 ,默认情况下该命令列出当前目录下的目录或文件,后可跟参数,以下是ls命令缺省情况下:
ls
在终端中输入命令,如下: (2)ls后跟参数,有以下情况: ls / 显示目录 ls ../ 显示当前目录 ls ../../ 显示当前目录的上一级目录(父目录) ls * 显示可执行文件
ls /
ls ../
ls ../../
在终端中输入命令,如下:
ls *
在终端中输入命令,如下: ls -a 显示目录下的所有文件,包括隐藏文件也会显示出来; ls -b 将文件名中不可输出的字符用反斜杠加字符编号的方式显示出来; ls -c 将文件按修改时间顺序显示; ls -d 只显示目录信息,不显示目录下的文件数据信息; ls -l 使用长格式显示文件内容,包括文件的属性、权限等数据;
ls -a
ls -b
ls -c
ls -d
ls -l
在终端中输入命令,如下: 命令可以组合使用,比如通过ls / -l命令长格式显示各目录,ls -l对应的各个项目的解释如下: 文件大小:以byte表示,空目录一般为1024byte。
ls -l
在终端中输入命令,如下:
注:ls 命令显示结果以不同的颜色来区分文件类别: 蓝色代表目录,灰色代表普通文件,绿色代表可执行文件,红色代表压缩文件,浅蓝色代表链接文件。
2、cd 命令
(1)cd命令用于切换目录 ,后跟相对路径或绝对路径。
[yyx329@192 ~]$ cd / #从当前登录用户的用户目录切换到/根目录下
[yyx329@192 /]$
[yyx329@192 /]$ cd /etc #将当前目录切换到/etc目录下
[yyx329@192 etc]$
在终端中输入命令,如下: (2)cd命令后跟参数“.. ”表示返回当前目录的上一级目录(父目录),若一直通过cd命令返回则会返回到根目录,后跟参数“~ ”则会返回到当前登录用户的用户目录。
cd ..
cd ~
例如在当前登录用户的用户目录下通过cd命令返回其父目录,即/home目录,然后再通过cd命令返回其父目录,此时返回到系统的根目录/,最后通过cd ~命令返回到最开始的用户目录下,如下:
[yyx329@192 ~]$ cd .. #返回当前目录的上一级目录(父目录)
[yyx329@192 home]$ cd .. #返回当前目录的上一级目录(父目录)
[yyx329@192 /]$ #连续两次cd ..命令后返回到系统的根目录
[yyx329@192 /]$ cd ~ #返回当前登录用户的用户目录
在终端中输入命令,如下:
3、pwd命令
pwd命令用于显示当前所在的工作目录 ,其后可跟参数-P显示实际的工作路径 ,而并不是使用连结路径,如下:
pwd
pwd -P #后跟参数-P,显示实际路径
例如通过pwd命令和cd命令:
[yyx329@192 ~]$ pwd #显示当前目录
[yyx329@192 ~]$ cd /tmp #切换目录至/tmp
[yyx329@192 tmp]$ pwd #显示当前目录
[yyx329@192 tmp]$ cd /var/mail #切换目录至/var/mail
[yyx329@192 mail]$ pwd #显示当前目录
[yyx329@192 mail]$ pwd -P #通过带参数-P显示实际的当前目录
在终端中输入命令,如下:
4、mkdir 命令和 rmdir 命令
mkdir 命令用于创建新的目录 ,rmdir 命令用于删除已建立的目录 ,其后可跟多个目录。 (1)mkdir 命令 例如在/tmp临时目录下通过 mkdir 命令创建新目录Doc、Mov,也可以通过一条命令直接创建多个目录,若创建的目录已存在,则系统会报错,如下:
[yyx329@192 ~]$ mkdir /tmp/Doc #在临时目录/tmp下创建新目录Doc
[yyx329@192 ~]$ mkdir /tmp/Mov #在临时目录/tmp下创建新目录Mov
[yyx329@192 ~]$ mkdir /tmp/Mus /tmp/Stu #在临时目录/tmp下创建多个新目录
[yyx329@192 ~]$ mkdir /tmp/Doc #再次创建Doc目录,系统报错
在终端中输入命令创建新目录,如下: 通过ls命令可看到四个创建的新目录,如下: 如果我们这样创建一个多层的目录,系统会报错:
[yyx329@192 ~]$ mkdir /tmp/Doc/1-22/doc1
在终端中输入命令,显示“没有那个文件或目录”,如下: 所以创建多层目录不能这样直接创建,由于目录/Doc本身还未创建(也就是该目录并不存在),而我们在本身不存在的目录上创建/1-22子目录以及其下的/doc1子目录,从而导致系统报错。
在mkdir命令后跟参数-p可以递归创建多层目录 ,可解决这种问题:
mkdir -p #递归创建多层目录
例如在临时目录/tmp下创建一个多层目录:
[yyx329@192 ~]$ mkdir -p /tmp/Doc/1-22/doc1
在终端中输入命令,如下: 通过ls命令可查看创建的多层目录: 查看/Doc下的子目录: (2)rmdir 命令 rmdir命令也是一样,可以通过参数-p一次删除多层目录 ,它可以一次删除多个目录,如下:
[yyx329@192 ~]$ rmdir /tmp/Stu /tmp/Mus /tmp/Mov /tmp/Doc #一次性删除多个目录
再通过ls命令查看:
[yyx329@192 ~]$ ls -l /tmp
在终端中输入命令,可看到之前四个创建的新目录已被删除不见,如下: 例如在临时目录/tmp下创建一个多层目录然后删除该多层目录:
[yyx329@192 ~]$ mkdir -p /tmp/Doc/1-22/doc1
[yyx329@192 ~]$ rmdir -p /tmp/Doc/1-22/doc1
5、cp 命令
cp 命令用于复制文件或目录 ,它的常用参数有-a/-f/-i/-r,后跟源文件和目的文件,源文件若为多个此时目的文件必须是目录,格式如下:
cp [-a/-f/-i/-r] source target #source为源文件,target为目的文件
(1)cp命令后跟-a 时表示复制时整个文件夹目录进行备份 ; (2)若遇到复制目录下有同名文件或目录,后跟-f 表示直接覆盖,后跟-i 表示征求用户意见然后再执行; (3)后跟-r 表示将源文件中的子目录和文件一同复制。
cp -a source target #复制时将整个文件夹目录备份
cp -f source target #若遇到同名文件或目录,直接覆盖
cp -i source target #若遇到同名文件或目录,征求用户意见,此时同意则按下y,不同意则按下n
cp -r source target #将源文件中的子目录和文件一同复制
例如在/etc目录下创建一个/new目录然后将其复制到/tmp目录下,然后再查询/etc和/tmp目录下的子目录,如下命令:
[yyx329@192 ~]$ su root #su命令表示切换当前的用户到root用户,使用root权限
[root@192 yyx329]# mkdir /etc/new
[root@192 yyx329]# cp -r /etc/new /tmp
[root@192 yyx329]# ls -l /etc
[root@192 yyx329]# ls -l /tmp
在终端中输入命令,可看到/etc目录下的/new目录以及已经复制到/tmp目录下的/new目录: /etc目录下的/new目录: /tmp目录下从/etc目录复制过去的/new目录:
6、rm 命令
rm 命令用于删除文件或目录 ,它的常用参数有-f/-i/-r。 (1)其中参数-f 、-i 与rmdir命令中的参数-f、-i一样(强制删除、询问用户); (2)加上参数-r 会将目录下的子目录都会删除。
rm -f
rm -i
rm -r
5、mv 命令
mv命令用于移动文件或目录 (当移动目录时,其下的子目录也会一并移动),也可以给文件或者目录重命名 ,它的常用参数有-f/-i/-u,源文件可以为多个但此时目的文件必须是目录。 (1)其中参数-f 、-i 与rmdir命令以及rm命令中的参数-f、-i一样(若存在相同强制覆盖、询问用户是否覆盖); (2)参数-u 则是若目标文件已存在,且源文件的修改时间较目的文件新,才会覆盖。
mv -f source target
mv -i source target
mv -u source target
例如在/etc目录下创建一个目录然后移动到/tmp目录下,然后通过ls命令查询/tmp下的子目录,如下命令:
[yyx329@192 ~]$ su root #su命令表示切换当前的用户到root用户,使用root权限
[root@192 yyx329]# mkdir /etc/main #切换至root权限,通过mkdir命令在/etc目录下创建一个新目录/main
[root@192 yyx329]# mv /etc/main /tmp #将/etc目录下的/main目录移动到/tmp目录下
[root@192 yyx329]# ls -l /tmp
在终端中输入命令,在/tmp目录下可看到已经移动至该目录下的/main目录:
二、Linux 文件的常用命令
1、vi 命令
vi 命令用于编辑文件 ,后跟文件即可打开或新建文件,例如下列命令通过vi命令打开/etc/hosts编辑该主机静态DNS配置文件:
[yyx329@192 ~]$ vi /etc/hosts
在终端中输入命令,可以通过方向键上下左右移动光标:
2、cat 命令和tac命令
(1)cat命令用于显示文件 ,也可以连接文件 ,比如通过重定向符号连接文件。 例如通过cat命令显示/etc目录下“Centos系统版本信息”文件、“本地计算机ID配置”文件以及“系统支持的文件系统类型”文件:
[yyx329@192 ~]$ cat /etc/centos-release
[yyx329@192 ~]$ cat /etc/machine-id
[yyx329@192 ~]$ cat /etc/filesystems
在终端中输入命令: (2)tac命令正好与cat命令相反,cat命令是从文件的第一行开始显示文件内容,而tac命令是从文件的最后一行开始显示文件内容。 例如以下通过cat命令和tac命令显示/etc目录下的“系统支持的文件系统类型”文件:
[yyx329@192 ~]$ cat /etc/filesystems
[yyx329@192 ~]$ tac /etc/filesystems
在终端中输入命令,可看出文件中的内容显示刚好相反:
3、head 命令和tail 命令
head 命令用于显示文件的指定前X行(X代表数值) ,tail 命令用于显示文件的指定最后X行(X代表数值) 。 参数有-n,-n 后跟数字代表取文件的多少行从而显示(默认情况下只显示前/后10行):
[yyx329@192 ~]$ tail -n 20 /etc/nsswitch.conf
[yyx329@192 ~]$ tail -n 20 /etc/nsswitch.conf
在终端中输入命令,可看出两条命令分别显示了nameserver切换配置文件的前5行和最后20行:
4、more 命令
more 命令用于分页查看文件内容 。 例如通过more分页查看/etc目录下的inputrc文件:
[yyx329@192 ~]$ more /etc/inputrc
在终端中输入命令,可见下面有一个黑色框显示“More”: 可以通过空格键或enter键翻下一页:
5、less 命令
less 命令用于向上或向下移动一行 ,可以通过键盘上的上下箭头或通过鼠标的滑轮移动。 例如通过less命令查看/etc目录下的inputrc文件:
[yyx329@192 ~]$ less /etc/inputrc
在终端中输入命令: 使用键盘上的上下箭头或通过鼠标的滑轮向下移动一行:
6、nl 命令
nl 命令用于显示文件的行号 ,该命令后跟文件名称。 例如以下通过cat命令显示主机静态DNS配置文件/etc/hosts,另外提供nl命令显示该文件并为该文件标行号:
[yyx329@192 ~]$ nl /etc/hosts
在终端中输入命令:
7、ln 命令
链接命令ln用于给文件在另一个路径下创建一个链接实现链接访问 ,从而节省磁盘空间,后跟源文件或目录和目的文件或目录。 Linux中链接可分为硬链接和软链接,硬链接会在设定的路径下生成一个与源文件大小相同的文件,而软链接会在设定的路径下生成一个文件镜像,它类似一个快捷方式,生成的链接文件与原文件都是同步变化的,即若删除原文件,则链接文件会失效,软链接要在ln命令后加参数-s:
ls #硬链接
ls -s #软链接
8、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的文件:
9、chmod 命令
通过chmod命令用于控制文档的存取权限 ,Linux中的存取权限分为三级,分为文件拥有者(User)、与拥有者同组的用户(Group)和其他用户(Other)三级,这三级对应a、b和c三个数字,它的格式如下:
chmod abc file
文件权限各位如下,其中的rwx分别代表r=4,w=2,x=1 :
(1)文件类型
文件类型名称 | 含义 |
---|
d | 目录 | - | 普通文件 | c | 字符设备文件 | 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 | 可执行 |
(3)各rwx代表的数字对应的权限如下,其实rwx这三项就相当于二进制依次递增到rwx:
rwx | 数字 | 权限 |
---|
- - - | 0 | 无权限 | - - x | 1 | 只执行 | - w - | 2 | 只写入 | - w x | 3 | 写入和执行 | r - - | 4 | 只读 | r - x | 5 | 只读和执行 | r w - | 6 | 只读和写入 | r w x | 7 | 只读和执行和写入 |
例如在Linux中一个文件的访问权限信息为“-rwxr- -r- -”,则文件所有者、其他用户拥有哪些权限? 由于该文件的访问权限信息为“-rwxr- -r- -”,对应: 该文件类型为普通文件,该文件的拥有者有读、写和执行权限,与拥有者同组者以及其他用户都没有读、写和执行权限。
10、chgrp 命令
chgrp 命令用于变更文件或目录的工作组 ,格式如下:
chgrp -option 工作组 文件或目录
(1)-R 将指定目录下的所有文件及子目录一并变更; (2)-v 显示执行过程。
11、mount 命令
mount 命令用于挂载Linux系统之外的文件 ,例如如下命令:
mount -t iso9660 /dev/cdrom /mnt/cdrom #挂载光盘
umount /mnt/cdrom #卸载光盘
mount /dev/sdb1 /mnt/usb #挂载光盘
三、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、更改口令 passwd 命令
passwd 命令用于更改当前用户的口令 ,要注意该命令不是password,Linux中每个用户口令都存放在/etc/passwd中与之对应有一行记录,/etc/shadow中存放加密后的用户密码,/etc/group存放管理用户组的基本文件,每行记录对应一个组(用户组名、加密后的组口令、组ID和组成员列表)。 (1)passwd 命令不带参数时可以直接修改当前用户的密码,命令如下:
[yyx329@192 ~]$ passwd
在终端中输入命令,接下来会系统提示输入当前密码,然后系统会让你设置新的密码: (2)passwd 命令后跟参数-l 表示禁用账号使用,参数-u 表示启用被禁用的账号,参数-d 表示删除设置的密码(使下次登录时无密码),参数-f 表示强迫用户下次登录时修改密码,参数-S 显示密码信息。
passwd -l
passwd -u
passwd -d
passwd -d
passwd -S
6、创建新用户 useradd 命令
useradd 命令用于创建一个新用户 ,后跟新用户的名称,在创建时要给该账号分配用户号、用户组、主目录和登录Shell等资源,另外可以通过userdel 命令删除帐号。 它有以下常用的参数: (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
7、创建新工作组 groupadd 命令
groupadd 命令用于创建一个新的工作组 ,后跟新工作组的名称,它有以下常用参数: (1)-g 表示指定工作组的ID(ID值是唯一的),若同时带上参数-o 则ID可以重复使用(通常工作组ID中0-499是保留给系统账号使用,而新建的工作组ID从500开始依次递增); (2)-r 表示建立系统组号,系统会自动选定ID小于499的ID值; (3)-f 表示在创建工作组时,若该工作组已存在,则强制退出不对已存在的工作组进行修改。 例如创建一个新的系统工作组名称为newgroup,它的ID由系统选定,如下命令:
[yyx329@192 ~]$ groupadd -r newgroup
8、设置服务 chkconfig 命令
chkconfig 命令用于设置和检查系统的各种服务 ,后跟服务的名称,它的常用参数有: (1)-add 表示在系统启动的配置文件中增加指定系统服务,即增加配置; (2)-del 表示在系统启动的配置文件中删除指定系统服务,即删除配置; (3)-level 指定系统服务的执行等级的开启或关闭。
chkconfig -level level servename on/off
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
在终端中输入命令:
|