Linux 常用命令总结~认识与学习bash(一)

一.为什么学习命令行界面的shell?

1.几乎所有的Distributions,使用的bash都是一样的。
2. 远程管理,命令行界面比较快。当需要进行远程联机时,命令行界面的传输速度一定比较快,而且,较不容易出现断线或者信息外流的问题。

1. cat /etc/shells
cat  /etc/shells		
可以用此命令有几个可以用的shell可以用此命令有几个可以用的shell

在这里插入图片描述

2. bash shell的功能

bash 的主要优点有下面几个:

  • 命令记忆能力(history)
    ~/bash_history 记录的前一次登录以前所执行过的命令,而至于这一次登录所执行的命令都被暂存在临时内存中,当你成功注销系统后,该命令记忆才会记录到.bash_history当中。
  • 命令与文件补全功能(Tab按键的好处)
  • 命令别名设置功能(alias)
  • 作业控制、前台、后台控制(job control , foreground , background)
  • 程序脚本(shell script)
  • 通配符 (Wildcard)
  1. type
    查看命令时来自外部命令或者是内置在bash当中的。
 type [-tpa] name
参数:
type: 不加任何参数时,type会显示出name是外部命令还是bash内置命令
-t : 当加入-t 时,会显示出它的意义:
		file : 表示为外部命令
		alias : 表示该命令为命令别名所设置的名称
		builtin : 表示该命令为bash内置的命令功能
-p : 如果后面接的name为外部命令时,才会显示完整文件名
-a : 会由PATH 变量定义的路径中,将所有含name的命令都列出来,包含alias

# type -t ls 

当命令串太长,可以用反斜杠()来进行转义,不直接执行。即"[Enter]"

二.shell的变量功能

echo 变量的显示

 echo $variable

# echo $PATH

变量的设置规则

在bash当中,当一个变量名称尚未被设置时,默认的内容是空的。

  1. 变量与变量内容以一个等号“=”来连接 。
  2. 等号两边不能直接接空格符
  3. 变量名称只能是英文字符或数字,但是开头字符不能是数字
  4. 变量内容若有空格,可以使用双引号(")或单引号(’)将变量内容结合起来,但是,双引号内的特殊字符如KaTeX parse error: Expected 'EOF', got '\”' at position 44: …(纯文本) 5.可用转义字符“\̲”̲将特殊符号(如【Enter】、、\、空格符、!等)变成一般字符。
  5. 为变量增加变量内容时,则可以“$变量名称”或“${变量}”累加内容。
    7 . 变量需要在其他子进程执行,需要以export来使变量变成环境变量
  6. 通常大写字符为系统默认变量,自行设置变量可以使用小写字符,方便判断
  7. 取消变量的方法为使用“unset 变量名称”

反单引号(`)代表的意义。

在 ` 之内的命令将会被先执行,而其执行出来的结果将作为外部的输入信息。

locate 列出所有文件的相关名

# ls -l `locate crontab`

但是,实际上,我们一般这样使用

# version=$(uname -r)
# version=`uname -r`

两种方式,作用相同。
其中,注意$后紧接(,中间不要有空格

常见变量说明

env 			查看环境变量

HOME 			代表用户主文件夹

SHELL 			它告知我们目前这个环境使用的shell是哪个程序

HISTSIZE 		这个与历史命令有关,表示记录的历史记录的最大条数

MAIL 			邮件信箱文件

PATH  			执行文件的查找路径,目录与目录中间以冒号(:)分隔,并且目录有顺序。

LANG  			语系数据

RANDOM  		随机数的变量
unset 					查看所有变量(含环境变量和自定义变量)
PS1 					提示符设置
$  						关于本shell 的PID
?  						关于上个执行命令的回传码 ,执行成功返回0
OSTYPE,HOSTTYPE,MACHTYPE  主机硬件与内核的等级
export  自定义变量转成环境变量

自定义变量和环境变量的区别?

该变量是否会被子进程所继续引用。
子进程仅会继承父进程的环境变量,子进程不会继承父进程的自定义变量

export 变量名称

而如果仅执行export而没有接变量时,那么此时将会把所有的环境变量显示出来。

declare 声明数值类型

declare -i number=$RANDOM*10/32768 ; echo $number

locale 可以用来查看Linux 支持多少的语系

# locale -a 

注意,当我们使用locale 时,系统是列出目前Linux主机保有的语系文件,而这些语系文件都放置在/usr/lib/locale/这个目录中。
而系统默认的语系定义在/etc/sysconfig/i18n。

注意,文件查找的是locate , 而语系的是locale

猜你喜欢

转载自blog.csdn.net/Vincent_yuan1991/article/details/87998354