顯示具有 指令 標籤的文章。 顯示所有文章
顯示具有 指令 標籤的文章。 顯示所有文章

2008年2月11日 星期一

rpm 對照 dpkg

安裝、移除

目的 rpm 範例 長旗標
dpkg 範例長旗標
安裝 rpm -i webmin-1.400-1.noarch.rpm install
dpkg -i webmin_1.400_all.debinstall
移除
rpm -e webmin
erase
dpkg -r webmin (保留設定檔)
dpkg -P webmin (完全移除)
remove
purge

查詢已安裝套件

目的 rpm 範例 長旗標
dpkg 範例長旗標
顯示所有已安裝的套件名稱 rpm -qa query
all
dpkg -llist
顯示套件包含的所有檔案rpm -ql webmin
query
list
dpkg -L webmin
listfiles
顯示特定檔案所屬套件名稱rpm -qf ./webmin.conf
query
file
dpkg -S ./webmin.conf
search
查詢套件檔案資訊rpm -qi webmin
query
info
dpkg -p webmin (顯示詳細資訊)
print-avail
查詢套件安裝檔的資訊rpm -qip webmin-1.400-1.noarch.rpmquery
info
package
dpkg -I webmin_1.400_all.debinfo
查詢套件安裝檔的欲安裝檔案rpm -qlp webmin-1.400-1.noarch.rpmquery
list
package
dpkg -c webmin_1.400_all.debcontent

本文是主要參考
http://cha.homeip.net/blog/archives/2005/08/rpm_vs_dpkg.html
本來想做更詳盡的整理,但原文已夠棒了,就稍微整理一下編排就發布了。
這裡題一下 alien 這命令,它在 LPI1 常考,主要目的是用於 debian 系統上使用 rpm 的套件。

2007年12月10日 星期一

Cron Job 排程工作

設定系統的工作排程,主要是修改 /etc/crontab,當我們檢視 /etc/crontab 時,我們可以看到以下程式碼
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 1 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
由這段程式碼我們可窺見程式碼中每個數字的意義
crontab 檔案的格式為一行中有5個數字,以空白鍵或tab鍵分開。這五個數字指定命令執行的時間:

01 * * * * root run-parts /etc/cron.hourly
角色 排程工作

代表意義 分鐘 小時 日期 月份
數字範圍 0-59 0-23 1-31 1-12 0-7
0,7皆可代表週日

範例:
  • 01 * * * * => 每個鐘頭的 01 分
  • 02 4 * * * => 每天的 4 點 02 分
  • 22 1 * * 0 => 每個週日的 1 點 22 分
  • 42 4 1 * * => 每月 1 號的 4 點 42 分
進階寫法
  • 0 3,6 * * * => 每天 3 點與 6 點
  • 20 8-12 * * * => 每天 8 點到 12 點之間的每個小時的 20 分
  • */5 * * * * =>每五分鐘進行一次,用 * 與 /n 來搭配代表每隔 n 單位間隔
排程工作的指令
crontab 可讓使用者建立自己的排程工作,而 root 也可利用 crontab 管理修改其他用戶的排程。
crontab -e:建立,編輯使用者的工作排程。
crontab -l:列出使用者的工作排程。
crontab -r:清空使用者的工作排程。
注意事項:
  • crontab -e 命令會在/var/spool/cron/crontabs目錄下建立一個與您的使用者名稱同名的檔案。
    此檔案中的命令會在特定時間間隔於用戶的起始目錄中執行。
  • 當crontab 命令錯誤時,會發一封郵件給管理者,可藉由編輯 /etc/crontab 中的 MAILTO,來指定寄件信箱。

2007年11月26日 星期一

指令別名

指令在之前就提到過了,當時沒記錄 alias ,是覺得還蠻簡單的,會想重提 alias,是後來學到/etc/aliases 與 newaliases 的指令,覺得兩者易搞混,故決定記錄一下兩者的差別。

Command alias 指令別名

指令別名主要用意是希望用簡單的指令別名代替原本較長加上複雜參數的指令,最常見的莫過於 ll (常用於 red hat),它其實是 ls 的指令別明,而其原本的寫法為 ls -l --color=tty,以下為查詢指令別名的方法:
bang@linuxdiary:~$ alias
alias ls='ls --color=auto'
alias 與 unalias 分別為設定與解除指令別名的指令,以下為範例:

設定 l. 為顯示所有隱藏檔的指令別名
bang@linuxdiary:~$ alias l.='ls -d .* --color=tty'
bang@linuxdiary:~$ l.
. .chewing .gaim .gnome2 .lesshst .profile .thumbnails .Xauthority
.. .config .gconf .gnome2_private .metacity .recently-used .Trash .xsession-errors
略...
取消 l. 的設定
bang@linuxdiary:~$ unalias l.

但以上指定的別名在登出 Shell 後,即失去作用。如果想讓系統維持別名的設定,必須在 Shell 的設定擋 .bashrc 設定想要常駐的別名,以下節錄 Ubuntu 的 ~/.bashrc 檔案
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

#if [ -f ~/.bash_aliases ]; then
# . ~/.bash_aliases (使用者也可使用 .bash_aliases 來替代在 .bashrc 編寫別名)
#fi

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
eval "`dircolors -b`"
alias ls='ls --color=auto' (Ubuntu 預設中唯一的別名...)
#alias dir='ls --color=auto --format=vertical'
#alias vdir='ls --color=auto --format=long'
fi

# some more ls aliases (red hat 常見的 ls 別名,在 Ubuntu 都註解掉了)
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

2007年10月7日 星期日

指令歷程

現今的 bash 與 tcsh 對指令紀錄的已有大幅的進步,它讓你用相當簡單的方式調出先前曾經輸入的指令,當你與 bash 互動時,你所下達的每個命令,會先被 shell 記錄在自己的歷程表(history list),然後才開始進行解讀或執行。
歷程表的容量由變數 HISTSIZE 控制
bang@linuxdiary:~$ echo $HISTSIZE
500
預設值為 500,可視情況修改。
當你登出系統時,歷程表的內容會被寫進你的個人目錄之中的 .bash_history 之中 (環境變數 HISTFILE 所指定的檔案) ,當你下次登入系統時,即可使用 history 指令調出之前輸入的指令。
history
語法
history [option] [files]
列出指令歷程
常用選項
  • n :數字,意思是『要列出最近的 n 筆命令列表』的意思!
  • -c :將目前的 shell 中的所有 history 內容全部消除
  • -a :將目前新增的 history 指令新增入 histfiles 中,若沒有加 histfiles , 則預設寫入 ~/.bash_history
  • -r :將 histfiles 的內容讀到目前這個 shell 的 history 記憶中;
  • -w :將目前的 history 記憶內容寫入 histfiles 中!
bang@linuxdiary:~$ history 3
125 history
126 history 5
127 history 3
history expansion 歷程擴展
所謂的歷程擴展,就是在命列重新執行歷程表中的舊命令,以下列出歷程擴展的語法
語法 說明
!! 歷程最後一道命令,同按上後 Enter。
!n 歷程第 n 個命令。
!-n 執行前 n 個命令。
!string 歷程表中最後一筆開頭為 string 的命令。
!?string 歷程表中最後一筆含有為 string 的命令。
^string1^string2 重複最後一筆命令,但命令中 string1 置換為 string2
!$ 前一個命令的最後一個元素
!:n-1 前一個命令的第 n 個元素

2007年9月17日 星期一

Linux 指令 - 一般格式

通常執行命令時會在一個叫做 shell 的視窗中:
>ls -la /tmp
  • >:command prompt 命令提示字元,系統會以一個符號讓使用者知道,系統已準備好接受命令,通常以 $ 或 # 等表示方法,並可能包含其他資訊,如主機名稱,使用者身分等。
  • ls :command 一個有效的命令。(shell 的內建命令,存放在 PASH 所列目錄中的程式或程序稿,或是包含完整路徑的命令。)
  • -la :flags 旗標
  • /tmp :arguments 參數

注意:
  • Shell 是一種解釋命令意義的程式,Linux 中預設的 shell 是 GNU 參考 sh 所寫出的版本,稱為 bash (Bourne-Again Shell)。
  • Linux 的命令列是有大小寫之分的 (case-sensitive)。


Flags (旗標)的說明:
Shell 只要在命令列上遇到 - (dash)號,會自動判斷為旗標,不管 - 出現的位置,但事實 - 有兩種格式,如以下:
  1. Short Format: - ,一個字元,一個 Flag
  2. Long Format : -- ,一個單字
警告:
  • 通常短格式 - 後,不可能不會遇到如 ls -directory /tmp。因為一個字元,代表一個 Flag。
  • 由於有減號的關係,ls 認出 -l 是一個旗標而非檔名。然而並非所有命令都強調,旗標前都要有減號,最著名的例子為 tar 和 ps。
  • 以上說的是通則,可幫助學會命令的語法,但許多特殊命令不可一慨而論。