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_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私房菜基础学习篇(第三版)》