国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

簡化shell終端命令輸入的腳本式快捷鍵工具

2019-10-26 18:45:16
字體:
供稿:網(wǎng)友

1.解決的問題

當(dāng)你需要一次輸入很多個(gè)命令的時(shí)候,例如一次去多個(gè)目錄刪除文件
代碼如下:
cd dir1
rm file1.temp
cd ../../dir2
rm -rf dir3

當(dāng)你懶得輸入一個(gè)好長的命令或者直接就記不住那么長的命令的時(shí)候,例如生成ctags
ctags --languages=C++ --exclude=third_party --exclude=.git --exclude=build --exclude=out -R -f .tags

當(dāng)你想要個(gè)類似快捷鍵來一鍵搞定重復(fù)的事情又懶得寫好多腳本的時(shí)候,
duang~~ 這個(gè)工具就有用啦!

2.感性認(rèn)識(shí)

這個(gè)工具是個(gè)shell腳本,附在本文末尾,復(fù)制整個(gè)腳本源碼,在本地保存為rew.sh,放到$PATH下,加上chmod +x權(quán)限。
文件名命名可以按喜好改。r e w 可以用一只左手輸入完畢,然后tab鍵就出.sh了,我感覺挺好的。

前面所說的復(fù)雜操作就變成了這么簡單:

一次去幾個(gè)目錄刪除文件,只需要rew.sh d
如果想指定起始目錄,還可以再帶參數(shù)rew.sh d dir_path

生成ctags,只需要rew.sh ct

如果忘了這個(gè)腳本有什么功能,只需要不帶參數(shù)運(yùn)行crt.sh就會(huì)列出所有的命令。

3.理性認(rèn)識(shí)

如果想加入自定義的命令,找到
代碼如下:
cmds=(xxxxx)

的地方,增加一行就可以了。每行就是一個(gè)參數(shù)和實(shí)際命令,可以看到:
代碼如下:
# defines commands here,format:
# shortcut|one space|action
cmds=(
  'w ninja -C out/Debug android_webview_apk'
  'gyp build/gyp_chromium'
  'd gdb -ex=r --args out/Debug/chrome --no-sandbox http://100.84.44.189'
  'ct ctags --languages=C++ --exclude=third_party --exclude=.git --exclude=build --exclude=out -R -f .tags'
  # 'e echo example to show this can be commentted'
  'r ninja -C out/Debug chrome_shell_apk'
  'u updateChrome'
  't testChromeShellMemory'
  'o openUrlInCAWShell'
)

也就是,第一個(gè)空格前是rew.sh的參數(shù)(快捷鍵),第一個(gè)空格后是實(shí)際運(yùn)行的命令。其中多個(gè)步驟的命令可以做成函數(shù),例如:
代碼如下:
updateChrome() {
  git pull
  cd third_party/WebKit
  git pull
  gclient sync --nohooks
}

如果怕忘記長命令用來干什么,也可以放到函數(shù)里,函數(shù)名要見名知意或者加注釋。

這個(gè)腳本可以被其它腳本調(diào)用,返回值和被代替的命令相同。

附工具腳本:
代碼如下:
#!/bin/bash
#author liuhx 2015/03/03 http://blog.csdn.net/hursing

# if including multiple steps, combine them into function
updateChrome() {
  git pull
  cd third_party/WebKit
  git pull
  gclient sync --nohooks
}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 抚松县| 竹山县| 潞西市| 德令哈市| 太保市| 扬中市| 潞城市| 嘉禾县| 西乌珠穆沁旗| 柏乡县| 杨浦区| 贵州省| 海南省| 昌江| 湟中县| 隆德县| 邓州市| 蒙阴县| 炉霍县| 东平县| 漠河县| 贵定县| 吉木乃县| 哈密市| 陵川县| 中超| 沁水县| 皮山县| 合水县| 湟中县| 绥滨县| 肇州县| 灵武市| 雅安市| 灌南县| 石河子市| 南丹县| 保亭| 洱源县| 麟游县| 江华|