pwd命令用于显示用户当前所处的目录。如果用户不知道自己当前所处的目录,就必须使用它。例如:
[root@RHEL7-1 etc]# pwd
/etc
cd命令用来在不同的目录中进行切换。用户在登录系统后,会处于用户的家目录($HOME)中,该目录一般以/home开始,后跟用户名,这个目录就是用户的初始登录目录(root用户的家目录为/root)。如果用户想切换到其他的目录中,就可以使用cd命令,后跟想要切换的目录名。例如:
[root@RHEL7-1 etc]# cd #改变目录位置至用户登录时的工作目录
[root@RHEL7-1~]# cd dir1 #改变目录位置至当前目录下的dir1子目录下
[root@RHEL7-1dir1]# cd ~ #改变目录位置至用户登录时的工作目录(用户的家目录)
[root@RHEL7-1~]# cd .. #改变目录位置至当前目录的父目录
[root@RHEL7-1/]# cd #改变目录位置至用户登录时的工作目录
[root@RHEL7-1~]# cd ../etc #改变目录位置至当前目录的父目录下的etc 子目录下
[root@RHEL7-1 etc]# cd/dir1/subdir1 #利用绝对路径表示改变目录到 /dir1/subdir1目录下
ls命令用来列出文件或目录信息。该命令的语法为
ls [参数] [目录或文件]
ls命令的常用参数选项如下。
-a:显示所有文件,包括以“.”开头的隐藏文件。
-A:显示指定目录下所有的子目录及文件,包括隐藏文件。但不显示“.”和“…”。-c:按文件的修改时间排序。
-C:分成多列显示各行。
-d:如果参数是目录,则只显示其名称而不显示其下的各个文件。往往与“-l”选项一起使用,以得到目录的详细信息。
-l:以长格形式显示文件的详细信息。
-i:在输出的第一列显示文件的i节点号。例如:
[root@RHEL7-1~]#ls #列出当前目录下的文件及目录
[root@RHEL7-1~]#ls -a #列出包括以“.”开始的隐藏文件在内的所有文件
[root@RHEL7-1~]#ls -t #依照文件最后修改时间的顺序列出文件
[root@RHEL7-1~]#ls -F #列出当前目录下的文件名及其类型
[root@RHEL7-1~]#ls -l #列出当前目录下所有文件的权限、所有者、文件大小、修改时间及名称
[root@RHEL7-1~]#ls -lg #同上,并显示出文件的所有者工作组名
[root@RHEL7-1~]#ls -R #显示出目录下以及其所有子目录的文件名
cat命令主要用于滚屏显示文件内容或是将多个文件合并成一个文件。
该命令的语法为:
cat [参数] 文件名
cat命令的常用参数选项如下。
-b:对输出内容中的非空行标注行号。
-n:对输出内容中的所有行标注行号。
通常使用cat命令查看文件内容,但是cat命令的输出内容不能够分页显示,要查看超过一屏的文件内容,需要使用more或less等其他命令。如果在cat命令中没有指定参数,则cat会从标准输入(键盘)中获取内容。
例如,要查看/soft/file1文件内容的命令为:
[root@RHEL7-1~]#cat /soft/file1
利用cat命令还可以合并多个文件。例如,要把file1和file2文件的内容合并为file3,且file2文件的内容在file1文件的内容前面,则命令为:
[root@RHEL7-1~]# cat file2 file1>file3
#如果file3文件存在,则此命令的执行结果会覆盖file3文件中原有内容
[root@RHEL7-1~]# cat file2 file1>file3
#如果file3文件存在,此命令的执行结果将把file2和file1文件的内容附加到file3文件中原有内容的后面。
在使用cat命令时,如果文件太长,用户只能看到文件的最后一部分。这时可以使用more命令,一页一页地分屏显示文件的内容。more命令通常用于分屏显示文件内容。大部分情况下,可以不加任何参数选项执行more命令查看文件内容。执行more命令后,进入more状态,按“Enter”键可以向下移动一行,按“Space”键可以向下移动一页;按“Q”键可以退出more命令。该命令的语法为:
more [参数] 文件名
more命令的常用参数选项如下。
-num:这里的num是一个数字,用来指定分页显示时每页的行数。
+num:指定从文件的第num行开始显示。
例如:
[root@RHEL7-1~]#more file1
#以分页方式查看file1文件的内容
[root@RHEL7-1~]#cat file1 | more
#以分页方式查看file1文件的内容
less [选项] 文件名
less 命令的作用和 more 十分类似,都用来浏览文本文件中的内容,不同之处在于,使用 more 命令浏览文件内容时,只能不断向后翻看,而使用 less 命令浏览,既可以向后翻看,也可以向前翻看。
tail命令用于显示文件的末尾部分,默认情况下,只显示文件的末尾10行内容。该命令的语法为:
tail [参数] 文件名
tail命令的常用参数选项如下。
-n num:显示指定文件的末尾num行。
-c num:显示指定文件的末尾num个字符。
+num:从第num行开始显示指定文件的内容。
例如:
[root@RHEL7-1~]#tail -n 20 /etc/httpd/conf/httpd.conf
#显示 httpd.conf文件的末尾20行
head命令用于显示文件的开头部分,默认情况下只显示文件的前10行内容。
该命令的语法为:
head [参数] 文件名
head命令的常用参数选项如下。
-n num:显示指定文件的前num行。
-c num:显示指定文件的前num个字符。
例如:
[root@RHEL7-1~]#head -n 20 /etc/httpd/conf/httpd.conf
#显示 httpd.conf文件的前20行。
mkdir命令用于创建一个目录。该命令的语法为
mkdir [参数] 目录名
上述目录名可以为相对路径,也可以为绝对路径。mkdir命令的常用参数选项如下。
-p:在创建目录时,如果父目录不存在,则同时创建该目录及该目录的父目录。例如:
[root@RHEL7-1~]#mkdir dir1
#在当前目录下创建dir1子目录。
[root@RHEL7-1~]#mkdir –pdir2/subdir2
#在当前目录的dir2目录中创建subdir2子目录,如果dir2目录不存在,则同时创建。
rmdir命令用于删除空目录。该命令的语法为
rmdir [参数] 目录名
上述目录名可以为相对路径,也可以为绝对路径。但所删除的目录必须为空目录。rmdir命令的常用参数选项如下。
-p:在删除目录时,一同删除父目录,但父目录中必须没有其他目录及文件。
例如:
[root@RHEL7-1~]#rmdir dir1
#在当前目录下删除dir1空子目录
[root@RHEL7-1~]#rmdir -pdir2/subdir2
#/删除当前目录中dir2/subdir2子目录,//删除subdir2目录时,如果dir2目录中无其他目录,则一起删除。
cp命令主要用于文件或目录的复制。该命令的语法为
cp [参数] 源文件 目标文件
cp命令的常用参数选项如下。
-a:尽可能将文件状态、权限等属性照原状予以复制。
-f:如果目标文件或目录存在,先删除它们再进行复制(即覆盖),并且不提示用户。
-i:如果目标文件或目录存在,提示是否覆盖已有的文件。
-R:递归复制目录,即包含目录下的各级子目录。
复制(cp)这个指令是非常重要的,不同身份者执行这个指令会有不同的结果产生,尤其是-a、-p选项,对于不同身份来说,差异非常大。下面的练习中,有的身份为root,有的身份为一般账号(在这里用bobby这个账号),练习时请特别注意身份的差别。
【例】用root身份,将家目录下的.bashrc复制到/tmp下,并更名为bashrc。
[root@RHEL7-1~]# cp ~/.bashrc /tmp/bashrc
[root@RHEL7-1~]# cp –i ~/.bashrc /tmp/bashrc
cp: overwrite /tmp/bashrc’? n 不覆盖,y为覆盖
#重复做两次,由于/tmp下已经存在bashrc了,加上-i选项后,
#则在覆盖前会询问使用者是否确定!可以按下n或者y来二次确认
【例】变换目录到/tmp,并将/var/log/wtmp复制到/tmp且观察属性。
[root@RHEL7-1 tmp]# cp -a /var/log/wtmp wtmp_2
[root@RHEL7-1 tmp]# ls -l /var/log/wtmp wtmp_2
#如果想要将文件的所有特性都一起复制过来该怎么办?可以加上-a,如下所示。
[root@RHEL7-1 tmp]# cp -a /var/log/wtmp wtmp_2
[root@RHEL7-1 tmp]# ls -l /var/log/wtmp wtmp_2
-rw-rw-r—1 root utmp 96384 Sep 2411:54/var/log/wtmp
-rw-rw-r—1 root utmp 96384 Sep 2411:54 wtmp_2
由于是root的身份,因此复制过来的文件拥有者与群组就改变成为root所有。由于具有这个特性,所以当我们在进行备份的时候,某些需要特别注意的特殊权限文件。例如,密码文件(/etc/shadow)以及一些配置文件,就不能直接以cp来复制,而必须要加上-a或-p等属性。
注意:如果想要复制文件给其他使用者,也必须要注意文件的权限(包含读、写、执行以及文件拥有者等),否则,其他人还是无法针对你给的文件进行修改。
mv命令主要用于文件或目录的移动或改名。该命令的语法为
mv [参数] 源文件或目录
目标文件或目录mv命令的常用参数选项如下。
-i:如果目标文件或目录存在,则提示是否覆盖目标文件或目录。
-f:无论目标文件或目录是否存在,直接覆盖目标文件或目录,不提示。
例如:
#将当前目录下的testa文件移动到/usr/目录下,文件名不变
[root@RHEL7-1~]# mv testa /usr/
#将/usr/testa文件移动到根目录下,移动后的文件名为tt
[root@RHEL7-1~]# mv /usr/testa /tt
rm命令主要用于文件或目录的删除。该命令的语法为
rm [参数] 文件名或目录名
rm命令的常用参数选项如下。
-i:删除文件或目录时提示用户。
-f:删除文件或目录时不提示用户。
-R:递归删除目录,即包含目录下的文件和各级子目录。
touch命令用于建立文件或更新文件的修改日期。该命令的语法为:
touch [参数] 文件名或目录名
touch命令的常用参数选项如下。
-d yyyymmdd:把文件的存取或修改时间改为yyyy年mm月dd日。
-a:只把文件的存取时间改为当前时间。
-m:只把文件的修改时间改为当前时间。
例如:
[root@RHEL7-1~]# touch aa
#如果当前目录下存在aa文件,则把aa文件的存取和修改时间改为当前时间
#如果不存在aa文件,则新建aa文件
[root@RHEL7-1~]# touch -d 20180808 aa
#将aa文件的存取和修改时间改为2018年8月8日
clear命令用于清除字符终端屏幕内容。
等价于CTRL+L
uname命令用于显示系统信息。
例如:
root@RHEL7-1~]# uname -a
LinuxServer 3.6.9-5.EL
#1 Wed Jan 5 19:22:18 EST 2005 i686 i686i386 GNU/Linux
man命令用于列出命令的帮助手册。
例如:
[root@RHEL7-1~]# man ls
典型的man手册包含以下几部分。
NAME:命令的名字。
SYNOPSIS:名字的概要,简单说明命令的使用方法。
DESCRIPTION:详细描述命令的使用,如各种参数选项的作用。
SEE ALSO:列出可能要查看的其他相关的手册页条目。
AUTHOR、COPYRIGHT:作者和版权等信息。
shutdown命令用于在指定时间关闭系统。该命令的语法为:
shutdown [参数] 时间 [警告信息]
shutdown命令常用的参数选项如下。
-r:系统关闭后重新启动。
-h:关闭系统。时间可以是以下几种形式。
now:表示立即。hh:mm:指定绝对时间,
hh表示小时,mm表示分钟。
+m:表示m分钟以后。
例如:
[root@RHEL7-1~]# shutdown -h now #关闭系统
halt命令表示立即停止系统,但该命令不自动关闭电源,需要人工关闭电源。
reboot命令用于重新启动系统,相当于“shutdown -r now”。
poweroff命令用于立即停止系统,并关闭电源,相当于“shutdown-h now”。
history命令用于显示用户最近执行的命令,可以保留的历史命令数和环境变量HISTSIZE有关。只要在编号前加“!”,就可以重新运行history中显示出的命令行。例如:
[root@RHEL7-1~]# !1239
echo命令用于在终端输出字符串或变量提取后的值,格式为
echo[字符串 |$ 变量]
例如,把指定字符串“long.com”输出到终端屏幕的命令为:
[root@RHEL7-1 ~]# echo long.Com
该命令会在终端屏幕上显示如下信息:long.Com
下面,我们使用$变量的方式提取变量shell的值,并将其输出到屏幕上
root@RHEL7-1 ~]# echo $SHELL
/bin/bash
在Linux系统中,命令区分大小写。在命令行中,可以使用“Tab”键来自 动补齐命令。利用向上或向下的光标键,可以翻查曾经执行过的历史命令,并可以再次执行。如果要在一个命令行上输入和执行多条命令,可以使用分号来分隔命令,如“cd/;ls”。断开一个长命令行,可以使用反斜杠“\”,可以将一个较长的命令分成多行表达,增强命令的可读性。执行后,shell自动显示提示符“>”,表示正在输入一个长命令,此时可继续在新行上输入命令的后续部分。