shell登陆加载的文件, 快捷命令, tee管道, nohup和&

时间:2023-12-13 15:17:14

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会同时写入文件和输出到屏幕上.