linux的基础命令
作为一个程序员,我们在进行项目部署和运维时,经常会用到一些linux命令,可是这些命令老是忘记,每次用到的时候都要去谷歌百度,很是麻烦!这不,为了自己使用方便,对常见的linux命令进行了系统的总结,以便在用到时能够快速地找到相关命令,同时有需要的朋友也可以参考搜藏该篇文章!文章对讲到的每个命令都有详细的参数解释,并且给出一些常用例子,因此也非常适合用来学习!
全文命令分为以下6个模块:
1、常用系统工作命令
2、系统状态检测命令
3、工作目录切换命令
4、文本文件编辑命令
5、文件目录管理命令
6、打包压缩与搜索命令
在说具体命令之前,读者应该清楚linux命令的基本格式,如下:
linux命令的格式
以下内容为具体的命令详解:
一、常用系统工作命令
1、echo命令
2、date命令
3、reboot命令(相当于windows的重启)
4、poweroff命令(相当于windows的关机)
5、wget命令
wget命令用于在终端中下载网络文件,格式为“ wget [参数 ] 下载地址”。
6、ps命令
ps命令用于查看系统中的进程状态,格式为“ ps [参数 ]”。
常用用法:ps aux或者ps lax
7、top命令(相当于window中的任务管理器)
top命令用于动态地监视进程活动与系统负载等信息,默认每10秒刷新一次。
8、pidof命令
pidof命令用于查询某个指定服务进程的 PID值,格式为“ pidof [参数 ] [服务名称 ]”。
9、kill命令
kill命令用于终止某个指定 PID的服务进程,格式为“ kill [参数 ] [进程 PID]”。
10、killall命令
通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果逐个去结束这
些进程会比较麻烦,此时可以使用 killall命令来批量结束某个服务程序带有的全部进程。下
面以 httpd服务程序为例,来结束其全部进程。
二、系统状态检测命令
1、ifconfig命令
此命令被用来获取网络接口配置信息并对此进行修改。
由于此命令叫复杂,可以参考此篇文章进行学习:https://xp9802.iteye.com/blog/2120351
2、uname命令
uname命令用于查看系统内核与系统版本等信息,格式为“ uname [-a]”。
在使用uname命令时,一般会固定搭配上 -a参数来完整地查看当前系统的内核名称、主
机名、内核发行版本、节点名、系统时间、硬件名称、硬件平台、处理器类型以及操作系统名
称等信息。
3、uptime命令
uptime用于查看系统的负载信息,格式为 uptime。
uptime命令真的很棒,它可以显示当前系统时间、系统已运行 时间、启用终端数量以
及平均负载值等信息。平均负载值指的是系统在最近 1分钟、 5分钟、 15分钟内的压力情
况(下面加粗的信息部分);负载值越低越好,尽量不要长期超过 1,在生产环境中不要超
过 5。
4、free命令
free用于显示当前系统中内存的使用量信息,格式为“ free [-h]”。
为了保证Linux系统不会因资源耗尽而突然宕机,运维人员需要时刻关注内存的使用量。
在使用 free命令时,可以结合使用 -h参数以更人性化的方式输出当前内存的实时使用量信息。
表 2-8所示为电脑上执行 free -h命令之后的输出信息。需要注意的是,输出信
息中的中文注释是作者自行添加的内容,实际输出时没有相应的参数解释。
5、who命令
who用于查看当前登入主机的用户终端信息,格式为“ who [参数 ]”。
这三个简单的字母可以快速显示出所有正在登录本机的用户的名称以及他们正在开启的
终端信息。
6、last命令
last命令用于查看所有系统的登录记录,格式为“ last [参数 ]”。
使用last命令可以查看本机的登录记录。但是,由于这些信息都是以日志文件的形式保
存在系统中,因此黑客可以很容易地对内容进行篡改。千万不要单纯以该命令的输出信息而
判断系统有无被恶意入侵!
7、history命令
用于显示历史执行过的命令,格式为“ history [-c]”。
history命令应该是作者最喜欢的命令。执行 history命令能显示出当前用户在本地计算机
中执行过的最近 1000条命令记录。如果觉得 1000不够用,还可以自定义 /etc/profile文件中的
HISTSIZE变量值。在使用 history命令时,如果使用 -c参数则会清空所有的命令历史记录。
还可以使用“!编码数字”的方式来重复执行某一次的命令。总之, history命令有很多有趣的玩法等待您去开发。
历史命令会被保存到用户家目录中的.bash history文件中。 Linux系统中以点(.)开
头的文件均代表隐藏文件,这些文件大多数为系统服务文件,可以用 cat命令查看其文件
内容。
要清空当前用户在本机上执行的Linux命令历史记录信息,可执行如下命令:
三、工作目录切换命令
1、pwd命令
pwd命令用于显示用户当前所处的工作目录,格式为“ pwd [选项 ]”。
2、cd命令
cd命令用于切换工作路径,格式为“ cd [目录名称 ]”。
这个命令应该是最常用的一个
Linux命令了。可以通过 cd命令迅速、灵活地切换到不同
的工作目录。除了常见的切换目录方式,还可以使用“ cd -”命令返回到上一次所处的目录
使用“ cd…”命令进入上级目录 以 及使用“ cd ~”命令切换到当前用户的家目录,亦或使用
cd ~username”切换到其他用户的家目录。例如,可以使用 cd 路径”的方式切换进 /etc目
录中:
同样的道理,可使用下述命令切
换到 /bin目录中:
此时,要返回到上一次的目录(即
/etc目录),可执行如下命令:
还可以通过下面的命令快速切换到用户的家目录:
3、ls命令
ls命令用于显示目录中的文件信息,格式为“ ls [选项 ] [文件 ] ”。
所处的工作目录不同,当前工作目录下的文件肯定也不同。使用 ls命令的“ “-a”参数看
到全部文件(包括隐藏文件),使用“ “-l”参数可以查看文件的属性、大小等详细信息。将这
两个参数整合之后,再执行 ls命令即可查看当前目录中的所有文件并输出这些文件的属性
信息:
如果想要查看目录属性信息,则需要额外添加一个-d参数。例如 ,可使用如下命令查看
/etc目录的权限与属性信息:
四、文本文件编辑命令
Linux系统中“一切都是文件”,而对服务程序进行配置自然也就是编辑程序的配置文件。如
果不能熟练地查阅系统或服务的配置文件,那以后工作时可就真的要尴尬了。本节将讲解几
条用于查看文本文件内容的命令。
1、cat命令
cat命令用于查看纯文本文件(内容较少的),格式为“ cat [选项 ] [文件 ]”。
Linux系统中有多个用于查看文本内容的命令,每个命令都有自己的特点,比如这个 cat命令就是用于查看内容较少的纯文本文件的。 cat这个命令也很好记,因 为 cat在英语中是“猫”
的意思,小猫咪是不是给您一种娇小、可爱的感觉呢?
如果在查看文本内容时还想顺便显示行号的话,不妨在
cat命令后面追加一个 -n参数:
2、more命令
more命令用于查看纯文本文件(内容较多的),格式为“ more [选项 ]文件”。
如果需要阅读长篇小说或者非常长的配置文件,那么“小猫咪”可就真的不适合了。因
为一旦使用 cat命令阅读长篇的文本内容,信息就会在屏幕上快速翻滚,导致自己还没有来得
及看到,内容就已经翻篇了。因此对于长篇的文本内容,推荐使用 more命令来查看。 more命
令会在最下面使用百分比的形式来提示您已经阅读了多少内容。您还可以使用空格键或回车
键向下翻页:
3、head命令
head命令用于查看纯文本文档的前 N行,格式为“ head [选项 ] [文件 ]”。
在阅读文本内容时,谁也难以保证会按照从头到尾的顺序往下看完整个文件。如果只想
查看文本中前 20行的内容,该怎么办呢? head命令可以派上用场了:
4、tail命令
tail命令用于查看纯文本文档的后 N行或持续刷新内容,格式为“ tail [选项 ] [文件 ]”。
我们可能还会遇到另外一种情况,比如需要查看文本内容的最后
20行,这时就需要用到
tail命令了。 tail命令的操作方法与 head命令非常相似,只需要执行“ tail -n 20 文件名”命令
就可以达到这样的效果。 tail命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时
查看最新日志文件时,这特别有用,此时的命令格式为“ tail -f 文件名”:
5、tr命令
tr命令用于替换文本文件中的字符,格式为“ tr [原始字符 ] [目标字符 ]”。
在很多时候,我们想要快速地替换文本中的一些词汇,又或者把整个文本内容都进行替
换,如果进行手工替换,难免工作量太大,尤其是需要处理大批量的内容时,进行手工替换更
是不现实。这时,就可以先使用 cat命令读取待处理的文本,然后通过管道符把这些文本内容传递给 tr命令进行替换操作即可。例如,把某个文本内容中的英文全部替换
为大写:
6、wc命令
wc命令用于统计指定文本的行数、字数、字节数,格式为“ wc [参数 ] 文本”。
说起这个命令,总有同学会联想到一种公共设施,其实这两者毫无关联。
Linux系统中的 wc命令用于统计文本的行数、字数、字节数等。如果为了方便自己记住这个命令的作用,也可以联想到上厕所时好无聊,无聊到数完了手中的如厕读物上有多少行字。
wc的参数以及相应的作用如表 2-10所示。
在Linux系统中, passwd是用于保存系统账户信息的文件,要统计当前系统中有多少个
用户,可以使用下面的命令来进行查询,是不是很神奇:
7、stat命令
stat命令用于查看文件的具体存储信息和时间等信息,格式为“ stat 文件名称”。
stat命令可以用于查看文件的存储信息和时间等信息,命令 stat anaconda-ks.cfg会显示出
文件的三种时间状态(已加粗): Access、 Modify、 Change。这三种时间的区别将在下面的 touch命令中详细详解:
8、diff命令
diff命令用于比较多个文本文件的差异,格式为“ diff [参数 ] 文件”。
在使用diff命令时,不仅可以使用 --brief参数来确认两个文件是否不同,还可以使用 -c参
数来详细比较出多个文件的差异之处,这绝对是判断文件是否被篡改的有力神器。例如,先
使用 cat命令分别查看 diff A.txt和 diff B.txt文件的内容,然后进行比较:
接下来使用
diff --brief命令显示比较后的结果,判断文件是否相同:
最后使用带有
-c参数的 diff命令来描述文件内容具体的不同:
五、文件目录管理命令
1、touch命令
touch命令用于创建空白文件或设置文件的时间,格式为“ touch [选项 ] [文件 ]”。
在创建空白的文本文件方面,这个
touch命令相当简捷,简捷到没有必要铺开去讲。
比如, touch linuxprobe命令可以创建出一个名为 linuxprobe的空白文本文件。对 touch命
令来讲,有难度的操作主要是体现在设置文件内容的修改时间( mtime)、文件权限或属性
的更改时间( ctime)与文件的读取时间 atime)上面。 touch命令的参数及其作用如表 2-11所示。
接下来,我们先使用ls命令查看一个文件的修改时间,然后修改这个文件,最后再通过 touch命令把修改后的文件时间设置成修改 之前 的时间(很多黑客就是这样做的呢):
2、mkdir命令
mkdir命令用于创建空白的目录,格式为“ mkdir [选项 ] 目录”。
在Linux系统中,文件夹是最常见的文件类型之一。除了能创建单个空白目录外, mkdir命令还可以结合 -p参数来递归创建出具有嵌套叠层关系的文件目录。
3、cp命令
cp命令用于复制文件或目录,格式为“ cp [选项 ] 源文件 目标文件”。
大家对文件复制操作应该不陌生,在
Linux系统中,复制操作具体分为 3种情况:
1、如果目标文件是目录,则会把源文件复制到该目录中;
2、如果目标文件也是普通文件,则会询问是否要覆盖它;
3、如果目标文件不存在,则执行正常的复制操作。
cp命令的参数及其作用如表 2-12所示。
接下来,使用touch创建一个名为 install.log的普通空白文件,然后将其复制为一份名为x.log的备份文件,最后再使用 ls命令查看目录中的文件:
4、mv命令
mv命令用于剪切文件或将文件重命名,格式为“ mv [选项 ] 源文件 [目标路径 |目标文件名 ]”。
剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件。如果
在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名:
5、rm命令
rm命令用于删除文件或目录,格式为“ rm [选项 ] 文件”。
在Linux系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是
看到这种反复的确认信息,可在 rm命令后跟上 -f参数来强制删除。另外,想要删除一个目录,
需要在 rm命令后面一个 -r参数才可以,否则删除不掉。我们来尝试删除前面创建的 install.log和 linux.log文件:
6、dd命令
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“ dd [参数 ]”。
dd命令是一个比较重要而且比较有特色的一个命令,它能够让用户按照指定大小和个数
的数据块来复制文件的内容。 dd命令的参数及其作用如下表。
例如我们可以用dd命令从 /dev/zero设备文件中取出一个大小为 560MB的数据块,然后
保存成名为 560 file的文件。在理解了这个命令后,以后就能随意创建任意大小的文件了:
dd命令的功能也绝不仅限于复制文件这么简单。如果您想把光驱设备中的光盘制作成 iso格
式的镜像文件,在 Windows系统中需要借助于第三方软件才能做到,但在 Linux系统中可以直接
使用 dd命令来压制出光盘镜像文件,将它 变成 一个可立即使用的 iso镜像:
7、file命令
file命令用于查看文件的类型,格式为“ file 文件名”。
在Linux系统中,由于文本、目录、设备等所有这些一切都统称为文件,而我们又不能
单凭后缀就知道具体的文件类型,这时就需要使用 file命令来查看文件类型了。
六、打包压缩与搜索命令
在网络上,人们越来越倾向于传输压缩格式的文件,原因是压缩文件体积小,在网速相
同的情况下,传输时间短。下面将学习如何在 Linux系统中对文件进行打包压缩与解压,以
及让用户基于关键词在文本文件中搜索相匹配的信息、在整个文件系统中基于指定的名称或
属性搜索特定文件。本节虽然只有 3条命令,但是其功能都比较复杂而且参数很多,因此放
到了最后讲解。
1、tar命令
tar命令用于对文件进行打包压缩或解压,格式为“ tar [选项 ] [文件 ]”。
在Linux系统中,常见的文件格式比较多,其中主要使用的是 .tar或 .tar.gz或 .tar.bz2格式,我
们不用担心格式太多而记不住,其实这些格式大部分都是由 tar命令来生成的。 tar命令的参数及其作用如表 2-14所示。
首先,-c参数用于创建压缩文件, ,-x参数用于解压文件,因此这两个参数不能同时使用。
其次, ,-z参数指定使用 Gzip格式来压缩或解压文件, ,-j参数指定使用 bzip2格式来压缩或解
压文件。用户使用时则是根据文件的后缀来决定应使用何种格式参数进行解压。在执行某些
压缩或解压操作时,可能需要花费数个小时,如果屏幕一直没有输出,您一方面不好判断打
包的进度情况,另一方面也会怀疑电脑死机了,因此非常推荐使用 -v参数向用户不断显 示压
缩或解压的过程。 -C参数用于指定要解压到哪个指定的目录。 -f参数特别重要,它必须放到
参数的最后一位,代表要压缩或解压的软件包名称。刘遄老师一般使用“ tar -czvf 压缩包名
称 .tar.gz 要打包的目录”命令把指定的文件进行打包压缩;相应的解压命令为“ tar -xzvf 压缩
包名称 .tar.gz”。下面我们来逐个演示下打包压缩与解压的操作。先使用 tar命令把 /etc目录通
过 gzip格式进行打包压缩,并把文件命名为 etc.tar.gz
接下来将打包后的压缩包文件指定解压到/root/etc目录中(先使用 mkdir命令来创建/root/etc目录):
2、grep命令
grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“ grep [选项 ] [文件 ]”。
grep命令的参数及其作用如下表。
grep命令是用途最广泛的文本搜索匹配工具,虽然有很多参数,但是大多数基本上都用不到。我们在这里只讲两个最最常用的参数 :-n参数用来显示搜索到信息的行号; ;-v参数用于反选信息(即没有包含关键词的所有信息行)。这两个参数几乎能完成您日后 80%的工作需要,至于其他上百个参数,即使以后在工作期间遇到了,再使用 man grep命令查询也来得及。在Linux系统中, ,/etc/passwd文件是保存着所 有的用户信息,而一旦用户的登录终端被设置成 /sbin/nologin,则不再允许登录系统,因此可以使用 grep命令来查找出当前系统中不允许登录系统的所有用户信息:
3、find命令
find命令用于按照指定条件来查找文件,格式为“ find [查找路径 ] 寻找条件 操作”。
“Linux系统中的一切都是文件”,接下来就要见证这句话的分量了。
在 Linux系统中,搜索工作一般都是通过 find命令来完成的,它可以使用不同的文件特性作
为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到
屏幕上。 find命令的参数以及作用如表 2-16所示。
这里需要重点讲解一下
-exec参数重要的作用。这个参数用于把 find命令搜索到的结果交
由紧随其后的命令作进一步处理,它十分类似于管道符技术,并且由于 find命令对参数的特殊要求,因此虽然 exec是长格式形式,但依然只需要一个减号(-)。
根据文件系统层次标准(Filesystem Hierarchy Standard)协议 Linux系统中的配置文件
会保存到 /etc目录中。如果要想获取到该目录中所有以 host开头的文件列表,
可以执行如下命令: