Advanced Linux 1

Alias

linux系統(tǒng)允許我們給command起別名,我們可以給常用的命令寫別名,方便以后的操作。

為了讓系統(tǒng)識別alias,我們要在 ~ 目錄下新建 .alias 文件,在文件每一行寫一個命令的別名,如:

alias newname="command"

注:'='兩邊不能有空格

然后在 ~/.zshrc (或者 ~/.bashrc )最后添加一行:

source ~/.alias

每次更改了 .alias 文件之后都要運行:

source ~/.zshrc

其實zsh中已經(jīng)有相當(dāng)一部分的alias了,有興趣可以查一查,我用的它的alias并不多,就不列舉了,下面列舉一下我自己的alias吧:

alias vi="vim"
alias sv="sudo vim"

alias df="df -h"
alias du="du -h"

alias p="ps -f"
alias grep="grep --color"
alias h="history"

alias zshrc="vim ~/.zshrc && source ~/.zshrc"

alias p2="python2"
alias p3="python3"
alias ip2="ipython2"
alias ip3="ipython3"

另外git也可以設(shè)置alias,不過是直接在git里設(shè)置就行了,常見的如下:

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'

Arch 開機啟動服務(wù)

Ubuntu下有 /etc/rc.d 目錄,其中的shell腳本會在開機時運行,這是一個簡單的方法,但是缺點在于系統(tǒng)只是簡單地執(zhí)行該腳本,而不關(guān)心能否成功運行,也不關(guān)系執(zhí)行結(jié)果。Ubuntu中還有另一種方法,就是將要執(zhí)行的腳本封裝成 服務(wù)(service) ,系統(tǒng)會自動監(jiān)控所有的服務(wù)狀態(tài),我們也能隨時獲取它們的執(zhí)行信息。這也是Arch中唯一來實現(xiàn)開機啟動程序的方式。

首先在 /etc/systemd/system/ 目錄下創(chuàng)建一個名為 myscript.service 的文件,文件內(nèi)容如下:

[Unit]
Description=My script

[Service]
ExecStart=/usr/bin/my-script

[Install]
WantedBy=multi-user.target

然后運行命令:

#enable start
systemctl enable myscript.service

#disable start
systemctl disable myscript.service

注:my-script 文件是一個shell文件,要有可執(zhí)行權(quán)限,而且開頭必須是:

!/bin/bash

Linux Desktop Entry

有了可執(zhí)行的二進(jìn)制程序和一個圖標(biāo),可以制作桌面快捷方式,以haroopad為例,需要在目錄 /usr/share/applications/ 中新建一個文件,命名為 haroopad.desktop ,文件寫法:

[Desktop Entry]
Name=Haroopad
Comment=A Markdown Editor
GenericName=Text Editor
Exec=/path/to/haroopad
Icon=/path/to/icons/haroopad.png
Type=Application
StartupNotify=true
StartupWMClass=Haroopad
Categories=GNOME;GTK;Utility;TextEditor;Development;
MimeType=text/plain;

Others

sudo 不輸入密碼

使用sudo權(quán)限編輯 /etc/sudoers 文件或者執(zhí)行 sudo visudo 命令,添加一行

username ALL=(ALL) NOPASSWD: ALL

可以讓特定用戶不用輸入密碼進(jìn)行sudo操作

或者將該文件中的這一行取消注釋

# %wheel ALL=(ALL) NOPASSWD: ALL

這樣讓所有wheel組內(nèi)的用戶均不用輸密碼

注:wheel組就是管理員組,user在wheel組里說明該user是可以su來獲得root權(quán)限,但非wheel組用戶不行

git push需要輸入密碼問題

git可以使用https方式或者ssh方式訪問,其中https方式每次都需要輸入密碼,ssh方式不用,因為ssh采用的密鑰驗證,私鑰本地保存,公鑰在服務(wù)端。解決方法就是:

  • git remote add origin 'repo的ssh地址'

  • 修改已有項目 .git/config 文件中的url,改成ssh地址

清除linux boot中無用的啟動項

這是Ubuntu這個坑系統(tǒng)才有的問題,而我已經(jīng)入了Arch神教啦,哈哈。因為Ubuntu更新了之后,舊的linux-image還會存在于 /boot 分區(qū)中,所以 /boot 的空間會越來越小。之前Ubuntu的 /boot 分區(qū)有200M空間,有一次更新出來的linux-image超過了100M,結(jié)果下一次更新的linux-image也大于100M,導(dǎo)致我從此告別了內(nèi)核更新。。。

首先查看已安裝的linux-image的各個版本:

dpkg --get-selections | grep linux-image

確認(rèn)當(dāng)前使用的是哪一個:

uname -a

刪除某個版本的linux-image,這里為了徹底刪除用purge而不是remove,比如:

sudo apt-get purge linux-image-3.5.0-27-generic

卸載完可再查看所有的linux-image

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容