《鸟哥的Linux私房菜》
/etc/shells
/etc/passwd
basic tony
- data
- cal
- bc
Functions
- history
- [Tab]
- alias:
alias
:显示所有别名alias lm='ls -al'
oralias rm='rm -i'
- job control, foreground, background ——{chapter 17}
- shell script ——{chapter 13}
- 通配符 * ? [] [-] [^]
type
可以用来找到执行命令为何种类型,也可用于与which
相同的功能。
echo
echo $PATH
echo ${PATH}
若为了增加变量内容时,可用“
变量名称”或
{变量}累加内容: PATH="$PATH":/home/bin
or PATH=${PATH}:/home/bin
若该变量需要在其他子进程执行,则需要以export来使变量变成环境变量: export PATH
(被export后的变量,称为环境变量,可以被子进程所引用。)
环境变量
env
: 同‘export’,查看环境变量
set
:可以查看目前bash下的所有变量
PS1(提示符的设置)
shell的PID: echo $$
export
: 显示所有的“环境变量”
history [n]
登陆与欢迎信息
/etc/issue
/etc/issue.net
locale :查看语系数据
bash环境配置文件
/etc/profile
: 每个用户登陆取得bash时一定会读取的配置文件
source
: 读入环境配置文件的命令 soruce ~/.bashrc
通配符与特殊符号
符号 | 意义 |
---|---|
* | 代表0到无穷多个任意字符 |
? | 代表一定有一个任意字符 |
[] | 代表一定有一个中括号内的字符 |
[-] | 代表编码顺序内的所有字符 |
[^] | 代表取反 |
符号 | 内容 |
---|
| 批注符号
\ | 转义符号
| | 管道
; | 连续命令执行分隔符
~ | 用户的主文件夹
$ | 使用变量前导符
& | 作业控制,将命令变成背景下工作
! | 非
/ | 目录符号
, >>| 数据流重定向,输出导向,分别是“替换”与“累加”
<, <<| 数据流重定向,输入导向
” | 单引号,不具有变量置换的功能
“” | 具有变量置换的功能
“ | 符号中间为先执行的命令
() | 中间为子shell的起始和结束
{} | 中间为命令块的组合
数据流重定向
将某个命令执行后应该要出现在屏幕上的数据传输到其他的地方。例如文件和设备。
find /home -name .bashrc > list_right 2> list_error
:正确的到list_right, 错误的到list_error
find /home -name .bashrc 2> /dev/null
:垃圾桶黑洞,将错误信息忽略掉或不显示。
find /home -name .bashrc > list 2>&1
or find /home -name .bashrc &> list
cat > catfile
+ 内容 + [Ctrl]+d : 利用cat命令创建一个文件
cat > catfile < ~/.bashrc
cat > catfile << "eof"
: 用eof来代替[ctrl]+d来结束文件输入。
命令执行 ; && ||
管道命令 pipe |
- 管道命令仅会处理standard output, 忽略standard error output
- 管道命令必须要能够接受来自前一个命令的数据成为standard input继续处理才行。
选取命令 cut grep
排序命令 sort wc uniq
- wc: 行数 列数 字符数
双向重定向 tree : 同时将数据流送于文件和屏幕 -a:以累加的方式,将数据加入文件中。
字符转换命令 tr col join paste expand
tr [-ds] SET1
:
- -d:删除信息当中的SET1这个字符串
- -s:替换掉重复的字符
例一: tr '[A-Z]' 'a-z'
:将大写字符变成小写字符,同tr '[:upper:]' '[:lower:]'
例二: 将/etc/passwd转存成dos断行到/root/passwd中,再将^M断行符号去掉。
cp /etc/passwd /root/passwd && UNIX2dos /root/passwd
file /etc/passwd /root/passwd
cat /root/passwd | tr -d '\r' > /root/passwd.linux
ll /etc/passwd /root/passwd