Linux和MaxOSX的 alias 命令使用技巧
因为 gist 被强的比较厉害,所以只好放到 repo 中。
注意: 等号两边不能有空格;
可以放到 ~/.bash_profile
文件中;
# SYS ALIAS
# ll显示隐藏文件
alias ll='ls -lAF'
# docker 快捷命令
alias dc='docker-compose'
# 查看Linux端口监听
alias port='netstat -ntlp'
# 查看MAC端口号监听
alias port='sudo lsof -iTCP -sTCP:LISTEN -n -P'
# 统计git仓库的代码行数
alias lines='git ls-files | xargs wc -l | grep total'
# MAC清理DNS缓存
alias dns='sudo killall -HUP mDNSResponder'
# set history format
export HISTTIMEFORMAT='%F %T '
export HISTSIZE=10000
export HISTIGNORE='pwd:ls:ll:history:exit'
或者放到 ~/.bashrc
之中, 比如 su
或者 sudo su
或者 sudo sudo su
切换root 用户时会生效。
具体的生效规则, 请参考: Bash 启动环境
如果你有好用的alias,欢迎补充: pr, wiki, comment 都可以。
每日一个shell命令:
# 每日一个shell命令
cncounter:CODE_ALL renfufei$ type ls
ls is hashed (/bin/ls)
cncounter:CODE_ALL renfufei$ type ll
ll is aliased to 'ls -lAF'
cncounter:CODE_ALL renfufei$ type echo
echo is a shell builtin
cncounter:CODE_ALL renfufei$ type java
java is /Users/renfufei/.jenv/shims/java
cncounter:CODE_ALL renfufei$ which java
/Users/renfufei/.jenv/shims/java
cncounter:CODE_ALL renfufei$ whereis java
/usr/bin/java
shell快捷键(注意默认不是vi/Vim的快捷键, 而是emacs的快捷键):
- 清理屏幕`clear`: 使用 `Ctrl` + `l`
- 光标退回行首`ahead`: 使用 `Ctrl` + `a`
- 光标退回行尾`end`: 使用 `Ctrl` + `e`
- 从历史记录查找`research?`: `Ctrl + r` 进入, 然后输入模糊搜索字符串, 可再次使用 `Ctrl + r` 往前查找;
Vim快捷键:
- 光标退回行首: 在命令模式下输入数字 `0`
- 光标退回行尾: 在命令模式下输入数字 `$`
修改 /etc/sudoers
文件增加对应的用户名和 NOPASSWD:
标志.
% sudo cat /etc/sudoers
#
# Sample /etc/sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
##
# User specification
##
# root and users in group wheel can run anything on any machine as any user
#root ALL = (ALL) ALL
#%admin ALL = (ALL) ALL
# 免密SUDO, 改成类似这样的格式
root ALL = (ALL) NOPASSWD:ALL
renfufei ALL = (ALL) NOPASSWD:ALL
%admin ALL = (ALL) NOPASSWD:ALL
修改完成后, 使用 :wq!
保存。 重新启用shell即可。
# 安装域名bind查询工具
yum -y install bind-utils
# 安装网络监控检测工具
yum -y install net-tools
# 安装系统状态监控工具
yum -y install sysstat
- 首先执行top命令:
top
进入top命令的展示界面。
- 进入颜色设置界面:
在top命令的展示界面, 使用命令 Shift + z
; 进入颜色设置界面.
- 修改颜色:
在颜色设置界面, 根据提示, 可以设置的部分包括:
-
- 目标, 也就是设置哪一部分的颜色, 我们通过输入大写的
S
和T
等等, 来切换不同的设置目标。
- 目标, 也就是设置哪一部分的颜色, 我们通过输入大写的
-
- 对目标使用哪种颜色, 输入
0-7
即可。
- 对目标使用哪种颜色, 输入
-
- 设置好一种颜色之后, 可以通过第1步的命令切换不同的设置目标。
-
- 结束设置; 输入
Enter
退出设置界面。
- 结束设置; 输入
-
- 这一步也 支持
a
或w
来切换各种颜色, 不太好用;
- 这一步也 支持
这样设置之后, 退回到 top 命令的显示界面。 注意的是这里并没有持久化保存设置
- 持久化保存设置:
在top命令的展示界面, 使用命令 Shift + W
; 持久化保存设置.
MAC下zsh的设置:
cat ~/.zshrc
autoload -U colors && colors
PS1="%{$fg[green]%}%n%{$reset_color%}@%{$fg[green]%}%m %{$fg[yellow]%}%~ %{$reset_color%}%% "
Linux下的设置:
cat ~/.bashrc
# .bashrc
# set shell prompt
# https://wangdoc.com/bash/prompt.html
PS1="\[\e[31;1m\][\u@\h \W ]$ \[\e[0m\]"
.bashrc
与 .bash_profile
的区别在于: su
切换用户时不会自动执行 .bash_profile
文件;
参考: https://stackoverflow.com/questions/689765/
# CentOS查询哪个工具包支持nslookup
yum provides nslookup
# CentOS系统安装nslookup工具
yum -y install bind-utils
# 查看帮助
man nslookup
# DNS查询工具: nsloopup
$ nslookup www.cncounter.com
Server: 114.114.114.114
Address: 114.114.114.114#53
Non-authoritative answer:
Name: www.cncounter.com
Address: 8.210.93.167
# DNS查询工具: host
$ host www.cncounter.com
www.cncounter.com has address 8.210.93.167
# DNS查询工具: dig
$ dig github.com
; <<>> DiG 9.10.6 <<>> github.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63069
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;github.com. IN A
;; ANSWER SECTION:
github.com. 47 IN A 20.205.243.166
;; Query time: 81 msec
;; SERVER: 114.114.114.114#53(114.114.114.114)
;; WHEN: Fri Feb 25 10:48:10 CST 2022
;; MSG SIZE rcvd: 55
# 查看系统中的shell
cat /etc/shells
# 查看当前用户的HOME目录
echo $HOME
# 查看当前的环境变量
echo $PATH
# 查看当前的SHELL版本
echo $SHELL
# 查看当前脚本名称
echo $0
# 简单示例
/bin/sh
echo $0
echo $SHELL
exit
# 查看当前目录
pwd
解除下载软件来源限制:
sudo spctl --master-disable
例如提示: 无法打开“JD-GUI.app”,因为无法验证开发者
一个好用的图形化界面shell终端(支持 MAC, Win, Linux):
Bash 脚本教程: https://wangdoc.com/bash/index.html
命令行的艺术: https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md
Github仓库链接: https://github.com/cncounter/translation/tree/master/tiemao_2021/27_shell_alias
Gitee仓库链接: https://gitee.com/cncounter/translation/tree/master/tiemao_2021/27_shell_alias