自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

30個(gè)方便的bash shell別名

系統(tǒng) Linux
bash別名alias只不過是指向命令的快捷方式而已。alias 命令允許用戶只輸入一個(gè)單詞就運(yùn)行任意一個(gè)命令或一組命令(包括命令選項(xiàng)和文件名)。本文通過 30 個(gè) bash shell 別名的實(shí)際案例演示了如何創(chuàng)建和使用別名。

[[217259]]

bash 別名alias只不過是指向命令的快捷方式而已。alias 命令允許用戶只輸入一個(gè)單詞就運(yùn)行任意一個(gè)命令或一組命令(包括命令選項(xiàng)和文件名)。執(zhí)行 alias 命令會顯示一個(gè)所有已定義別名的列表。你可以在 ~/.bashrc 文件中自定義別名。使用別名可以在命令行中減少輸入的時(shí)間,使工作更流暢,同時(shí)增加生產(chǎn)率。

本文通過 30 個(gè) bash shell 別名的實(shí)際案例演示了如何創(chuàng)建和使用別名。

 

bash alias 的那些事

bash shell 中的 alias 命令的語法是這樣的:

  1. alias [alias-name[=string]...]

 

如何列出 bash 別名

輸入下面的 alias 命令

  1. alias

結(jié)果為:

  1. alias ..='cd ..'
  2. alias amazonbackup='s3backup'
  3. alias apt-get='sudo apt-get'
  4. ...

alias 命令默認(rèn)會列出當(dāng)前用戶定義好的別名。

 

如何定義或者創(chuàng)建一個(gè) bash shell 別名

使用下面語法 創(chuàng)建別名

  1. alias name =value
  2. alias name = 'command'
  3. alias name = 'command arg1 arg2'
  4. alias name = '/path/to/script'
  5. alias name = '/path/to/script.pl arg1'

舉個(gè)例子,輸入下面命令并回車就會為常用的 clear(清除屏幕)命令創(chuàng)建一個(gè)別名 c

  1. alias c = 'clear'

然后輸入字母 c 而不是 clear 后回車就會清除屏幕了:

  1. c

 

如何臨時(shí)性地禁用 bash 別名

下面語法可以臨時(shí)性地禁用別名

  1. ## path/to/full/command
  2. /usr/bin/clear
  3. ## call alias with a backslash ##
  4. \c
  5. ## use /bin/ls command and avoid ls alias ##
  6. command ls

 

如何刪除 bash 別名

使用 unalias 命令來刪除別名。其語法為:

  1. unalias aliasname
  2. unalias foo

例如,刪除我們之前創(chuàng)建的別名 c

  1. unalias c

你還需要用文本編輯器刪掉 ~/.bashrc 文件 中的別名定義(參見下一部分內(nèi)容)。

 

如何讓 bash shell 別名永久生效

別名 c 在當(dāng)前登錄會話中依然有效。但當(dāng)你登出或重啟系統(tǒng)后,別名 c 就沒有了。為了防止出現(xiàn)這個(gè)問題,將別名定義寫入 ~/.bashrc file 中,輸入:

  1. vi ~/.bashrc

輸入下行內(nèi)容讓別名 c 對當(dāng)前用戶永久有效:

  1. alias c = 'clear'

保存并關(guān)閉文件就行了。系統(tǒng)級的別名(也就是對所有用戶都生效的別名)可以放在 /etc/bashrc 文件中。請注意,alias 命令內(nèi)建于各種 shell 中,包括 ksh,tcsh/csh,ash,bash 以及其他 shell。

 

關(guān)于特權(quán)權(quán)限判斷

可以將下面代碼加入 ~/.bashrc

  1. # if user is not root, pass all commands via sudo #
  2. if [ $UID -ne 0 ]; then
  3. alias reboot='sudo reboot'
  4. alias update='sudo apt-get upgrade'
  5. fi

 

定義與操作系統(tǒng)類型相關(guān)的別名

可以將下面代碼加入 ~/.bashrc 使用 case 語句

  1. ### Get os name via uname ###
  2. _myos="$(uname)"
  3.  
  4. ### add alias as per os using $_myos ###
  5. case $_myos in
  6. Linux) alias foo='/path/to/linux/bin/foo';;
  7. FreeBSD|OpenBSD) alias foo='/path/to/bsd/bin/foo' ;;
  8. SunOS) alias foo='/path/to/sunos/bin/foo' ;;
  9. *) ;;
  10. esac

 

30 個(gè) bash shell 別名的案例

你可以定義各種類型的別名來節(jié)省時(shí)間并提高生產(chǎn)率。

 

#1:控制 ls 命令的輸出

ls 命令列出目錄中的內(nèi)容 而你可以對輸出進(jìn)行著色:

  1. ## Colorize the ls output ##
  2. alias ls = 'ls --color=auto'
  3.  
  4. ## Use a long listing format ##
  5. alias ll = 'ls -la'
  6.  
  7. ## Show hidden files ##
  8. alias l.= 'ls -d . .. .git .gitignore .gitmodules .travis.yml --color=auto'

 

#2:控制 cd 命令的行為

  1. ## get rid of command not found ##
  2. alias cd..= 'cd ..'
  3.  
  4. ## a quick way to get out of current directory ##
  5. alias ..= 'cd ..'
  6. alias ...= 'cd ../../../'
  7. alias ....= 'cd ../../../../'
  8. alias .....= 'cd ../../../../'
  9. alias .4= 'cd ../../../../'
  10. alias .5= 'cd ../../../../..'

 

#3:控制 grep 命令的輸出

grep 命令是一個(gè)用于在純文本文件中搜索匹配正則表達(dá)式的行的命令行工具

  1. ## Colorize the grep command output for ease of use (good for log files)##
  2. alias grep = 'grep --color=auto'
  3. alias egrep = 'egrep --color=auto'
  4. alias fgrep = 'fgrep --color=auto'

 

#4:讓計(jì)算器默認(rèn)開啟 math 庫

  1. alias bc = 'bc -l'

 

#4:生成 sha1 數(shù)字簽名

  1. alias sha1 = 'openssl sha1'

 

#5:自動創(chuàng)建父目錄

mkdir 命令 用于創(chuàng)建目錄:

  1. alias mkdir = 'mkdir -pv'

 

#6:為 diff 輸出著色

你可以使用 diff 來一行行第比較文件 而一個(gè)名為 colordiff 的工具可以為 diff 輸出著色:

  1. # install colordiff package :)
  2. alias diff = 'colordiff'

 

#7:讓 mount 命令的輸出更漂亮,更方便人類閱讀

  1. alias mount = 'mount |column -t'

 

#8:簡化命令以節(jié)省時(shí)間

  1. # handy short cuts #
  2. alias h = 'history'
  3. alias j = 'jobs -l'

 

#9:創(chuàng)建一系列新命令

  1. alias path = 'echo -e ${PATH//:/\\n}'
  2. alias now = 'date +"%T"'
  3. alias nowtime =now
  4. alias nowdate = 'date +"%d-%m-%Y"'

 

#10:設(shè)置 vim 為默認(rèn)編輯器

  1. alias vi = vim
  2. alias svi = 'sudo vi'
  3. alias vis = 'vim "+set si"'
  4. alias edit = 'vim'

 

#11:控制網(wǎng)絡(luò)工具 ping 的輸出

  1. # Stop after sending count ECHO_REQUEST packets #
  2. alias ping = 'ping -c 5'
  3.  
  4. # Do not wait interval 1 second, go fast #
  5. alias fastping = 'ping -c 100 -s.2'

 

#12:顯示打開的端口

使用 netstat 命令 可以快速列出服務(wù)區(qū)中所有的 TCP/UDP 端口:

  1. alias ports = 'netstat -tulanp'

 

#13:喚醒休眠的服務(wù)器

Wake-on-LAN (WOL) 是一個(gè)以太網(wǎng)標(biāo)準(zhǔn),可以通過網(wǎng)絡(luò)消息來開啟服務(wù)器。你可以使用下面別名來快速激活 nas 設(shè)備 以及服務(wù)器:

  1. ## replace mac with your actual server mac address #
  2. alias wakeupnas01 = '/usr/bin/wakeonlan 00:11:32:11:15:FC'
  3. alias wakeupnas02 = '/usr/bin/wakeonlan 00:11:32:11:15:FD'
  4. alias wakeupnas03 = '/usr/bin/wakeonlan 00:11:32:11:15:FE'

 

#14:控制防火墻 (iptables) 的輸出

Netfilter 是一款 Linux 操作系統(tǒng)上的主機(jī)防火墻。它是 Linux 發(fā)行版中的一部分,且默認(rèn)情況下是激活狀態(tài)。這里列出了大多數(shù) Liux 新手防護(hù)入侵者最常用的 iptables 方法。

  1. ## shortcut for iptables and pass it via sudo#
  2. alias ipt = 'sudo /sbin/iptables'
  3.  
  4. # display all rules #
  5. alias iptlist = 'sudo /sbin/iptables -L -n -v --line-numbers'
  6. alias iptlistin = 'sudo /sbin/iptables -L INPUT -n -v --line-numbers'
  7. alias iptlistout = 'sudo /sbin/iptables -L OUTPUT -n -v --line-numbers'
  8. alias iptlistfw = 'sudo /sbin/iptables -L FORWARD -n -v --line-numbers'
  9. alias firewall =iptlist

 

#15:使用 curl 調(diào)試 web 服務(wù)器 / CDN 上的問題

  1. # get web server headers #
  2. alias header = 'curl -I'
  3.  
  4. # find out if remote server supports gzip / mod_deflate or not #
  5. alias headerc = 'curl -I --compress'

 

#16:增加安全性

  1. # do not delete / or prompt if deleting more than 3 files at a time #
  2. alias rm = 'rm -I --preserve-root'
  3.  
  4. # confirmation #
  5. alias mv = 'mv -i'
  6. alias cp = 'cp -i'
  7. alias ln = 'ln -i'
  8.  
  9. # Parenting changing perms on / #
  10. alias chown = 'chown --preserve-root'
  11. alias chmod = 'chmod --preserve-root'
  12. alias chgrp = 'chgrp --preserve-root'

 

#17:更新 Debian Linux 服務(wù)器

apt-get 命令 用于通過因特網(wǎng)安裝軟件包 (ftp 或 http)。你也可以一次性升級所有軟件包:

  1. # distro specific - Debian / Ubuntu and friends #
  2. # install with apt-get
  3. alias apt-get= "sudo apt-get"
  4. alias updatey = "sudo apt-get --yes"
  5.  
  6. # update on one command
  7. alias update = 'sudo apt-get update && sudo apt-get upgrade'

 

#18:更新 RHEL / CentOS / Fedora Linux 服務(wù)器

yum 命令 是 RHEL / CentOS / Fedora Linux 以及其他基于這些發(fā)行版的 Linux 上的軟件包管理工具:

  1. ## distrp specifc RHEL/CentOS ##
  2. alias update = 'yum update'
  3. alias updatey = 'yum -y update'

 

#19:優(yōu)化 sudo 和 su 命令

  1. # become root #
  2. alias root = 'sudo -i'
  3. alias su = 'sudo -i'

 

#20:使用 sudo 執(zhí)行 halt/reboot 命令

shutdown 命令 會讓 Linux / Unix 系統(tǒng)關(guān)機(jī):

  1. # reboot / halt / poweroff
  2. alias reboot = 'sudo /sbin/reboot'
  3. alias poweroff = 'sudo /sbin/poweroff'
  4. alias halt = 'sudo /sbin/halt'
  5. alias shutdown = 'sudo /sbin/shutdown'

 

#21:控制 web 服務(wù)器

  1. # also pass it via sudo so whoever is admin can reload it without calling you #
  2. alias nginxreload = 'sudo /usr/local/nginx/sbin/nginx -s reload'
  3. alias nginxtest = 'sudo /usr/local/nginx/sbin/nginx -t'
  4. alias lightyload = 'sudo /etc/init.d/lighttpd reload'
  5. alias lightytest = 'sudo /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf -t'
  6. alias httpdreload = 'sudo /usr/sbin/apachectl -k graceful'
  7. alias httpdtest = 'sudo /usr/sbin/apachectl -t && /usr/sbin/apachectl -t -D DUMP_VHOSTS'

 

#22:與備份相關(guān)的別名

  1. # if cron fails or if you want backup on demand just run these commands #
  2. # again pass it via sudo so whoever is in admin group can start the job #
  3. # Backup scripts #
  4. alias backup = 'sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type local --taget /raid1/backups'
  5. alias nasbackup = 'sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type nas --target nas01'
  6. alias s3backup = 'sudo /home/scripts/admin/scripts/backup/wrapper.backup.sh --type nas --target nas01 --auth /home/scripts/admin/.authdata/amazon.keys'
  7. alias rsnapshothourly = 'sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf'
  8. alias rsnapshotdaily = 'sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf'
  9. alias rsnapshotweekly = 'sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf'
  10. alias rsnapshotmonthly = 'sudo /home/scripts/admin/scripts/backup/wrapper.rsnapshot.sh --type remote --target nas03 --auth /home/scripts/admin/.authdata/ssh.keys --config /home/scripts/admin/scripts/backup/config/adsl.conf'
  11. alias amazonbackup =s3backup

 

#23:桌面應(yīng)用相關(guān)的別名 - 按需播放的 avi/mp3 文件

  1. ## play video files in a current directory ##
  2. # cd ~/Download/movie-name
  3. # playavi or vlc
  4. alias playavi = 'mplayer *.avi'
  5. alias vlc = 'vlc *.avi'
  6.  
  7. # play all music files from the current directory #
  8. alias playwave = 'for i in *.wav; do mplayer "$i"; done'
  9. alias playogg = 'for i in *.ogg; do mplayer "$i"; done'
  10. alias playmp3 = 'for i in *.mp3; do mplayer "$i"; done'
  11.  
  12. # play files from nas devices #
  13. alias nplaywave = 'for i in /nas/multimedia/wave/*.wav; do mplayer "$i"; done'
  14. alias nplayogg = 'for i in /nas/multimedia/ogg/*.ogg; do mplayer "$i"; done'
  15. alias nplaymp3 = 'for i in /nas/multimedia/mp3/*.mp3; do mplayer "$i"; done'
  16.  
  17. # shuffle mp3/ogg etc by default #
  18. alias music = 'mplayer --shuffle *'

 

#24:設(shè)置系統(tǒng)管理相關(guān)命令的默認(rèn)網(wǎng)卡

vnstat 一款基于終端的網(wǎng)絡(luò)流量檢測器dnstop 是一款分析 DNS 流量的終端工具。tcptrack 和 iftop 命令顯示 TCP/UDP 連接方面的信息,它監(jiān)控網(wǎng)卡并顯示其消耗的帶寬。

  1. ## All of our servers eth1 is connected to the Internets via vlan / router etc ##
  2. alias dnstop = 'dnstop -l 5 eth1'
  3. alias vnstat = 'vnstat -i eth1'
  4. alias iftop = 'iftop -i eth1'
  5. alias tcpdump = 'tcpdump -i eth1'
  6. alias ethtool = 'ethtool eth1'
  7.  
  8. # work on wlan0 by default #
  9. # Only useful for laptop as all servers are without wireless interface
  10. alias iwconfig = 'iwconfig wlan0'

 

#25:快速獲取系統(tǒng)內(nèi)存,cpu 使用,和 gpu 內(nèi)存相關(guān)信息

  1. ## pass options to free ##
  2. alias meminfo = 'free -m -l -t'
  3.  
  4. ## get top process eating memory
  5. alias psmem = 'ps auxf | sort -nr -k 4'
  6. alias psmem10 = 'ps auxf | sort -nr -k 4 | head -10'
  7.  
  8. ## get top process eating cpu ##
  9. alias pscpu = 'ps auxf | sort -nr -k 3'
  10. alias pscpu10 = 'ps auxf | sort -nr -k 3 | head -10'
  11.  
  12. ## Get server cpu info ##
  13. alias cpuinfo = 'lscpu'
  14.  
  15. ## older system use /proc/cpuinfo ##
  16. ##alias cpuinfo='less /proc/cpuinfo' ##
  17.  
  18. ## get GPU ram on desktop / laptop##
  19. alias gpumeminfo = 'grep -i --color memory /var/log/Xorg.0.log'

 

#26:控制家用路由器

curl 命令可以用來 重啟 Linksys 路由器。

  1. # Reboot my home Linksys WAG160N / WAG54 / WAG320 / WAG120N Router / Gateway from *nix.
  2. alias rebootlinksys = "curl -u 'admin:my-super-password' 'http://192.168.1.2/setup.cgi?todo=reboot'"
  3.  
  4. # Reboot tomato based Asus NT16 wireless bridge
  5. alias reboottomato = "ssh admin@192.168.1.1 /sbin/reboot"

 

#27 wget 默認(rèn)斷點(diǎn)續(xù)傳

GNU wget 是一款用來從 web 下載文件的自由軟件。它支持 HTTP,HTTPS,以及 FTP 協(xié)議,而且它也支持?jǐn)帱c(diǎn)續(xù)傳:

  1. ## this one saved by butt so many times ##
  2. alias wget = 'wget -c'

 

#28 使用不同瀏覽器來測試網(wǎng)站

  1. ## this one saved by butt so many times ##
  2. alias ff4 = '/opt/firefox4/firefox'
  3. alias ff13 = '/opt/firefox13/firefox'
  4. alias chrome = '/opt/google/chrome/chrome'
  5. alias opera = '/opt/opera/opera'
  6.  
  7. #default ff
  8. alias ff =ff13
  9.  
  10. #my default browser
  11. alias browser =chrome

 

#29:關(guān)于 ssh 別名的注意事項(xiàng)

不要創(chuàng)建 ssh 別名,代之以 ~/.ssh/config 這個(gè) OpenSSH SSH 客戶端配置文件。它的選項(xiàng)更加豐富。下面是一個(gè)例子:

  1. Host server10
  2. Hostname 1.2.3.4
  3. IdentityFile ~/backups/.ssh/id_dsa
  4. user foobar
  5. Port 30000
  6. ForwardX11Trusted yes
  7. TCPKeepAlive yes

然后你就可以使用下面語句連接 server10 了:

  1. $ ssh server10

 

#30:現(xiàn)在該分享你的別名了

  1. ## set some other defaults ##
  2. alias df = 'df -H'
  3. alias du = 'du -ch'
  4.  
  5. # top is atop, just like vi is vim
  6. alias top = 'atop'
  7.  
  8. ## nfsrestart - must be root ##
  9. ## refresh nfs mount / cache etc for Apache ##
  10. alias nfsrestart = 'sync && sleep 2 && /etc/init.d/httpd stop && umount netapp2:/exports/http && sleep 2 && mount -o rw,sync,rsize=32768,wsize=32768,intr,hard,proto=tcp,fsc natapp2:/exports /http/var/www/html && /etc/init.d/httpd start'
  11.  
  12. ## Memcached server status ##
  13. alias mcdstats = '/usr/bin/memcached-tool 10.10.27.11:11211 stats'
  14. alias mcdshow = '/usr/bin/memcached-tool 10.10.27.11:11211 display'
  15.  
  16. ## quickly flush out memcached server ##
  17. alias flushmcd = 'echo "flush_all" | nc 10.10.27.11 11211'
  18.  
  19. ## Remove assets quickly from Akamai / Amazon cdn ##
  20. alias cdndel = '/home/scripts/admin/cdn/purge_cdn_cache --profile akamai'
  21. alias amzcdndel = '/home/scripts/admin/cdn/purge_cdn_cache --profile amazon'
  22.  
  23. ## supply list of urls via file or stdin
  24. alias cdnmdel = '/home/scripts/admin/cdn/purge_cdn_cache --profile akamai --stdin'
  25. alias amzcdnmdel = '/home/scripts/admin/cdn/purge_cdn_cache --profile amazon --stdin'

 

總結(jié)

本文總結(jié)了 *nix bash 別名的多種用法:

  1. 為命令設(shè)置默認(rèn)的參數(shù)(例如通過 alias ethtool='ethtool eth0' 設(shè)置 ethtool 命令的默認(rèn)參數(shù)為 eth0)。
  2. 修正錯(cuò)誤的拼寫(通過 alias cd..='cd ..'cd.. 變成 cd ..)。
  3. 縮減輸入。
  4. 設(shè)置系統(tǒng)中多版本命令的默認(rèn)路徑(例如 GNU/grep 位于 /usr/local/bin/grep 中而 Unix grep 位于 /bin/grep 中。若想默認(rèn)使用 GNU grep 則設(shè)置別名 grep='/usr/local/bin/grep' )。
  5. 通過默認(rèn)開啟命令(例如 rm,mv 等其他命令)的交互參數(shù)來增加 Unix 的安全性。
  6. 為老舊的操作系統(tǒng)(比如 MS-DOS 或者其他類似 Unix 的操作系統(tǒng))創(chuàng)建命令以增加兼容性(比如 alias del=rm)。

我已經(jīng)分享了多年來為了減少重復(fù)輸入命令而使用的別名。若你知道或使用的哪些 bash/ksh/csh 別名能夠減少輸入,請?jiān)诹粞钥蛑蟹窒怼?nbsp;

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2018-10-12 10:40:45

LinuxBash命令

2010-06-23 17:16:33

Linux Bash

2019-08-05 10:00:13

LinuxBash命令

2018-01-22 09:12:18

Linuxbashssh

2023-11-04 10:19:56

Skiff Mail快速別名

2023-06-06 19:01:38

縮寫ShellLinux

2023-06-03 20:36:35

ShellLinuxBash

2023-01-04 10:17:19

LinuxBashshell

2010-06-23 17:34:03

Linux Bash

2010-06-23 11:09:14

Linux Bash

2022-05-09 07:08:14

LinuxBashShell

2010-06-23 16:35:50

Linux Bash

2010-06-23 17:37:14

Linux Bash

2009-12-25 09:47:05

LinuxShell編程bash

2022-03-28 11:10:35

ShellBash forLinux

2021-05-11 07:50:31

BashShell腳本

2014-03-13 16:34:04

LinuxBashKSH shel

2022-11-30 07:47:00

Bash腳本

2012-01-18 09:46:32

Shell

2023-06-19 11:30:19

bashshell
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號