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系统
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
使用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是否出错,接下来执行命令2
命令语法
命令1;命令2
Eg:使用排列命令;同时执行两个命令
[root@rhel~]# ls /boot;du -hs /root
使用&&命令时,只有当命令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`
文件名匹配
文件名匹配使得用户没必要一一写出文件名称就能够指定多个文件,这将用到一些特殊的字符,称之为通配符
*可匹配一个或多个字符,假设想用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