Linux 难点攻克
十二月 14, 2022
2737
1. VIM不使用ESC退出插入模式的方法
1 | ctrl + [ # 可以退出插入模式 |
2. Shell脚本自动查询并结束进程
1 | pid=`ps -ef|grep ./agent |grep -v grep|awk '{print $2}'` |
3. TMUX 不开启鼠标实现,上下滚动历史
1 | control + b + 页面向上/向下滚动向上/向下滚动缓冲区的一页 |
4. Docker-compose 实现 docker run -itd
1 | tty: true |
5. 查看目录文件大小时按大小排序
1 | du -sh * | sort -hr |
其中,-sh 表示以大小排序,* 表示当前目录下的所有文件和文件夹,sort -hr 表示按大小升序排序。
6. ll 命令修改时间格式
找到 ll
命令的别名设置,一般在 /etc/profile
、~/.profile
、~/.bashrc
等位置。然后添加 --time-style
选项。
1 |
|
效果展示
1 | root@nas:~# ll |
OpenWRT配置
由于 OpenWRT 上的版本差异,配置有所差别,修改配置文件: /etc/shinit
1 |
|
效果展示
1 | BusyBox v1.36.0 (2023-03-19 03:31:49 UTC) built-in shell (ash) |
7. 查看 命令的别名定义
比如查看 ll 是怎么被定义的
1 |
|
8. 查看 Bash 加载了哪些配置文件
要查看当前Bash会话加载了哪些配置文件,可以采用以下几种方法:
查看启动日志:
Bash在启动时会记录其加载的配置文件。这些信息通常会被写入到标准错误输出(stderr),但在交互式会话中可能被终端程序隐藏。你可以尝试在一个新的终端窗口中启动bash,并重定向其启动时的stderr输出到一个文件,以便查看:
1
bash -l 2> startup.log
然后查看
startup.log
文件,其中应包含bash加载配置文件的相关消息。这些消息通常包括文件路径和加载时间。
**使用bash -x
**:
使用
bash -x
选项启动一个新的bash会话,它会启用详细调试模式,显示每一条命令及其执行结果。这将包括bash在启动过程中执行的配置文件中的命令:1
bash -lx
在启动的bash会话中,你会看到类似
+ source /etc/profile
这样的行,它们表明bash正在加载指定的配置文件。
9. 切换 root 账号 su 命令
su
命令可以切换用户如 su admin
,需要验证目标用户的 admin 的密码,对于切换 root 账户 su root
可以简写为 su
。
重要参数
- -, -l, –login make the shell a login shell
案例:
su root
只是切换用户身份,工作目录还停留在当前目录,并且与 root 相关的环境变量也没有加载su - root
除了切换用户身份,还切换到 root 的 home 目录,并且相关的环境变量也加载,就像重写登录了 root 一样
SUDO权限
su
命令切换root用户需要输入 root 的密码,但是在有 SUDO 权限的时候,可以不用输入 root 的密码,仅仅验证自己的密码即可。
sudo su - root
验证自己密码后即可切换到 root 账号
- 本文作者:scwang90
- 本文链接:https://blog.scwang90.cn/2022/12/14/breakthrough-linux/index.html
- 版权声明:本分享所有文章均采用 BY-NC-SA 许可协议,转载请注明出处!