Bash Shell 的操作环境
命令的运行顺序为:
1.以相对/绝对路径执行命令
2.由alias找到改命令来执行
3.由bash内置的命令来执行
4.由$PATH找到的第一个命令来执行
alias echo='echo -n'
type -a echo
bash 的登录和欢迎信息存储于:
/etc/issue,/etc/motd
login shell 取得bash时需要完整的登录流程,否则称为 non-login shell
stty -a 列出所有的按键与按键内容
set -u 使用未设置变量时会显示错误信息,+u关闭功能
set -x 命令执行前会显示命令内容
通配符 *代表0到无穷多个字符,?代表一定有一个字符,[a-z]一定有一个a-z的字符,[^abc] 一定有一个非abc的字符
数据流重定向
将某个命令执行后的数据传输到其他地方
标准输出:代码为1,使用>或>>,>表示覆盖,>>表示累加
标准错误输出:代码为2,使用2>或2>>,>表示覆盖,>>表示累加
使用&>将正确和错误的数据写入同一文件中
find /home -name .bashrc > list 2>&1
标准输入 tr 'a-z' 'A-Z' < hosts
用cat命令创建一个简单的文件 cat > xxxxxx << xx,以xx结束
echo $? 查看命令执行是否成功
cmd ; cmd 不考虑命令相关性,连续执行
cmd1 && cmd2,cmd1执行成功,cmd2才执行。
cmd1 || cmd2,cmd1执行不成功,cmd2才执行。
管道命令
cmd1 | cmd2 将cmd1的执行结果作为参数传入cmd2中
last | cut -d ' ' -f1
grep 'root' /etc/passwd -i 忽略大小写,-n 输出行号 -v 查找没有root的行 -A3 过滤当前行和下面3行,-B3 过滤当前行和上面三行
cut -d ':' - f3 passwd | sort -n 使用纯数字排序 -r 反向排序 -u 相同数据仅出现一行 -t 用Tab作分隔 -k 3 以区间进行排序
cat /etc/passwd | sort -t ':' -k 3
last | cut -d ' ' -f1 | sort | uniq 等同于 sort -u
last | cut -d ' ' -f1 | sort | uniq -c 显示行数
ls -1 | wc -l 仅列出行 -w仅列出多少字 -m列出多少字符,包括换行符
双向重定向 ifconfig eth0 | tee -a xx | grep ’inet addr‘ -a 表示不会累加
tr 可用于删除或替换 cat paaswd | tr -d ';'
tr 'a-z' 'A-Z' < hosts > xxx
mv xxx hosts
col -x 将Tab转为对等的空格键,expand 效果相同
paste [-d] file1 file2 将两行贴在一起中间用Tab隔开
join -t ":" -1 4 aa -2 3 bb
切割命令 将大文件分割为小文件 spilt -b 10k /etc/services xxx 按大小切割
spilt -l 100 按行切割
cat xxx* > services 恢复
参数代换,常在不可以使用管道时用到 find -name 'find*' | xargs ls -l
某些命令需要用文件名来处理时,可用-替代
tar -cvf - /home | tar -xvf -