鸟哥的Linux私房菜 学习笔记 第11章 (下)

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 -

发布了48 篇原创文章 · 获赞 29 · 访问量 9777

猜你喜欢

转载自blog.csdn.net/flyconley/article/details/103086691