1. login shell和nologin shell的理解:
字面意思, 需要登陆的shell和不需要登陆的shell. 正确解释为: 加载用户环境配置的shell
和不加载用户环境配置的shell. nologin shell登陆时只加载/etc/bashrc和 ~/.bashrc两个文件;
而login shell登陆时会加载4个, 系统级和用户级分别两个, 如2中所列文件.
结合su - 命令的使用理解. -为加载用户环境, 没有-即不加载用户环境.
2.和用户登陆shell有关的(要加载的)文件如下:
系统级的有: /etc/profile 和 /etc/bashrc
用户级的有: 家目录 ~/.bash_profile 和 ~/.bashrc
3. 用户退出shell有关的两个文件:
都在用户家目录下: ~/.bash_logout 和 ~/.bash_history
4. 补充shell里的几个快捷操作(shell脚本中或窗口中): ^代表ctrl键
!! 表示上次执行的命令; !$ 表示上次命令的最后一个参数; ^d 退出shell并关闭
^R 然受输入内容, 会从历史命令中去模糊匹配命令;
^a 移动光标到命令开始处; ^e 移动光标到命令结尾处;
^u 删除光标之前内容; ^k 删除光标之后的内容; ^y 粘贴出删除的内容, 可无限次粘贴
^s 锁定shell界面; ^q 解除shell界面的锁定;
nohup 免疫关闭shell窗口时的结束命令; & 后台运行命令; jobs 可查看当前所有的后台任务
^z 可使一个前台运行的命令转到后台运行.
实列: vim 一个文件, 在命令模式下, 使用^z 可使当前的vim转为后台,shell界面回到目录; 然后键入
fg+序号 可再次把转为后台的vim切到前台来. 序号可使用jobs命令查看;
补充: nohup和&的区别: &一方面会使程序在后台运行, 一方面会使程序免受退出时的结束命令
影响; nohup会使程序免受关闭shell窗口的结束命令影响; 所以通常我们需要让程序一直后台运行
可使用: nohup command &
输入重定向>和输出重定向<: cat << EOF >>file2 \n123 \nEOF 注: \n代表换行
EOF就是个标识符, EOF标签对中的内容输出给cat命令, 再由cat输入到file2文件中;
>>表示追加, > 表示覆盖写. 上面的命令不要放到一行.
5. alias设置别名: alias xy='cd' # 直接窗口输入会在本次登陆中生效, 退出即失效, 也可把该
命令写入shell登陆要加载的任意文件中都可以.
6. 管道符和tee管道
date > qzq.txt # 把date的输出覆盖写入qzq.txt中
date | tee qzq.txt # 同上
date | tee -a qzq.txt # tee可理解为一个三通管道, 可以把date的输出给管道符后, 再输入到qzq.txt中
-a 参数有无都行, a表示追加写的意思, 没有表示覆盖写. tee会同时写入文件和输出到屏幕上.