Linux常用命令(bash的使用、关机和重启命令)

  • Post author:
  • Post category:linux


Linux常用命令(博客地图):

https://blog.csdn.net/sysukehan/article/details/105804511


1


、bash的登录与欢迎信息


登录信息:/etc/issue


欢迎信息:/etc/motd


2


、bash shell的功能


命令记忆能力:history


在命令行中按上下键就能找到前一个后一个输入的命令,命令记录在主文件夹内的.bash_history中。需要注意的是,~/.bash_history记录的是前一次登录以前所执行过的命令,至于这一次登录所执行的命令都被暂存在临时内存中,当成功注销系统之后,该命令记忆才会记录到.bash_history当中。


history [n]


history [-c]


history [-raw] histfiles


参数:


n:数字,列出最近的n条命令行的意思。


-c:将目前shell中的所有history内容全部消除。


-a:将目前新增的history命令新增入histfiles中,若没有加histfiles,则默认写入~/.bash_history。


-r:将histfiles的内容读到目前这个shell的history记忆中。


-w:将目前的history记忆内容写入histfiles中。


命令与文件补全功能([Tab]按键的好处)


[Tab]


接在一串命令的第一个字后面,则为命令补全;[Tab]接在一串命令的第二个字以后时,则为文件补齐。


命令别名设置功能(alias)


为一个命令设置别名,如alias lm=’ls -al’,这样在当前bash中,执行lm命令就相当于执行ls -al命令。取消别名用unalias lm。


3


、查看命令是否是bash内置命令:type


type [-tpa] name


参数:


不加任何参数时,type会显示出name是外部命令还是bash内置命令。


-t:当加入-t参数时,type会将name以下面这些字眼显示出它的意义:


file:表示为外部命令。


alias:表示该命令为命令别名所设置的名称。


builtin:表示该命令为bash内置的命令功能。


-p:如果后面接的name为外部命令时,才会显示完整文件名。


-a:会在PATH变量定义的路径中,将所有含name的命令都列出来,包含alias。


4


、变量的显示和设置


变量:以一组文字或符号等,来替代一些设置或者是一串保留的数据。


变量的显示:echo


变量的设置


将myname这个变量名称的内容设置为kehan


变量的设置规则:


1)变量与变量内容以一个等号“=”来连接;


2)等号两边不能直接接空格符(错误示例:my name=kehan或myname=ke han);


3)变量名称只能是英文字母与数字,但是开头字符不能是数字(错误示例:2myname=kehan)


4)变量内容若有空格符可使用双引号“””或单引号“‘”将变量内容结合起来,但是


  • 双引号内的特殊字符如$等,可以保有原本的特性,如下所示:


若var=”lang is $LANG”,则echo $var可得lang is en_US


  • 单引号内的特殊字符仅为一般字符(纯文本),如下所示:


若var=’lang is $LANG’,则echo $var可得lang is $LANG


5)可用转义字符“\”将特殊字符(如[Enter]、$、\、空格符、!等)变成一般字符。


6)在一串命令中,还需要通过其他的命令提供的信息,可以使用反单引号“`命令`”或“$(命令)”,例如想要取得内核版本的设置:


version=$(uname -r)再echo $version可得4.15.0-45-generic


7)若该变量为了增加变量内容时,则可用“$变量名称”或${变量}累加内容,如下所示:


PATH=”$PATH”:/home/bin


8)若该变量需要在其他子进程执行,则需要以export来使变量变成环境变量:


export PATH


9)通常大写字符为系统默认变量,自行设置变量可以使用小写字符,方便判断。


10)取消变量的方法:unset 变量名称


如:unset myname


5


、环境变量


查看环境变量(列出目前的shell环境下的所有环境变量):env


HOME:用户的主文件夹。


SHELL:目前环境使用的shell是哪个程序。


MAIL:使用mail命令在收信时系统会去读取的邮件信箱文件。


PATH:执行文件查找的路径,目录与目录中间以冒号(:)分隔,由于文件的查找是依序由PATH的变量内的目录来查询,所以目录的顺序也是重要的。


LANG


:语系数据


查看所有变量(含环境变量和自定义变量):set


自定义变量转为环境变量:export


因为子进程只会继承父进程的环境变量,不会继承自定义变量,因此如果需要让子进程使用父进程的自定义变量,需要把父进程的自定义变量转为环境变量。如export myname。


6


、命名别名的设置和取消:alias、unalias


1、给惯用命令起一个别名,达到简化输入的目的,如alias lm=’ls -l | more’;


2、用别名替换现有的命令,达到减少危险误操作的目的,如alias rm=’rm -i’;


直接用alias命令可以查看目前有哪些别名:


unalias


可以用于取消别名,如unalias rm。


7


、路径与命令查找顺序


1、以相对/绝对路径执行命令,例如“/bin/ls”或“./ls”;


2、由alias找到该命令来执行;


3、由bash内置的命令来执行;


4


、通过$PATH这个变量的顺序找到的第一个命令来执行;


8


、bash的环境配置文件


1、/etc/profile:系统整体的设置,最好不要修改;


2、~/.bash_profile或~/.bash_login或~/.profile:属于用户个人设置,修改自己的设置就写入这里;


/etc/profile还会调用/etc/profile.d/目录下的所有sh文件。只要在/etc/profile.d/这个目录内且扩展名为.sh,另外用户能够具有r的权限,那么该文件就会被/etc/profile调用。


bash在读完整体环境设置的/etc/profile并借此调用其他配置文件后,接下来则是会地区用户的个人配置文件。在login shell的bash环境中,所读取的个人偏好配置文件其实主要有三个,依次是:




~/.bash_profile


~/.bash_login


~/.profile


bash


只会按顺序读取三个中的一个,如果~/.bash_profile存在,那么~/.bash_login和~/.profile不会被读取。


读入环境配置文件的命令:source


利用source或小数点(.)都可以将配置文件的内容读进目前的shell环境中。举例来说,如果修改了~/.bash_profile文件,执行source ~/.bash_profile或. ~/.bash_profile命令就可以把环境变量重新加载一遍。


9


、Linux系统的在线求助:man


在不知道某个命令如何使用时,可以使用man command来获取帮助,man是manual(操作说明)的简写,如man date


10


、不考虑命令相关性的连续命令执行:cmd;cmd


希望一次性执行多个命令的时候,可以用分号;把命令隔开。这样一来,分号前的命令执行完后就会立刻接着执行后面的命令了。如:sync;sync;sync;sync;shutdown –r now


11


、正确的关机方法


数据同步写入磁盘:sync


在默认的情况中,某些已经加载到内存中的数据将不会直接被写回硬盘,而是先暂存在内存当中,如此一来,如果一个数据被你重复改写,那么由于它尚未被写入硬盘中,因此可以直接由内存当中读取出来,在速度上会提升很多。但是万一系统因为某些特殊情况造成不正常关机(如机房掉电等情况)时,由于数据尚未被写入硬盘当中,所以就会造成数据的更新不正常。这个时候就需要sync这个命令来进行数据的写入操作。直接在命令行界面输入sync,在内存中尚未被更新的数据就会被写入硬盘中。所以,这个命令在系统关机或重启之前最好多执行几次。


虽然目前的shutdown/reboot/halt等命令均已在关机前进行了sync这个工具的调用,还是手动调用几次比较保险,一般会在关机或重启前执行sync;sync;sync;sync。


惯用的关机命令:shutdown


/sbin/shutdown [-t 秒] [-arkhncfF] 时间 [警告信息]


参数:


-t sec:-t后面加秒数,也即“过几秒后关机”的意思。


-k:不要真的关机,只是发送警告信息出去。


-r:在将系统的服务停掉之后就重启。


-h:将系统的服务停掉后,立即关机。


-f:关机并开机之后,强制略过fsck的磁盘检查。


-F:系统重启之后,强制进行fsck的磁盘检查。


-c:取消已经在进行的shutdown命令内容。


时间:这是一定要加入的参数,指定系统关机的时间。


举例:


shutdown -h now,立刻关机,now相当于时间为0的状态。


shutdown -h 20:25,系统在今天的20:25分会关机,如果当前时间已经过了20:25(如当前时间是21:25),那么隔天的20:25才会关机。


shutdown -h +10,系统再过10分钟后自动关机。


shutdown -r now,系统立刻重启。


shutdown -r +30 ‘The system will reboot’,再过三十分钟系统会重启,并显示后面的消息给所有在线的用户。



shutdown -k now ‘The system will reboot’



,仅发出警告信件,系统并不会关机。

参考资料


《鸟哥的Linux私房菜基础学习篇(第三版)》



版权声明:本文为sysukehan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。