====== 關掉 console 下的蜂鳴器 ======
sudo modprobe -r pcspkr
或者用 sudo modconf,找到 drivers/input/misc/pcspkr.ko 並移除。
====== 家目錄的原始檔 ======
/etc/skel
====== 手動建帳號 ======
- 編輯 /etc/passwd
- 將 /etc/passwd 與 /etc/shadow 同步化 ( pwconv )
- 編輯 /etc/group
- 將 /etc/group 與 /etc/gshadow 同步化 ( grpconv )
- 開設使用者的自家目錄(通常在 /home 中, 建一個和使用者帳號同名的目錄)
- 將 /etc/skel 中的檔案全拷貝至使用者的自家目錄(cp /etc/skel/.* /home/使用者)
- 調整使用者自家目錄檔案權限
- 設定密碼
====== 大量建帳號 ======
for line in `cat account.txt`
do
account=`echo $line | cut -d : -f 1`
passwd=`echo $line | cut -d : -f 2`
useradd -m $account
echo $account:$passwd | chpasswd
done
account.txt 格式:
account:password
====== 手動移除帳號 ======
- 先以 find / -user account 找出所有的帳號檔案,並將他刪除
- 將 /etc/passwd 與 /etc/shadow 的相關資料刪除
- 將 /etc/group 及 /etc/gshadow 相關資料刪除
- 將 /home 底下關於該帳號的目錄刪除
- 到 /var/spool/mail 以及 /var/spool/cron 裡面將相關的使用者檔案刪除
====== 使用者郵件轉寄 ======
.forward (644)
\test@ab.com
\edward
====== 網路校時 ======
安裝 ntpdate 套件
# ntpdate -s stdtime.gov.tw
====== Learn 10 good UNIX usage habits ======
[[http://www-128.ibm.com/developerworks/aix/library/au-badunixhabits.html]]
====== crontab ======
===== 系統全域 =====
/etc/crontab
# m h dom mon dow user command
0 5 * * * root /usr/sbin/ntpdate -s stdtime.gov.tw > /dev/null 2>&1
===== 各使用者 =====
$ crontab [參數]
^ 參數 ^功能^
| e |修改|
| l |列出|
| r |清除|
===== 修改設定 =====
* 每月每天七點執行
# min hour day mon week command
0 7 * * * /usr/bin/aptitude update > /dev/null 2>&1
* 將 stdout 導到 null,不要將結果寄信
> /dev/null 2>&1
====== 交換 stdout 與 stderr ======
只在 bash 可用。「n>&m」代表改變檔案與 FD 的關聯性,「將 stderr( FD 2)的關聯對象,改成 stdout(FD 1)的關聯對象」。
交換 stdout 與 stderr:使用保留的 FD 3 ~ FD 9。
3>&2 2>&1 1>&3
<&- 關掉 stdin
>&- 關掉 stdout
====== 一次修改許多檔案名稱 ======
把 *.cbe 改成 *.brl
$ rename 's/\.cbe$/\.brl/g' *
====== 設定網路 ======
ifconfig eth0 inet 192.168.50.207 netmask 255.255.255.0
route add default gw 192.168.50.254
====== NAT 導 Port ======
內部電腦為 192.168.1.10,對外網卡為 eth0,想導的 port 為 6881。
iptables -t nat -A PREROUTING -P tcp -i eth0 --dport 6881 -j DNAT -- to 192.168.1.10:6881
====== 找檔案 ======
$ locate [string]
$ locate -r "[正規表示法]"
find [location] [qualification]
$ find / -name abc.pdf
====== 遠端傳送單一檔案(scp) ======
將 file 傳送至遠端,以 username 權限登入,並放置 path 中
scp [file] [username]@[host]:[path]
example:
scp make.conf user@192.168.1.2:~
主機後面要加一個「:」代表遠端的主機,「~」代表遠端的家目錄。
====== 透過 ssh 掛載遠端 filesystem ======
安裝套件:
sshfs
使用:
# sshfs [username]@[host]: [mount point]
如果出現「fusermount: failed to open /dev/fuse: No such device or address」
# mknod -m 666 /dev/fuse c 10 229
寫進 /etc/fstab 中:
sshfs#user@host:/ /mnt/host fuse defaults 0 0
參考:http://fuse.sourceforge.net/wiki/index.php/SshfsFaq
====== 複製時比對資料新舊 ======
find -name "*.txt" | cpio -pdm /mnt/a/txt
把指定目錄內的檔案複製一份到 /mnt/a/txt 目錄內,後續若是多次
執行時會比對來源目錄的檔案時間是否比較新,有的話就進行複製更新。
====== 監控網路介面 ======
===== bwm =====
===== bmon =====
===== iftop =====
===== iptraf =====
====== 監控溫度及風扇轉速 ======
===== mbmon =====
# sudo mbmon
====== 硬體 I/O 狀態 ======
安裝 sysstat 套件
$ iostat /dev/sda1 -k 1 # 硬碟
====== .exrc ======
vi 程式的預設設定,可在 vi 裡用「:set all」查詢
set number
syntax on
set paste
set softtabstop=4
====== cp ======
* -p 表示保留 permission,ownership,timestamp
* -d 表示完整複製 symlink and hard link
* -R 表示複製子目錄與特殊屬性的檔案 (socket, pipe line file)
====== tar ======
* -c : create
* -x : extract
* -t : list
* -f : file
* -j : bzip2
* -z : gzip
* -p: 維持原本的檔案權限
tar -cvf filename.tar file1 [file2 ...] # 建立
tar -tf filename.tar # 印出包含的檔案
tar -rvf filename.tar file1 [file2 ...] # 將檔案放入已存在的 .tar 檔中
tar --delete -vf filename.tar file1 [file2 ...] # 將存在 .tar 裡面的 file1 刪除
tar -xvf filename.tar[.Z | .gz | .bz2] # 解開(可以不用指定解壓縮方式)
===== 以 bzip2 壓縮 =====
tar -cjvf filename.tar.bz2 file1 [file2 ...]
===== 以 gzip 壓縮 =====
tar -czvf filename.tar.gz file1 [file2 ...]
===== 差異備份 =====
使用選項「-g 紀錄檔」可以依照紀錄檔的時間進行差異備份。下次備份時只會針對有修改的檔案進行備份。
tar -czf backup_1.tar.gz -g times file1 [file2 ...]
下一次:
tar -czf backup_2.tar.gz -g times file1 [file2 ...]
回復備份:只要由舊到新依序將備份解開即可。
====== ipcs ======
* -a All
* -q 顯示訊息佇列
* -m 顯示共享記憶體
* -p 顯示 Process 訊息
====== curl ======
列出網頁的詳細 header
$ curl -I [url]
====== ssh 登入訊息 ======
- 修改 /etc/motd 成想要顯示的內容
- 修改 /etc/init.d/bootmisc.sh
# Update motd
# uname -snrvm > /var/run/motd
# [ -f /etc/motd.tail ] && cat /etc/motd.tail >> /var/run/motd
====== SSH 不檢查 key ======
~/.ssh/config
StrictHostKeyChecking no
====== 備份指令 ======
===== bash =====
http://blog.wu-boy.com/2006/12/10/52
#!/bin/bash
date=`date +%Y-%m-%d`
RETENTION_PERIOD="7"
HEADER="Backup data"
remove_oldfiles(){
echo "Removing directory $1 files older than $RETENTION_PERIOD days"
| wall
find $1 -type f -mtime +$2 -exec rm '{}' \;
}
BACKUPDIR="/home/appleboy /var/www/html"
back_www_dir="/backup01/www_data"
#
# 開始備份
#
cd $back_www_dir
for TARGET in $BACKUPDIR
do
echo "System backup on $TARGET" | wall
BASENAME=`basename $TARGET`
tar -zcvf ${BASENAME}-${date}.tar.gz $TARGET 1>/dev/null
sleep 2
done
#
# 刪除7天前的資料
#
remove_oldfiles $back_www_dir $RETENTION_PERIOD
====== Run commands on multiple machines ======
Fanout and Fanterm: http://blog.wu-boy.com/2010/01/08/1950/