君 Linux 命令行本当上手

推荐阅读#

常用命令上位替代#

注意:以下安装命令均为 Ubuntu 系统的 root 用户。

catbat#

Why

  • 语法高亮
  • 集成 Git
  • 不可打印(non-printable)字符可视化
  • 自动分页

How

1
2
3
4
$ apt-get install bat
$ mkdir -p ~/.local/bin
$ ln -s /usr/bin/batcat ~/.local/bin/bat
$ export PATH=$PATH:$HOME/.local/bin

dfduf#

Why

  • 彩色输出
  • 自适应终端宽度
  • 可排序结果
  • 可分组 & 过滤
  • 可导出为 JSON

How

如果是 Ubuntu 系统,需要在 22.04 以上。

1
$ apt-get install duf

Windows:

1
$ scoop install duf

dugdu#

Why

  • 更强:可交互彩色 TUI
  • 更快:并行处理 SSD(当然 HDD 也能用,但性能提升有限)

How

1
2
3
$ add-apt-repository ppa:daniel-milde/gdu
$ apt-get update
$ apt-get install gdu

或者手动下载安装(自行替换架构版本,比如这里举的例子就是 archx86_64

1
2
3
$ curl -L https://github.com/dundee/gdu/releases/latest/download/gdu_linux_386.tgz | tar xz
$ mv gdu_linux_386 /usr/bin/gdu
$ chmod +x /usr/bin/gdu

Windows:

1
$ scoop install gdu

findfd#

Why

  • 彩色输出
  • 更快性能
  • 智能切换大小写
  • 默认忽略隐藏目录
  • 自动匹配 .gitignore 的忽略清单
  • 支持正则表达式
  • 支持 Unicode 字符

How

1
2
3
4
5
6
$ apt-get install fd-find
$ mkdir -p ~/.local/bin
$ ln -s $(which fdfind) ~/.local/bin/fd

# 如果之前安装bat时已经设置过环境变量 此处就不用了
$ export PATH=$PATH:$HOME/.local/bin

Windows:

1
$ scoop install fd

备用:重型模糊搜索器 fzf

1
$ apt-get install fzf

Windows:

1
2
3
$ scoop install fzf
# 当然 Windows 更推荐直接上
$ scoop install everything

lsexa#

Why

  • 彩色输出
  • 扩展属性
  • 展开树状图
  • 集成 Git

How

如果是 Ubuntu 系统,需要在 20.10 (Groovy Gorilla) 以上。

1
$ apt-get install exa

mantldr#

Why

  • 更精简的命令文档
  • 我他妈真的对你「每一个参数的具体用法是什么」没兴趣,太长不看
  • 批话少说,来点干货

How

Node.js:

1
$ npm install -g tldr

Python:

1
$ pip3 install tldr

topbtop#

Why

  • 彩色输出
  • 进程 / CPU / 内存 / 硬盘 / 网络
  • 即时图表
  • ntop 是什么?htop 又是什么?btop 一把梭就完了

How

如果是 Ubuntu 系统,需要在 22.04 以上。

1
$ apt-get install btop

或者手动下载安装(自行替换架构版本,比如这里举的例子就是 archx86_64

1
2
3
$ wget -qO btop.tbz https://github.com/aristocratos/btop/releases/latest/download/btop-x86_64-linux-musl.tbz
$ tar xf btop.tbz -C /usr/local bin/btop && rm -rf btop.tbz
$ btop --version

Windows:

1
$ scoop install btop

中文 UTF-8 字符集#

安装中文字符集#

1
2
$ apt-get install -y language-pack-zh-hans language-pack-zh-hant
$ /usr/share/locales/install-language-pack --by-package zh_CN
# 预计报错
dpkg-trigger: error: must be called from a maintainer script (or with a --by-package option)
# 可以忽略

配置环境变量#

1
$ vim /etc/environment

新增以下内容:

LANG=zh_CN.UTF-8
LANGUAGE=en_US:en
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8

重新登录 shell:

$ locale

繁体中文自行举一反三。

一把梭#

配置 SSH 登录 root 用户#

生成 SSH 密钥对,此处简单略过。(详见 生成 SSH 密钥对

1
2
3
4
5
6
7
# 如果你当前不是root 该加sudo就加
$ vim /root/.ssh/authorized_keys
# :wq保存公钥

$ sed -i "s@^[\s#]*PermitRootLogin.*@PermitRootLogin yes@g" /etc/ssh/sshd_config
$ sed -i "s@^[\s#]*PubkeyAuthentication.*@PubkeyAuthentication yes@g" /etc/ssh/sshd_config
$ service sshd restart

至于早年的 RSAAuthentication 配置项,现如今已被弃用。
只要你的 OpenSSH 版本高于 7.3+(ssh -V 查看)就不用再管这个配置项了。

一定要先确定「你能够使用密钥key登录」之后
为了保险起见,最好禁止通过密码password登录,防止被撞库:

1
2
$ sed -i "s@^[\s#]*PasswordAuthentication.*@PasswordAuthentication no@g" /etc/ssh/sshd_config
$ service sshd restart

如果希望在安全方面更进一步,还可以将默认的 SSH 端口 22 修改为其他高位端口。
具体步骤自行了解相关资料,此处不再赘述。

配置主机名和时区#

注意自行修改 your-vps-name

1
$ export tmp="your-vps-name" && echo $tmp > /etc/hostname && hostname $tmp && timedatectl set-timezone Asia/Taipei && date

修改主机名之后需要重新登录 SSH 生效。

安装常用命令的上位替代#

即本文上述提到的大部分工具。

1
2
$ add-apt-repository ppa:daniel-milde/gdu && apt-get update && apt-get upgrade -y && apt install -y bat duf gdu fd-find exa btop language-pack-zh-hans language-pack-zh-hant
$ mkdir -p ~/.local/bin && export PATH=$PATH:$HOME/.local/bin && ln -s /usr/bin/batcat ~/.local/bin/bat && ln -s $(which fdfind) ~/.local/bin/fd && /usr/share/locales/install-language-pack --by-package zh_CN

lackbfun © 2021 - 2024