Linux命令大全(1)

Linux命令大全(1)linux

所用的参考书:Linux实用教程第三版、Linux操做系统项目化教程shell

所需的软件为CENTos7和VMWAREworkstationpro安全

字符界面基础:bash

安装Linux系统后,系统启动默认进入的图形化界面,能够经过使用如下命令来进入字符界面,重启以后再生效并发

[root@rhel ~]#systemctl get-defaultless

会出现graphical.target,这条语句表示图形化界面函数

[root@rhel ~]#systemctl set-default multi-user.targetspa

将multi-user.target目标设置为启动计算机系统后要进入的默认目标multi-user.target表示字符界面操作系统

虚拟控制台命令行

Linux系统能够同时接收多个用户登陆,还容许用户在同一时间进行屡次登陆,由于Linux提供了虚拟控制台的访问方式。在字符界面下,虚拟控制台的选择能够经过按下【ALT】键和一个功能键来实现。一般使用【F1】-【F6】键

Eg:用户登陆后,按【ALT+F2】组合键,用户能够看到login:提示符,说明用户进入了第二个虚拟控制台而后只需按【ALT+F1组合键】就能够回到第一个控制台

若是用户在图形界面下,那么可使用【Ctrl+alt+F2】~【Ctrl+alt+F6】组合键切换字符虚拟控制台,使用【ctrl+Alt+F1】组合键能够切换到图形界面,虚拟控制台可以使用户同时在多个控制台上工做,真正体现Linux系统多用户的特性

关闭和重启Linux系统

  1. shutdown命令

shutdown命令能够安全的关闭或重启Linux系统

在系统关机前使用shutdown命令,系统管理员会通知一条警告信息给全部登陆的用户,告诉他们系统将要关闭,新的用户不能在登陆,直接关机或者延迟必定时间才关机都是可能的,还可能重启

Shutdown命令还容许用户指定一个时间参数,该参数能够是一个精确地时间,也能够是如今开始的一个时间段,精确时间的格式是hh:mm,表示小时和分钟,时间段由+和分钟数表示。

命令语法

Shutdown [选项]  [时间]  [警告信息]

当选项为-k时,意味着并不执行shutdown,只是发出警告信息给全部用户。

当选项为-r时,意味着从新启动系统

当选项为-h时,意味着关闭系统

当选性为-c时,意味着取消运行shutdown

Eg:

当即关闭计算机系统

[root@rhel ~]# shutdown -h now

定时45分钟后关闭计算机系统

[root@rhel ~]#shutdown -h +45

//在这里使用shutdown -h  45和shutdown -h +45起到同样做用

当即从新启动计算机系统,并发出警告信息

[root@rhel ~]#shutdown -r now  “system will be reboot now.”

定时在1点38分从新启动计算机系统

[root@rhel ~]# shutdown  -r  01:38

  1. halt命令

使用halt命令就是调用shutdown -h命令执行关机任务

命令语法

Halt [选项]

当选项为-w时,意味着并不真正的关闭系统,只是写入到/var/log/wtmp文件中

当选性为-d时,意味着关闭系统,不把记录写到/var/log/wtmp文件中

当选项为-f时,意味着没有调用shutdown而强制关闭系统

Eg:

使用halt命令关闭系统

reboot命令

Reboot的工做过程与halt类似,不过reboot是引起计算机重启,而halt是引起计算机关闭,它的选项与halt类似

当选项为-w时,意味着并不真正的关闭系统,只是写入到/var/log/wtmp文件中

当选项为-d时,意味着重启系统,不把记录写到/var/log/wtmp文件中

当选项为-f时,意味着没有调用shutdown而强制从新启动系统

在Linux系统下得到帮助

使用man手册页

man是一种显示Unix/Linux在线手册的命令,能够用来查看命令、函数或者是文件的帮助手册,另外它还能够显示一些gzip压缩格式的文件,有不懂的命令能够用man查看这个命令,写程序时有不会用的函数能够用man查看这个函数有不懂的文件也能够用man查看文件

通常状况下man手册页的资源主要位于/usr/share/man目录下,使用如下命令显示

[root@rhel ~]# ls -d /usr/share/man/man?

能够用一个数字来表示手册页的不一样类型

语法格式类型

Man [选项] [名称]

帮助参数类型

当选项为-a时意味着在全部的man帮助手册中搜索

当选项为-f时意味着等价于whatis命令,显示给定关键字的简短描述信息

当选项为-p时意味着指定内容使用分页程序

当选项为-M时意味着制定man手册搜索的路径

当选项为-d时,主要用于检查,若是用户加入了一个新的文件,就能够用这个选项检查是否出错,这个选项并不会列出文件内容

当选项为-w时,不显示手册页内容,只显示将被格式化和显示的文件所在位置

Eg:查询cat命令的帮助信息

[root@rhel ~]#man -a cat

显示pwd命令的man手册页

[root@rhel ~]# man pwd

使用-help选项获取帮助

使用-help选项能够显示命令的使用方法以及命令的选项含义,只需在所须要显示的命令后面输入--help选项,就能够看到所查命令的帮助内容了

命令语法:

[命令] --help

Eg:使用--help选项查看mkdir命令的帮助信息

[root@rhel ~]#mkdir --help

Shell基础

在linux系统中,shell是最常使用的程序,其主要做用是侦听用户指令、启动命令所指定的进程并将结果返回给用户,bash目前是大多数Linux系统默认的shell

Bash命令

当登陆系统或打开一个终端窗口时,首先看到的是bash Shell 提示符。Linux系统的标准提示符包括了用户登陆名、登陆的主机名,当前所在的工做目录路径和提示符号。

以普通用户zhangsan登陆名为rhel的主机,它的工做目录是/home/zhangsan

[zhangsan@rhel ~]$

以root用户登陆系统的提示符以下所示

[root@rhel ~]#

除了不一样的用户外,提示符号由$变成了#,根据bash的传统,普通用户的提示符以$结尾,而超级用户以#结尾,提示符的每一个部分均可以定制

要运行命令的话,只须要在提示符后敲进命令,而后按回车键,shell将在其路径中搜索这个命令,找到之后就运行,并在终端里输出相应的结果,命令结束后,再给出新的提示符。

例:[zhangsan@rhel ~]$ whoami

Zhangsan

//显示当前登陆Linux系统的用户是zhangsan

普通用户向超级用户的转换

[zhangsan@rhel ~]$su root 更改普通用户到超级用户

在这里属于密码

[zhangsan@rhel ~]#                                     //变为这个超级用户

一个shell命令可能含有一些选项和参数,其通常格式为

[Shell命令] [选项] [参数]

下面举一个例子来详细描述Shell命令格式

[root@rhel ~]#ls -l /root

其中-l 是命令ls的一个选项,而/root则是参数。

选项有短命令选项和长命令选项两种

例1:[root@rhel ~]# ls -l /root

//这个命令为短命令

下面两种方法使用了同样的效果

[root@rhel ~]#ls -l  -a /root

[root@rhel ~]#ls -la /root

 

下面这个实例就使用了长命令行选项

[root@rhel ~]# ls --size /root

在linux系统中,命令能够分为如下两大类

Bash内置的命令和应用程序

若是是bash内置的命令,则由bash负责回应,若是是应用程序,那么shell会找出该应用程序,而后将控制权交给内核,由内核执行该应用程序,执行完以后,再将控制权交给shell

使用which命令能够查看哪些命令是bash内置的命令,哪些是应用程序

例:查看echo和ls命令

[root@rhel ~]#which echo

[root@rhel ~]#which ls

 

3.4 使用bash

经常使用控制组合键

Ctrl+L:清屏

Ctrl+o:执行当前命令,并选择上一条命令

Ctrl+s:阻止屏幕输出

Ctrl+q:容许屏幕输出

Ctrl+c:终止命令

Ctrl+z:挂起命令

Ctrl+m:至关于按回车键

Ctrl+d:输入结束,即EOF的意思,或者注销Linux系统

光标操做

Ctrl+a:移动光标到命令行首

Ctrl+e:移动光标到命令行尾

Ctrl+f:按字符前移(向右)

Ctrl+b:按字符后移(向左)

Ctrl+xx:在命令行首和光标之间移动

Ctrl+u:删除从光标到命令行首的部分

Ctrl+k:删除从光标到命令行尾的部分

Ctrl+w:删除从光标到当前单词开头的部分

Ctrl+d:删除光标处的字符

Ctrl+h:删除光标前的一个字符

Ctrl+y:插入最近删除的单词

Ctrl+t:交换光标处字符和光标前面的字符

ALT+f:按单词前移(向右)

ALT+b:按单词后移(向左)

ALT+d:从光标处删除至单词尾

ALT+c:从光标处更改单词为首字母大写

ALT+u:从光标处更改单词为所有大写

ALT+L:从光标处更改单词为所有小写

ALT+t:交换光标处单词和光标前面的单词

ALT+Backspace:与ctrl+w功能相似,分隔符有些差异

特殊字符

~:用户主目录

`:反引号,用来命令替代

#:注释

$:变量取值

&:后台进程工做

(:子shell开始

):子shell结束

\:使命令持续到下一行

|:管道

<:输入重定向

>:输出重定向

>>:追加剧定向

‘:单引号(不具备变数置换的功能)

“:双引号(具备置换功能)

/:路径功能

;:命令分隔符

通配符

若是命令的参数中含有文件名,那么通配符能够带来十分便利的操做

?:表明任何单一字符

*:表明任何字符

[字符组合]:在中括号中的字符都符合,好比[a-z]表明全部的小写字母

[!字符组合]:不在中括号中的字符都符合,好比[!0-9]表明非数字的都符合

Shell使用功能

命令行自动补全

使用命令行自动补全功能能够快速地写出文件名和命令名

Eg:从当前目录跳转到/usr/src/kernels/目录,能够执行如下操做:

[root@rhel ~]# cd /u<Tab>/sr<Tab>/k<Tab>

<TAB>是按【tab】键的意思,使用【tab】键也称为命令行自动补全

命令历史记录

能够查看使用之前操做的命令

使用history命令能够查看命令历史记录,每一条命令前面都会有一个序列号标示

命令语法:

History[选项]

当选项为-c时,意思为清除命令历史记录

当选项为-w时,表示将当前的历史命令写到.bash_history文件,覆盖.bash_history文件的内容

当选项为n时显示最近n个命令历史记录,n表明数字

当选项为-r时,读取历史文件的内容,并把他们做为当前历史

命令排列

若是但愿一次执行多个命令,shell容许在不一样的命令之间放上特殊的排列字符。命令排列符可使用两种 ;和&&

  1. 使用;

使用;命令时先执行命令1,无论命令1是否出错,接下来执行命令2

命令语法

命令1;命令2

Eg:使用排列命令;同时执行两个命令

[root@rhel~]# ls /boot;du -hs /root

  1. 使用&&

使用&&命令时,只有当命令1正确运行完毕后,才能执行命令2

命令语法:

命令1&&命令2

使用排列命令&&同时执行两个命令

[root@rhel~]# ls -a /root/bogusdir&&du -sh

命令替换

在Linux系统中,Shell命令的参数能够由另一个命令的结果来替代,这称为命令替换,命令替换可使用两种替换字符 $()和’

使用$()

命令语法

命令1 $(命令2)

杀死一个名为less的进程前先得用命令pidof找出相应的进程号,而后以这个进程号为参数运行kill命令,这样就能够结束less进程

使用如下命令

[root@rhel~]#pidof less

7552  //less进程号为7522

[root@rhel~]#kill -9 7552 //杀死进程号为7552的进程

Eg:使用命令替换功能杀死less进程

[root@rhel~]#kill -9 $(pidof less)

//pidof less的命令的输出7552做为命令kill -9的参数,而后就杀死该进程

使用` (tab键上面那个键)

语法:

命令1  `命令2`

这样虽然能减小输入,但可读性差,并且容易和没有替换功能的通常单引号混淆

使用命令替换功能杀死less进程

[root@rhel~]#kill -9 `pidof less`

文件名匹配

文件名匹配使得用户没必要一一写出文件名称就能够指定多个文件,这将用到一些特殊的字符,称之为通配符

  1. 通配符

*可匹配一个或多个字符,假设想用rm命令删除当前目录下全部以字符串.bak结尾的文件

除了在rm命令后面写上全部文件名做为参数,还可使用通配符*

[root@rhel~]#rm *.bak

在本例中告诉shell将命令rm的参数扩展到全部以.bak结尾的文件,shell就将扩展后的参数告诉rm命令,shell在命令执行前,将读取并解释命令行

例如当前目录下包含文件124.bak、346.bak和583.bak,若是只想保留文件583.bak将其他两个文件删除,使用如下命令

[root@rhel~]# rm *4*.bak

Shell就将*4*.bak扩展成全部含4并以.bak结尾的字符串

第二个通配符?在匹配时只能表明一个字符,

[root@rhel~]# ls *.????

重定向

但愿将命令的输出结果保存到文件中。或者以文件内容做为命令的参数,这时就须要用到重定向,重定向不使用系统的标准输入端口、标准输出端口或是标准错误端口,而是进行从新的指定

重定向有4种方式分别是:输出重定向、输入重定向。错误重定向,以及同时实现输出和错误重定向

输出重定向

即将某一命令执行的输出保存到文件中,若是已经存在相同的文件,那么覆盖源文件的内容

命令语法

[命令] > [文件]

使用输出重定向将/boot目录的内容保存到/root/abc文件中

[root@rhel~]#ls /boot > /root/abc

使用echo命令和输出重定向建立/root/mm文件,文件内容是hello

[root@rhel~]# echo hello > /root/mm

[root@rhel~]# cat /root/mm

Hello

//显示/root/mm文件,能够看到文件的内容是hello