【Linux】Linux常用命令

Linux是一个可靠的、高性能的系统,而所有的这些优越性只有在直接使用Linux命令行时才能充分地体现出来。Linux系统安装成功后,就可以进入到与Windows类似的图形化界面了。这个界面就是Linux图形化界面X窗口系统的一部分。X窗口系统仅仅是Linux上的一个软件,它并不是Linux自身的一部分。

虽然X窗口系统已经和Linux系统整合的非常好,但还是不能保证绝对的可靠性。另外,X窗口系统是一个相当耗费系统资源的软件,它会大大降低Linux的系统性能。因此,若是想跟好的享受Linux带来的高效,建议使用Linux的命令行界面,也叫做终端。

 

Linux命令大全的网页搜索版:Linux命令大全

 

Linux命令行界面

我们刚启动Linux系统的时候,看到的是X窗口,如果想要使用命令行,该怎么进入命令行界面呢?

在X窗口(桌面)右键->打开终端。此时,就可以看到Linux命令行界面了

这里需要注意一下:$代表普通用户,#代表root用户。不同角色的用户拥有不同权限的命令,至于怎样求换用户等等,我们在下面的命令中会讲解到。

 

命令在线求助

先来了解一下Linux有多少命令呢?在命令行模式下,你可以直接按下两个“Tab键”,看看总共有多少命令可以让你用?

[root@localhost ~]# <==在这里不要输入任何字符,直接输入两次[tab]按键 
Display all 2387 possibilities? (y or n) <==如果不想要看,按 n 离开

可以看到,一个2387条命令可以供使用,命令行的数目还是很多的。如果都要记下来,绝对会是让人疯的,那么我们就要掌握一个方法,面对一个陌生的命令,怎么去使用呢?

答案就是找男人啊!开玩笑,开玩笑。其实所谓找男人,就是找man(manual,操作系统的简称),可以通过man命令可以查看到某一个命令的使用方法。

比如,说想要查看su命令的使用方法:

[root@localhost ~]# man su

按回车键,就会显示出如下的内容:

如此一来,不就可以知道su命令的相关选项与参数了吗?真方便! 而出现的这个屏幕画面,我们称呼它为man page, 你可以在里头查询他的用法与相关的参数说明。

备注:进入man命令的功能后,你可以按下“空格键”往下翻页,可以按下“q键”来离开man的环境。 更多在man命令下的功能,在本小节后面会谈到的!

首先,在这个man page的第一行,你可以看到的是:SU(1),SU我们知道是命令的名称, 那么(1)代表什么呢?它代表的是:使用者在shell环境中可以操作的命令或可运行文件!除了1之外,常见的几个数字的意义是这样的:

查询数字的含义
代号代表内容
1使用者在shell环境中可以操作的命令或可运行文件
2系统核心可呼叫的函数与工具等
3一些常用的函数(function)与函式库(library),大部分为C的函式库(libc)
4装置文件的说明,通常在/dev下的文件
5配置文件或者是某些文件的格式
6游戏(games)
7惯例与协议等,例如Linux文件系统、网络协议、ASCII code等等的说明
8系统管理员可用的管理命令
9跟kernel有关的文件

透过这张表格的说明, 未来你如果使用man page在察看某些数据时,就会知道该命令/文件所代表的基本意义是什么了。 举例来说,如果你下达了“man null”时,会出现的第一行是:NULL(4),对照一下上面的数字意义, 原来null竟然是一个装置文件!很容易了解了吧!

那么在man page当中我还可以利用哪些按键来帮忙查阅呢?

man page帮忙查阅按键
空格键向下翻一页
Page Down向下翻一页
Page Up向上翻一页
Home去到第一页
End去到最后一页
/string向下搜寻 string 这个字符串
?string向上搜寻 string 这个字符串
n利用 / 或 ? 来搜寻字符串时,可以用 n 来继续下一个搜寻 (不论是 / 或 ?) 
N利用 / 或 ? 来搜寻字符串时,可以用 N 来继续上一个搜寻 (不论是 / 或 ?) 
q结束这次的 man page

要注意喔:上面的按键是在man page的画面当中才能使用的!

 

Linux常用命令

系统管理相关命令

useradd命令

功能:添加用户

用法:useradd [选项] 用户名

useradd命令常用参数
选项含义
-g <群组>指定用户的所述群组
-G <群组>指定用户所属的附加群组

创建完用户后,会在/home目录下,自动创建这个用户的主目录。也可以有其他选项来禁止创建目录,这里就不多介绍了。

passwd命令

作用:设置账号密码

用法:passwd 用户名

注意:使用完passwd命令后,就会提示你“New UNIX password:”,这个时候,如果输入密码的时候,会发现密码并不显示出来!不要认为是出了故障,Linux哲学认为:一旦涉及到密码,就不会有任何显示,连“*”都不会,因为这会透露密码的长度。所以,什么都不要想,该怎么输就怎么输,不要受到影响就行了。

su命令

功能:切换用户

用法:su [选项] [用户名]

su命令常用参数
选项含义
-l,--login改变身份,同时也切换环境变量
-m,-p改变身份,不切换环境变量
-c,--command变更账号使用者,执行命令后再变回原来使用者

如果选项为空的时候,默认为改变身份,不切换环境变量;如果选项为“-”的时候,默认为改变身份,同时也切换环境变量;如果用户名为空的时候,默认为root。

shutdown命令

功能:关机命令

用法:shutdown [选项] 参数

shutdown命令常用命令
选项含义
-h将系统关机
-rshutdown之后重新启动

参数可以分为时间、警告信息。其中:时间以分钟为单位,警告信息以字符串为单位。

如果选项为空,默认为将系统关机。例如:

[root@localhost ~]# shutdown -h now       <==立即将系统关机
[root@localhost ~]# shutdown 5 "System will shutdown after 5 minutes"    <==5分钟之后关机,并显示警告信息

文件管理相关命令

cp命令

功能:复制命令

用法:cp [选项] 源文件或目录 目标文件或目录

cp命令常用命令
选项含义
-a保留链接、文件属性,并复制其子目录
-d复制时保留链接
-f强制复制,删除已存在的目标而不提示
-i在覆盖目标文件之前给出提示要求用户确认
-p此时cp除了复制原文件的内容外,还将把其修改时间和访问权限也复制到新文件中
-r若给出的源文件为一个目录,cp将递归复制该目录下所有的子目录和文件

默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用-R选项;同时所有目标文件指定的目录必须是己经存在的,cp命令不能创建目录。

例如:

[root@localhost ~]# cp -a /home/test /tmp        //将目录在/home下的test移动到/tmp下
[root@localhost ~]# cp -a /home/test /tmp/test1        //将目录在/home下的test移动到/tmp下,并改名为test1
[root@localhost ~]# cp -r /home/test /tmp        //将目录在/home/test下的所有文件及子目录,移动到/tmp目录下
[root@localhost ~]# cp -a /home/*.c /tmp        //将目录在/home下的.c文件移动到/tmp下

注意这里目录和文件的区别:由于cp命令不能复制目录,如果最后一个目录的名称,且之前为-r开头,那就是文件夹;如果没有同名的文件夹目录,那就是文件。

同时,尽管-f命令为强制复制,但是一般情况下,如果遇到同名的文件还是无法覆盖,还是需要手动确认。这个原因是默认情况下,cp命令是有别名(alias cp='cp -i')的,无法强制覆盖,即使使用 -f 参数也无法强制覆盖文件。

解决方法:可以使用\cp 执行cp命令时不走alias。比如:

[root@localhost ~]# \cp -a /home/*.c /tmp        //将目录在/home下的.c文件移动到/tmp下

mv命令

功能:移动或更名

用法:mv [选项] 源文件或目录 目标文件或目录

MV命令常用命令
选项含义
-b当文件存在时,覆盖前,为其创建一个备份
-i交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件
-f

若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录

  • 如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变;
  • 如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件;
  • 如果源文件和目标文件在同一个目录下,mv的作用就是改文件名;
  • 当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

rm命令

功能:删除文件或目录

用法:rm [选项] 文件或目录

rm命令常用命令
选项含义
-i交互式删除
-f强制删除文件或目录
-r递归处理,将指定目录下的所有文件与子目录一并处理

如果删除的目标是一个目录,则必须加上-r选项。

mkdir命令

功能:创建目录

用法:mkdir [选项] 目录名

mkdir命令常用命令
选项含义
-m,--mode对新建目录设置存取权限
-p,--parents若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录

例如:

[root@localhost ~]# mkdir /test        
[root@localhost ~]# mkdir -p /test1/test2            //如果需要建立上层目录,必须加上-p选项
[root@localhost ~]# mkdir test        //没有用/标注,默认在/root文件夹下

cd命令

功能:改变当前工作文件夹

用法:cd [选项] 目录名

cd命令常用命令
选项含义
空,~进入用户主目录
-返回进入此目录之前所在的目录
..返回上级目录(若当前目录为“/“,则执行完后还在“/")
../..返回上两级目录

例如:

[root@localhost ~]# cd /home        //更改目录为/home
[root@localhost home]# cd /home/miaomiao        //更改目录为/miaomiao
[root@localhost miaomiao]# cd -            //进入此目录之前的目录
/home
[root@localhost home]# cd ..            //返回上级目录
[root@localhost /]# cd ~            //进入主目录
[root@localhost ~]# 

pwd命令

功能:查看当前路径

用法:pwd

ls命令

功能:查看目录

用法:ls [选项] [目录或文件]

ls命令常用命令
选项含义
-l单列输出,还列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等(list)
-a列出目录中的所有文件,包括“.”开头的隐藏文件(all)
-d仅显示目录名
-f

在每个输出项后追加文件的类型标识符,具体含义

:“*”表示具有可执行权限的普通文件,“/”表示目录,“@”表示符号链接,

“|”表示命令管道FIFO,“=”表示sockets套接字。当文件为普通文件时,不输出任何标识符;

-s显示文件和目录的大小(size)
-t用文件和目录的更改时间排序
-C多列显示输出结果(不包括隐藏文件),这是默认选项

当使用-l选项的时候,将单列显示文件或目录的详细信息。比如:

 -rw-------  1 sspeng sspeng  5190 Feb 17 18:44 .bash_history

具体含义为:第一列有10个字符,代表文件类型与权限,“-”为文件,“r”为目录;第二列表示有多少个文件链接到此节点;第三列表示这个文件所有者的帐号;第四列表示这个文件的所属用户;第五列表示文件容量大小,单位是B;第六列表示创建日前或者最后修改日期;第七列为文件名,其中以“.”开头的文件表示隐藏文件。

chmod命令

功能:改变访问权限

用法:chmod [who][opcode] [mode] 文件名

解释:who是可选的,默认是a(所有用户)。

chmod命令的who
who含义
uUser,即文件或目录的拥有者
gGroup,即文件或目录的所属群组
oOther,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围
aAll,即全部的用户,包含拥有者,所属群组以及其他用户(默认)

opcode是对权限的设置。

chmod命令的opcode
opcode含义
+增加权限
-删除权限
=重新分配权限

mode是具体的权限

chmod命令的mode
mode含义
r读取权限,数字代号为“4”
w写入权限,数字代号为“2”
x执行或切换权限,数字代号为“1”
-不具任何权限,数字代号为“0”
s特殊功能说明:变更文件或目录的权限

怎么样表示权限呢?以“-”开头(表示文件),后跟9位,每三位为一个小组,分别表示属主、指定组、其他用户。如果是以“r”开头,表示目录。比如:

-rw-r--r--:只有属主有读写权限;而属组用户和其他用户只有读权限;

-rwxrwxrwx:所有用户都有读、写、执行权限。

除了上面的这种用法之外,我们多数用三位八进制数字的形式来表示权限,第一位指定属主的权限,第二位指定组权限,第三位指定其他用户的权限,每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权,7(4+2+1)有读、写和执行的权限。

例如:

[root@localhost ~]# chmod a=rwx /test/test
[root@localhost ~]# chmod 777 /test/test        //与上一条等价
[root@localhost ~]# chmod ug=rwx,o=x /test/test
[root@localhost ~]# chmod 771 test/test        //与上一条等价

df命令

功能:查看磁盘的使用情况

用法:df [选项]

df命令常用命令
选项含义
-a,--all包含全部的文件系统
-h,--human-readable以可读性较高的方式来显示信息
-k指定区块大小为1024字节,以k为单位显示大小(默认)

du命令

功能:查看文件或目录大小

用法:du [选项] 指定文件或目录

du命令常用命令
选项含义
-a,-all显示目录中个别文件的大小
-b显示目录或文件大小时,以byte为单位
-c除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
-k以KB(1024bytes)为单位输出
-s,--summarize仅显示总计,只列出最后加总的值
-h,--human-readable以K,M,G为单位,提高信息的可读性

备份压缩相关命令

tar命令

功能:打包和压缩文件

用法:tar [选项] 目录或文件

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip、bzip2命令)。

tar命令常用命令
选项含义
-c建立新的打包文件
-r向打包文件末尾追加文件
-x从打包文件中释放文件
-f<文件名>指定压缩文件名字
-v处理过程中输出相关信息,显示指令执行过程
-t,--list列出压缩文件的内容
-z调用gzip来压缩打包文件,与-x联用时调用gzip解压
-j调用bzip2来压缩打包文件,与-x联用时调用bzip2解压
-Z调用compress来压缩打包文件,与-x联用时调用compress解压

例如:

[root@localhost ~]# cd /test

[root@localhost test]# tar -cvf test.tar test            //仅仅打包,不压缩
[root@localhost test]# tar -zcvf test.tar.gz test            //打包后,gzip压缩
[root@localhost test]# tar -jcvf test.tar.bz2 test            //打包后,把bzip2压缩

[root@localhost test]# tar -ztvf test.tar.gz        //查看gzip压缩后的文件
[root@localhost test]# tar -zxvf test.tar.gz        //解压gzip
[root@localhost test]# tar -jxvf test.tar.bz2        //解压bzip2

在选项-f之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。 如果加z选项,则以.tar.gz或.tgz来代表gzip压缩过的tar包;如果加j选项,则以.tar.bz2来作为tar包名。

还有一个注意点,注意到了,在我执行命令之前,将当前工作文件夹通过cd命令进行指定了。因为:在压缩文件时,当后面的备份目录使用绝对路径时,会出现问题;当指定了当前工作文件夹的话,就直接使用相对路径。当然,如果想继续使用绝对路径的话,需要再加上-P选项。

总结:-zcf(-jcf):压缩;-zxf(-jxf):解压;-ztf(-jtf):查看。

网络通信相关命令

ifconfig命令

功能:网络配置

用法:ifconfig [选项] [网络接口]

ifconfig命令常用命令
选项含义
add<地址>设置网络设备IPv6的ip地址
del<地址>删除网络设备IPv6的IP地址
<网卡>up启动指定的网络接口
<网卡>down关闭指定的网络接口
<网卡>broadcast设置网络接口的广播地址
<网卡>pointopoint启动点对点方式
<网卡>空设置指定接口设备的IP地址
<网卡>netmask设置接口的子网掩码
<网卡>media设置网络设备的媒介类型

例如:

[root@localhost ~]# ifconfig            //显示网络设备信息(激活状态的)

说明:

eth0表示第一块网卡,其中HWaddr表示网卡的物理地址,可以看到目前这个网卡的物理地址(MAC地址)是00:0C:29:21:FC:FA;

inet addr用来表示网卡的IP地址,此网卡的IP地址是192.168.52.128,广播地址Bcast是192.168.52.255,掩码地址Mask是255.255.255.0;

lo是表示主机的回环地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 httpd服务器的指定到回环地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了。但只是您能看得到,局域网的其它主机或用户无从知道。

  • 第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址);
  • 第二行:网卡的IP地址、子网、掩码;
  • 第三行:UP(代表网卡开启状态)、RUNNING(代表网卡的网线被接上)、MULTICAST(支持组播)、MTU:1500(最大传输单元):1500字节。
  • 第四、五行:接收、发送数据包情况统计;
  • 第七行:接收、发送数据字节数统计信息。
[root@localhost ~]# ifconfig eth0 up                //启动指定网卡
[root@localhost ~]# ifconfig eth0 down                //关闭指定网卡
[root@localhost ~]# ifconfig eth0 add 33ffe:3240:800:1005::2/64    //为网卡eth0配置IPv6地址
[root@localhost ~]# ifconfig eth0 del 33ffe:3240:800:1005::2/64    //为网卡eth0删除IPv6地址

[root@localhost ~]# ifconfig eth0 192.168.2.10            //设置IP地址
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0            //设置IP、掩码
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255        //设置IP、掩码、广播

注意:用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

netstat命令

功能:查看网络状态和端口状态

用法:netstat [选项]

netstat命令常用命令
选项含义
-a,--all显示所有连线中的Socket
-l,--listening显示监控中的服务器的Socket
-s,--statistice显示网络工作信息统计表
-t,--tcp显示TCP传输协议的连线状况
-u,--udp显示UDP传输协议的连线状况
-p,--programs显示正在使用Socket的程序识别码和程序名称

例如:

[root@localhost ~]# netstat -a         //列出所有端口
[root@localhost ~]# netstat -at        //列出所有tcp端口
[root@localhost ~]# netstat -au        //列出所有udp端口
   
[root@localhost ~]# netstat -l            //只显示监听端口
[root@localhost ~]# netstat -lt           //只列出所有监听 tcp 端口
[root@localhost ~]# netstat -lu           //只列出所有监听 udp 端口

[root@localhost ~]# netstat -s           //显示所有端口的统计信息
[root@localhost ~]# netstat -st           //显示TCP端口的统计信息
[root@localhost ~]# netstat -su           //显示UDP端口的统计信息

grep命令

功能:查找字符串

用法:grep [选项] 字符串 文件名

grep命令常用命令
选项含义
-c计算符合范本样式的个数
-i忽略字符大小写的差别
-n在显示符合范本样式的那一行之前,标示出该行的编号
-l列出文件内容符合指定的范本样式的文件名称(仅显示文件名称)
-s不显示错误信息
-v反转查找,即不包含
--color=auto用颜色标记匹配内容
-E使用扩展正则表达式
-o只输出文件中匹配到的部分
-H在显示符合范本样式的那一列之前,标示该列的文件名称(文件名称和内容)

例如:

[root@localhost ~]# grep hello /test/test            //在/test/test文件中找hello字符串
[root@localhost ~]# grep -i hello /test/test --color=auto    //在/test/test文件中找hello字符串,不区分大小写,颜色标注
[root@localhost ~]# grep -n hello /test/test /test/test2    //在/test/test文件和/test/test2文件中找hello字符串,显示行数

为什么要在网络通信相关命令这边讲grep命令呢?

比如说想查看所有的TCP端口的网络状态,可以使用:

[root@localhost ~]# netstat -at         //列出所有tcp端口
[root@localhost ~]# netstat -a | grep tcp        //列出所有tcp端口

也就是说,可以在命令运行的结果中,使用grep进行筛选。

其它常用命令

rpm命令

功能:软件安装

用法:rpm [选项] [安装文件]

rpm命令常用命令
选项含义
-i,--install安装指定的软件
-v显示指令执行过程
-h软件安装时列出标记
-q使用询问模式,当遇到任何问题时,rpm指令会先询问用户
-a查询所有套件
--force安装的包里有一些文件可能会覆盖现有的文件,强制安装
-e,--erase删除指定的套件
-l显示软件的文件列表
-p查询指定的RPM软件

例如:

[root@localhost ~]# rpm -qa            //查看安装的所有软件
[root@localhost ~]# rpm -qa | grep mysql        //查看是否安装了mysql
[root@localhost ~]# rpm -q mysql        //获得mysql的文件全名
[root@localhost ~]# rpm -ql mysql-3.23.54a-11           //查看mysql的安装路径

[root@localhost ~]# rpm -ivh mysql-3.23.54a-11.rpm        //安装mysql
[root@localhost ~]# rpm -e mysql-3.23.54a        //卸载mysql

mount命令

功能:挂载文件系统

用法:mount [选项] 设备源 目标目录

mount命令常用命令
选项含义
-a依照/etc/fstab的内容装载所有相关的硬盘
-l列出当前已挂载的设备、文件系统名称和挂载点
-t将后面的设备以指定类型的文件格式装载到挂载点上
-f通常用于除错,会使mount不执行实际的挂载动作,只模拟过程

umount命令

功能:卸载文件系统

用法:umount 目标目录

find命令

功能:查找文件

用法:find 路径 name '文件名'

top命令

作用:动态查看CPU的使用情况

用法:top

例子:

[root@localhost ~]# top

top - 09:44:56 up 16 days, 21:23,  1 user,  load average: 9.59, 4.75, 1.92
Tasks: 145 total,   2 running, 143 sleeping,   0 stopped,   0 zombie
Cpu(s): 99.8%us,  0.1%sy,  0.0%ni,  0.2%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4147888k total,  2493092k used,  1654796k free,   158188k buffers
Swap:  5144568k total,       56k used,  5144512k free,  2013180k cached

解释:

  • 第一行:top - 09:44:56(当前系统时间)、16 days(系统已经运行了16天)、1 user(用户当前登录)、load average: 9.59, 4.75, 1.92(系统负载,即任务队列的平均长度);
  • 第二行:Tasks: 145 total(总进程数)、2 running(正在运行的进程数)、143 sleeping(睡眠的进程数)、0 stopped(停止的进程数)、0 zombie(冻结进程数);
  • 第三行:Cpu(s): 99.8%us(用户空间占用CPU百分比)、0.1%sy(内核空间占用CPU百分比)、0.0%ni(用户进程空间内改变过优先级的进程占用CPU百分比)、0.2%id(空闲CPU百分比)、0.0%wa(等待输入输出的CPU时间百分比)、0.0%hi、0.0%st;
  • 第四行:Mem: 4147888k total(物理内存总量)、2493092k used(使用的物理内存总量)、1654796k free(空闲内存总量)、158188k buffers(用作内核缓存的内存量);
  • 第五行:Swap:  5144568k total(交换区总量)、56k used(使用的交换区总量)、5144512k free(空闲交换区总量)、2013180k cached(缓冲的交换区总量)。

ps命令

功能:查看进程

用法:ps [选项]

ps命令常用命令
选项含义
-ef查看所有进程及其PID、系统时间、命令详细目录、执行者等
-aux除可显示-ef所有内容外,还可显示CPU及内存占有率、进程状态
-w显示加宽并且可以显示较多信息

kill命令

功能:杀死进程

用法:kill [选项] 进程号

 

©️2020 CSDN 皮肤主题: 程序猿惹谁了 设计师:上身试试 返回首页