标签 Linux 下的文章

一.Shell命令自动补全的实现

1.ip 命令的自动补全是如何实现的?

1.ip命令相关补全文件

/usr/share/bash-completion/completions/ip

2.加载流程

  1. 用户进入交互式bash(终端)
  2. ~/.bashrc 中加载 /usr/share/bash-completion/bash_completion
  3. /usr/share/bash-completion/bash_completion中定义了 _completion_loader函数
  4. 当对一个命令按TAB时,如果这个命令没有补全定义,会触发_completion_loader函数,然后从/usr/share/bash-completion/completions/<command> 查找对应的补全脚本并加载。
  5. 脚本只加载一次,一旦某个命令的补全脚本被加载,它就在当前 Shell 会话里生效,不会每次 TAB 都重新加载。

- 阅读剩余部分 -

-L 本地端口转发

-R 远程端口转发

-D 动态端口转发

Example

# 本地端口转发
# 本地监听端口 9848,用户访问本机的 9848端口,最终访问 HostC的9848端口,通过HostB中转
ssh -L 9848:HostC:9848 user@HostB -N

# 远程端口转发
# 远程主机HostB监听端口 9848
# 用户访问HostB的 9848端口,最终访问 HostA 的9848端口,通过HostA中转
ssh -R 9848:localhost:9848 user@HostB -N

# 动态端口转发
# 本地监听1080端口 SOCKS5协议
# 用户配置本机的1080作为代理,http请求,会通过代理端口转到HostB,然后通过HostB访问http请求
ssh -D 1080 user@HostB -N

- 阅读剩余部分 -

问题

错误修改/etc/sudoers文件,导致出现sudo命令无法正常使用的问题出现。

>>> /etc/sudoers: syntax error near line 21 <<<
sudo: parse error in /etc/sudoers near line 21
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

注意:

这里的问题,是在Ubuntu系统环境下出现的,是基于该系统进行的整理。

- 阅读剩余部分 -

可以通过iw命令查看当前无线网卡连接状态,获取连接wifi的MAC地址BSSID,也可以扫描附近的无线网络,获取附近的无线网络信息。

如果没有iw命令,可以通过以下命令安装

# Ubuntu下安装iw
sudo apt install iw

操作示例:

iw dev wlxc83a35xxxxx link 查看当前无线网卡连接状态

iw dev wlxc83a35xxxxx scan 扫描附近的无线网络

- 阅读剩余部分 -