Shell是用户用来向操作系统(Linux kernel)发出命令的软件层,分为两种:

  1. 图形化Shell
  2. 命令行界面Shell

0320bash_1.jpg

常见的Linux Shell:
Bash:/bin/bash
/sbin/nologin:如果某用户的登陆shell为此,则该用户无法登陆

/etc/shells

设置命令别名:alias lm=’ls -al’
每次登出后,自动失效

bash的配置文件:~/.bashrc, ~/.bash_profile
在用户登陆系统之后,bash会自动执行配置文件中的命令

环境变量

声明并赋值:name=value。等号两边不能用空格,如果value中有空格等标点符号,必须用引号将其括住。
引用:$name或${name}

echo $name
echo “$name”1:双引号会把其中的变量转义成它的值,单引号不会
echo ‘$name’1
b=”Hello world”
env

常见的系统环境

USER 登陆用户的用户名
PWD 当前工作路径
HOME 当前用户的用户主目录
UID 当前用户的UID
PATH 一系列的目录,以冒号间隔开来

PATH环境变量的作用:
当用户在shell中输入一个命令时,shell会去PATH环境变量对应的一系列目录下去找以这个命令为文件名的程序文件,如果找到,则shell执行这个文件;如果没找到,报command not found错误。
PATH=”$PATH:$PWD”

which cmd:打印cmd在$PATH环境变量中对应的具体文件全路径

默认情况下,登出系统时会清空在bash中直接设置的环境变量;如果想要下次登陆后依旧能使用,必须将环境变量配置于~/.bashrc。

重定向

cmd > file:把cmd命令的输出结果存储(重定向)到文件file中
cmd >> file:把cmd命令的输出结果追加(append)到文件file中

echo 12345 > out

管道

a | b:把命令a的输出结果,传递给命令b,用作命令b的输入。

wc:
-l:只显示行数
-w:只显示单词数
-c:只显示字符数

cat file > wc:统计file文件的行数、单词数、字符数
ls -l / | wc -l:统计前一个命令的输出有多少行
last | less