分享

command_history_list

 农夫子oice 2007-05-02
第1堂 (2006/10/03):
0. Live CD下載網址:
http://ossacc./center/LiveCD.iso
上課所發的是
OSSACC Ez-Go推廣光碟 http://download./ezgo3.iso
OSSACC Ubuntu 6.06為基礎製作Live-CD http://download./ubuntu6.06-tw.iso
2006/10/10 國慶日放假一天
2006/10/17 老師請假
第2堂 (2006/10/24)
0. 強迫結束X-window
ctrl-alt-backspace 三個鍵一起按
1. 改密碼
單機安裝: passwd
集中管理(YP)環境: yppasswd
2. 切換virtual console與x-windows
ctrl-alt F1
ctrl-alt F2
ctrl-alt F3
ctrl-alt F4
ctrl-alt F5
ctrl-alt F6
ctrl-alt F7
3. touch a.tar
ls
ls -l
4. which ls
5. alias ls
6. alias lls=‘ls -l‘
lls
7. whoami
8. unalias
9. 應用程式-> 附屬應用程式 ->文字編輯器 ->檔案 ->開啟位置
~/.bashrc
或者 gedit ~/.bashrc
然後該檔案中最後面加上
-------------
alias lls=‘ls -l‘
-------------
然後登出再登入
alias
第3堂 (2006/10/31)
0. screen的使用
ctrl-a c create
ctrl-a n next
ctrl-a p previous
ctrl-a d detach
screen -ls
screen -r xxxx
ctrl-a "  切換不同的畫面
1. 查詢指令
man screen
搜尋關鍵字 /$keyword
結束 q
2. ls -alF /etc/passwd 看檔案屬性
cat /etc/passwd 看檔案內容
rm /etc/passwd  移除檔案
touch t.txt     產生t.txt檔案
rm t.txt
rm -f t.txt     強迫移除t.txt,不逐一確認
ls -d /etc/p*
rm -i *
alias rm="rm -i"
rm -f t.txt
3. mkdir tmp
ls
ls -R
cd tmp
pwd
touch a.txt b.txt
cd ..
rmdir tmp
rm -rf tmp
4. /sbin/route -n 查詢gateway server
ssh lnx0xy@192.168.64.254 登入主機192.168.64.254
w  看主機192.168.64.254上有誰登入
exit  退出
一般退出程式的作法
quit
exit
q
ctrl-c   中斷執行中的程式
history可以看打過的指令
!數字 (例如!167 可以執行history中編號167的指令)
重複使用過去打過的指令
ctrl-r 關鍵字
ssh lnx0xy@192.168.64.254 w 可以直接執行主機192.168.64.254中的w,然後回到目前的機器
cp /etc/hostname .
scp hostname lnx0xy@192.168.64.254:~/hostname2  把檔案hostname複製到主機192.168.64.254中,lnx0xy帳號的家目錄中,存成檔名hostname2 (~/表示是家目錄的意思)
第4堂 (2006/11/07)
0. ssh lnx0xy@192.168.64.254
cat /etc/passwd
more /etc/passwd
less /etc/passwd
space 下一頁
b     上一頁
q     quit 結束
/XX   搜尋XX
n     往下搜尋
N     往上搜尋
-N    顯示/關閉行號
g     到檔首
G     到檔尾
文字模式下,用shift-pageup來看上一頁的螢幕輸出
如果更多畫面,shift-pageup不夠,可以用:
ls -l /etc | less
0. df    看磁碟報表
df -k
df -h
df -m
1. 掛載
先把自動掛載的光碟卸載 umount /dev/hdc
mount /dev/hdc /mnt
umount /dev/hdc
mkdir /media/dvd
mount /dev/hdc /media/dvd
透過mount,可以把系統中任何一個目錄,掛載到某個裝置(硬碟)
2. gedit abcdefgh
symbolic link / soft link 軟連結, 本尊 <-> 分身
ln -fs abcdefgh x
mkdir tmp
cd tmp
cp /boot/vmlinuz-2.6.8-3-386 .
du -hs 顯示佔用1.1MB
ln -fs vmlinuz-2.6.8-3-386 vm
du -hs 還是顯示佔用1.1MB (事實上是多了一點點佔用空間,本例是19bytes)
3. gedit 123
硬連結 (hard link),都是本尊
ln -f 123 321
rm -f 123
ls -lF
rm -f abcdefgh 移除軟連結的本尊
cat x 分身會發現找不到檔案
使用gedit編寫hardlink檔案的時候,因為gedit會先把原來的檔案備份(xxx~),然後產生新的檔案,這時產生新的檔案就不會是原來的hardlink本尊檔案。
如何看hardlink的檔案是否相同?
ls -il,可以看index number (inode),就可以確認
第5堂 (2006/11/14) 公共參與週
第6堂 (2006/11/21)
0. ls -F /sbin/
ls -lFR /etc
@, *, / etc...
人易讀的檔案大小(K, M, G...)
ls -lFh /boot/
alias
unalias ls
ls -F
1. touch 123
ln 123 321  (產生hardlink)
gedit 123
編寫完之後,存檔,跳出gedit。結果發現321的內容怎麼還是空的?
原因:使用gedit編寫hardlink檔案的時候,因為gedit會先把原來的檔案備份(xxx~),然後產生新的檔案,這時產生新的檔案就不會是原來的hardlink本尊檔案。
ls -li可以根據inode來判斷不同檔名的檔案是否實際為同一個檔案
2.
chown lnx001 123
su 換成root之後,才能更換檔案的擁有者
chown lnx001 123
cd /tmp/
touch 123
su 換成root
chgrp linux 123
chown lnx020.users 123
chown lnx020:users 123
mkdir test
touch test/456
chown lnx020 test
chown -R lnx020.users test
3. chmod u   r  file
g + w
o - x
a
chmod u+x 321
chmod u-x 321
chmod u+x,g+x,o+x 321
chmod a+x 321
chmod u+rwx,g-rxw,o-rxw 321
chmod 755 321
chmod 700 321
7 rwx
6 rw-
5 r-x
4 r--
1 --x
常見的: 755, 700, 644, 600
4.
file /etc/init.d/gdm
file /bin/ls
file 321
5. ..
.
.test
cd ..
cd ../../
cd /home/steven/tmp/../
cd ~lnx019 直接換到使用者lnx019的家目錄
cp /etc/hosts .
cd /etc/dhcp3
cd ~/test
6. less /proc/cpuinfo
grep "cpu MHz" /proc/cpuinfo > cpu.log
less /proc/meminfo
dir /dev/cdrom
less /proc/uptime
7. dmesg
dmesg | less
插上隨身碟
dmesg | tail
dmesg | tail -n 5
dmesg | head
dmesg | head -n 5
dmesg | head -n 3 | tail -n 1 只顯示第三列
cut -d":" -f6 /etc/passwd  只顯示第六欄
print line 3, 2nd word
dmesg | head -n 3 | tail -n 1 | cut -d" " -f 2
grep "MemTotal" /proc/meminfo | cut -d":" -f2
cat /etc/passwd | head -n 3 | tail -n 1 | cut -d":" -f 3
第7堂 (2006/11/28)
1. 重複使用過的指令
a. 上下鍵
b. 執行history來看總表
要執行第77行: !77
上一行: !!
c. 用bash內建的命令搜尋ctrl-r + keyword
d. 到指令列的列首: ctrl-a
列尾: ctrl-e
2. printenv 印出環境變數
echo $USER 印出變數USER
echo 123456abc
echo ‘123456abc‘
echo "123456abc"
echo ‘$USER‘
echo "$USER"
b=`pwd`
echo $b
date +%F
man date
filename=`date +%F`
echo "$filename.tgz"
echo "ab\""  \是跳脫符號
echo \$ab
2. ps
ps -aux      PID: process ID
ps -auxw
ps -auxwwww w愈多,顯示結果越詳細
ps -ef       可以看PPID (parents ID)
pstree       ps的族譜
3. gnome-terminal
konsole
rxvt
rxvt &
fg
ctrl-z  暫時中斷
bg
fg
ctrl-c  終止程式
3. rxvt
ctrl-z
jobs
bg 1
rxvt &
jobs
bg
ps
kill $PID
kill -9 $PID
kill -KILL $PID
killall -9 rxvt
pkill -9 rxvt
top
4. 加路徑
gedit ~/.bashrc (或是~/.bash_profile, ~/.profile根據系統而異)
加上
alias cd..="cd .."
source ~/.bashrc
馬上就可以生效
export PATH=$PATH:/sbin
5. runlevel
/sbin/runlevel
init 3
cat /etc/inittab
init 5
6. sync
sync;sync;sync
shutdown -h -t 5 now "shutdown now..."
第8堂 (2006/12/5)
1. less /etc/fstab
# file system	mount point	type	options  dump pass
fdisk -l /dev/hda 察看hda的分割表
拿到一個新的硬碟,要能使用
a. 插上主機,接上排線,假設是/dev/hdb
b. 開機後,先用fdisk /dev/hdb來產生分割區/dev/hdb1
c. 然後用格式化出檔案系統: mkfs.ext3 /dev/hdb1
d. 建立掛載點/work
e. 然後改/etc/fstab,加上一行
/dev/hdb1  /work  ext3 defaults 0 0
f. 執行mount -a或是重新開機。
2. cd /etc
grep dev *
ls -alF | grep apache
grep -ir dev *
產生一個檔案test,內容
-------------
abc
ab
abcde
-------------
grep ab test
grep "^ab" test  抓取行首馬上接ab
grep "b" test    抓取b
grep "b$" test   抓取b然後是行尾
grep -o "b" test 只顯示出符合的地方
grep -v "b" test 相反意思
wc -l 算出幾行
wc -m 算出幾個字(word)
grep -w "ab" test | wc -l
grep -w "ab" test | wc -w  算出test中,共有幾個ab
3.  man ls
man grep
man crontab
man 5 crontab
man passwd
man 5 passwd
4. info ls
info info
"p" previous page
"n" next page
l
^L
5. cd /usr/share/doc
要找bash,
6. vim
vi test.txt
esc 兩次,可以切換到控制模式
i   在游標所在的位置開始編輯
:w test
:q
:wq
:q!
hjkl
a   在游標所在的下一個字元位置開始編輯
:set vb  關閉鈴聲
:set novb 開啟鈴聲
^ 行首
$ 行尾
到某一行
1G
22G
G  到檔尾
cp /etc/init.d/apmd .
vim apmd
:set nu    設定行號
:set nonu
:set ru    設定游標尺
:set noru
:syntax on
:syntax off
J   把下一行接到行尾
u   undo,回復上一個指令
ctrl-r   redo,重做上一個指令
尋找
/change 搜尋change
n       往下搜尋
N       往上搜尋
:set ic         忽略大小寫的差異
:set noic
:set hlsearch   搜尋結果反白/彩色顯示
:set nohlsearch
:help
Ctrl-]
Ctrl-O
第9堂 (2006/12/12) 福林社區電腦教室,影像融入教學
第10堂 (2006/12/19)
0. vim
刪除相關
x   刪除一個字元
dw  刪除word
dd  刪除一整行
d$  刪除到行尾
d^  刪除到行首
5dd 刪除5行
cp /etc/passwd .
複製相關
5Y       把游標所在(含)以下的5行存到暫存區
p        貼到游標所在的下一行
P        貼到游標所在的上一行
ctrl-v
ctrl-v : y  存反白的所有行
ctrl-v Y (ctrl-v y)  只存反白的區塊
視窗相關
ctrl-w s
ctrl-w v
ctrl-w [h,j,k,l]
:e test.txt
:w test2.txt     另存新檔test2.txt
:wq
:q
ctrl-r   重做(redo)上一個指令
export SHELL=/bin/bash 避免vim找不到SHELL變數而啟動的時候一堆警告。
比較兩個檔案:
vimdiff a.txt b.txt
vimdiff -o a.txt b.txt
vim ~/.vimrc
-------------
set hlsearch
set ic
set ruler
syntax on
-------------
Debian系統的vimrc在/etc/vim/vimrc
cp /etc/vimrc .vimrc
然後可以做適當的編寫開啟關閉
取代
:%s/abc/xyz/    一行裏面不管搜尋到幾個的字串,只取代第一個
:%s/abc/xyz/g   一行裏面如果搜尋到有兩個(含)以上的字串,都取代
:%s/abc/xyz/gc  加上c表示要每個取代都確認
:%s/abc/xyz/gc
:1,$s/abc/xyz/gc
:10,20s/abc/xyz/gc
:ctrl-v來選區域,然後:s/abc/xyz/gc
:%s/^/ /g
:%s/$/#/g
:%s/$/
/g 在html檔案中加上換行的tag :%s/:.*//g :^$ :g/^$/d %s/ab\/c/xyz/ ctrl-v [enter] 其他: O 增加一行空行在游標所在的上一行 o 增加一行空行在游標所在的下一行 dos下的text檔案,放到unix上,每一行尾巴都會多了^M,可以用 1. dos2unix a.txt來轉換 或者 2. vim a.txt 然後:%s/^M//g (^M的產生是用ctrl-v ctrl-M來產生的控制字元,不能直接輸入^M) gvim VI/VIM作弊小抄 Ha...: http://jserv./misc/vi-vim-cheat-sheet.png or mirror in: http://free./intro_to_linux/CML/vi-vim-cheat-sheet.png VIM參考書: http://opensource./intro_to_linux/part1/vim/vimbook-OPL.pdf vimbook錯誤更正(非官方) http://www./vim_errata.html 大家來學Vim by 李果正 Edward G.J. Lee http://edt1023./ # vim in M$ Windows http://www./download.php#pc # CYGWIN http://www. 1. vim list.txt ------------ abc acd kgt 123 kkk 345 abc kkk ------------ gg=G可以讓vim自動幫你縮排 sort list.txt (cat list | sort) sort -r list.txt (cat list | sort -r) uniq list.txt (cat list | uniq) uniq -d list.txt (cat list | uniq) sort list.txt | uniq -d 只顯示重複的 wc list.txt wc -w list.txt 2. grep root /etc/passwd grep "^root" /etc/passwd grep -q "^root" /etc/passwd echo $? grep "^root" /etc/passwd RC=$? ls /tmp/kkk echo $RC 第11堂 (2006/12/26) 1. awk -F" " ‘{print $1, $3}‘ lists.txt 注意print那個參數是用單引號 awk -F" " "{print \$1, \$3}" lists.txt 若用雙引號要加上awk -F‘:‘ ‘{print $6, $7}‘ /etc/passwd awk -F‘:‘ ‘/^root/ {print $6, $7}‘ /etc/passwd ps aux | awk ‘$4 > 1 {print $2}‘ ps aux | awk -F" " ‘$4 > 1 {print $2" "$4" "$11}‘ 2. find /etc -type d -print find /etc -name "*usb*" -print find /etc -name "*usb*" -type f -print find /etc -name "*usb*" -type d -exec ls -alFd {} \; find $HOME/ -mtime +3 -exec rm {} \; 3. head -n 4 /etc/passwd head -n -5 /etc/passwd 印出/etc/passwd到倒數第5行為止 tail -n 3 /etc/passwd tail -n +2 /etc/passwd 印出/etc/passwd,從第二行開始 4. sed -e "s/abc/xyz/g" list.txt sed -e "s/abc/xyz/g" -e "s/kkk/ooo/g" list.txt sed -iorg -e "s/abc/xyz/g" -e "s/kkk/ooo/g" list.txt 直接改檔案list.txt,原來的檔案會備份為list.txtorg 舊版的sed沒有-i功能,無法直接改檔案,可以改用perl perl -p -iorg -e "s/abc/xyz/g" list.txt 直接改檔案list.txt,原來的檔案會備份為list.txtorg awk, head, tail, sed等這一類的工具程式都可以搭配pipe (|) 使用,例如: echo abcKKK | sed -e "s/abc/xyz/g" 5. xargs: ps aux | awk ‘$4 > 9 {print $2}‘ | xargs kill 6. gzip list.txt gunzip list.txt.gz mv list.txt.gz lz file lz mv lz list.txt.gz zip txt.zip list.txt unzip txt.zip dd if=/dev/urandom of=dd.random bs=1M count=50 用亂數產生一個50MB的檔案 gzip dd.ramdom dd if=/dev/urandom of=dd.zero bs=1M count=50 產生一個50MB的檔案,內容全部填0 gzip dd.zero tar -cvf txt.tar *.txt gzip txt.tar tar -cvzf txt.tgz *.txt tar -tvzf txt.tgz tar -xvzf txt.tgz unzip -l txt.zip ------------- bzip2 list.txt bunzip2 list.txt.bz2 tar cvjf list.tar.bz2 *.txt tar tvjf list.tar.bz2 tar xvjf list.tar.bz2 --- 備份etc su - 變成root tar cvzf etc.tgz /etc du -hs /etc/ 可以看原來/etc/目錄的大小 第12堂 (2007/01/02) 1. Shell Script: export LC_ALL=C date +%m date +%d man date date +%D TODAY=`date +%D` echo $TODAY echo "Today is $TODAY" TODAY=`/bin/date +%D`; echo "Today is $TODAY" vim showtoday.sh --------------------- #!/bin/sh # Show today TODAY=`date ‘+%D %b‘` echo "Today is $TODAY" --------------------- ./showtoday.sh chmod a+x showtoday.sh --------------------- #!/bin/sh # Show today TODAY=`date ‘+%F‘` (或是 TODAY=`date ‘+%Y-%m-%d‘`) echo "Today is $TODAY" tar cvzf $TODAY-etc.tgz /etc --------------------- ./showtoday.sh TODAY=`date ‘+%F‘` 也可以寫成這樣TODAY="$(date ‘+%Y-%m-%d‘)" 如果要判斷執行結果 --------------------- #!/bin/sh # Show today TODAY=`date ‘+%F‘` (或是 TODAY=`date ‘+%Y-%m-%d‘`) tar czf $TODAY-etc.tgz /etc rc=$? if [ "$rc" -gt 0 ]; then echo "Something went wrong when backuped /etc/!" exit 1 fi exit 0 --------------------- ./showtoday.sh sh showtoday.sh source showtoday.sh . showtoday.sh vim subsh.sh ---------------------- #!/bin/sh TOM="hello" ---------------------- chmod 755 subsh.sh echo $TOM ./subsh.sh echo $TOM source subsh.sh echo $TOM 定時執行 crontab man 5 crontab crontab -l crontab -e ------------- 0 0 * * * $HOME/bin/job1 0-59/15 0 * * * $HOME/bin/daily.job 0 12 * * 6 $HOME/bin/showtoday.sh ------------- 要確認cron服務有在執行(ps -ef |grep cron),沒有的話,/etc/init.d/cron start 2. I/O重導向 File Descriptor(n) Name 一般縮寫 典型預設 0 standard input stdin keyboard 1 standard output stdout screen 2 standard error stderr screen > file < file >> file n> file n< file >&n duplicate the standard output to file descriptor n <&n duplicate the standard intput to file descriptor n &> file direct standard output and standart error to file Ex: 0. ls > file-list.txt cat file-list.txt ls abc.txt > file-list2.txt cat file-list2.txt ls abc.txt > file-list2.txt 2> file-err.txt cat file-list.txt cat file-list2.txt 1. ls -R /etc > file.lst 2> file.err ls -R /etc > file.lst 2>&1 ls -R /etc &> file.lst ls /etc >> file.lst 2. modprobe 8139too >/dev/null 2>/dev/null modprobe 8139too >/dev/null 2>&1 modprobe 8139too &>/dev/null 3. ls -alF *.sh | tee 2007.txt 3. Regular Expression 正規表示式 為何要用RE ? Ex: 在編輯檔案的時候,要將所有text1, text2, text3... text9取代成fig a. 在不支援RE的編輯器,需要作9次,慢慢改 b. 在支援RE的編輯器,只需一行就可以搞定。以vi為例: :%s/text[1-9]/fig/g 常見的RE字元: . * ? + ? ^ $ [ ] [^ ] | ( ) Ex: bag ^bag bag$ ^bag$ [Bb]ag "Bag", "bag" b[aeiou]g b[^aeiou]g [0-9] [a-z] [A-Z] [a-zA-Z0-9] b.g ^...$ ^\. ^\.[a-z][a-z] ^[^.] bugs* "bug", "bugs", "bugss"... [A-Z][A-Z]* [A-Z]+ [A-Z].* [A-Z]* [a-zA-Z] [0-9A-Za-z]+ [567] five|six|seven 80[23]?86 8086, 80286, or 80386 compan(y|ies) company or companies 注意:regular expression的字元和shell expression的字元不盡相同 Ref: http://www./Unix/Sh.html#uh-4 +-------------------------------------------------------------------------------+ | Table 1 | | Examples of filename expansion | +-------------------------------------------------------------------------------+ |Pattern Matches | |* Every file in the current directory | |? Files consisting of one character | |?? Files consisting of two characters | |??* Files consisting of two or more characters | |[abcdefg] Files consisting of a single letter from a to g. | |[gfedcba] Same as above | |[a-g] Same as above | |[a-cd-g] Same as above | |[a-zA-Z0-9] Files that consist of a single letter or number | |[!a-zA-Z0-9] Files that consist of a single character not a letter or number | |[a-zA-Z]* Files that start with a letter | |?[a-zA-Z]* Files whose second character matches a letter. | |*[0-9] Files that end with a number | |?[0-9] Two character filename that end with a number | |*.[0-9] Files that end with a dot and a number | +-------------------------------------------------------------------------------+ Ex: Regular expression: 1. vim re.txt ---------------------- text1, text2, text3, text4, text5,... text9 ttxy xyttk okokok bag bug bugs bag bagxxx beg beg big bog .big ...big --------------------- :%s/text[1-9]/fig/g :%s/./5/g :%s/^/ /g grep -E t? re.txt egrep t? re.txt grep -E t+ re.txt egrep t+ re.txt grep ^bag re.txt grep ‘ bag‘ re.txt grep ‘^bag$‘ re.txt grep [Bb]ag re.txt 2. sed -e "s/^bag$/kkk/g" re.txt 3. perl -pi -e "s/^bag$/kkk/g" re.txt 第13堂 (2007/01/09) 1. GNU/Linux 套件關係 http://palpatine./~shogun/GNULinuxupdatedw4.0.jpg http://techno./wp-content/_GNULinux.jpg or http://free./intro_to_linux/CML/GNULinuxupdatedw4.0.jpg http://free./intro_to_linux/CML/_GNULinux.jpg 2. Ubuntu網頁 http://www. Ubuntu, Kubuntu, edubuntu, xubuntu Ubuntu Edgy (6.10)光碟 http://opensource./ubuntu-cd/6.10/ubuntu-6.10-desktop-i386.iso Debian Sarge安裝 Sarge光碟位於 http://opensource./debian-cd/3.1_r4/i386/iso-cd/debian-31r4-i386-binary-1.iso 2. apt -> deb apt/yum/urpmi -> rpm sudo的設定與使用 3. ctrl-alt-F1 切換到console 1 sudo vim /etc/apt/sources.list 為了加快下載速度,使用近一點的repository: a. cd /etc/apt/; cp sources.list sources.list.orig b. 把所有的tw.archive.取代成free.: %s/tw.archive./free./g c. 把所有的security.取代成free.: %s/security./free./g d. 加上 universe multiverse deb http://free./ubuntu edgy main restricted universe multiverse deb http://free./ubuntu edgy-updates main restricted universe multiverse deb http://free./ubuntu edgy-security main restricted universe multiverse ps. 此4個分類可參考這裡:http://www./ubuntu/components main: The main distribution component contains applications that are free software, can freely be redistributed and are fully supported by the Ubuntu team restricted: The restricted component is reserved for software that is very commonly used, and which is supported by the Ubuntu team even though it is not available under a completely free licence. universe: The universe component is a snapshot of the free, open source, and Linux world. multiverse: The "multiverse" component contains software that is "not free", which means the licensing requirements of this software do not meet the Ubuntu "main" Component Licence Policy. ps. 如何改root密碼? a. sudo su - root 此時輸入使用者的密碼 就可以轉換成root身份 b. 然後執行passwd來改密碼 或者直接 sudo passwd root來密碼 4. 系統更新 sudo apt-get update sudo apt-get upgrade 5. sudo apt-get install vlc vlc http://free./audio_video/2005-05-27-RMS_NCHC_TW.mpeg4 如何尋找套件: apt-cache search ,例如 apt-cache search mpeg4 也可以利用aptitude來作: sudo aptitude (使用+來增加套件,使用g來安裝) 6. 安裝經典遊戲 sudo apt-get install supertux frozen-bubble planetpenguin-racer or sudo aptitude -> 執行遊戲 a. supertux b. frozen-bubble c. ppracer 7. 安裝其他的輸入法,推薦gcin a. sudo apt-get update sudo apt-get install gcin b. sudo im-switch -z zh_TW -s gcin 8. 重新啟動X windows ctrl-alt-F1 切換到console 1, 然後/etc/init.d/gdm restart 或者 若要暴力方式重新啟動X-window: ctrl-alt-backspace 第14堂 (2007/01/16) 1. cygwin 介紹 (http://www.) 2. DRBL (企鵝龍) 介紹 (http://drbl., http://drbl.) 3. Linux上網路相關指令介紹 ref: Debian 參考手冊 第 10 章 - 網路設定 http://www./doc/manuals/reference/ch-gateway.zh-tw.html 3.0 ipcalc 192.168.1.0/255.255.255.248 ipcalc 140.110.1.1/255.255.255.0 3.1 ifconfig ifconfig eth0 找出網路卡eth0的MAC address: ifconfig eth0 | awk ‘/HWaddr/ {print $5}‘ 找出eth0的IP address: ifconfig eth0 | awk -F":" ‘/inet addr/ {print $2}‘ | awk ‘{print $1}‘ ifconfig eth0 | grep -o ‘inet addr:[0-9.]*‘ | cut -d":" -f2 指定eth1的IP address為192.168.100.254 ifconfig eth0 192.168.100.254 如果找不到ifconfig: which ifconfig whereis ifconfig printenv PATH /sbin/ifconfig 3.2 看routing table route route -n 3.3 ping ifconfig eth0 ping 140.110.25.1 ping 140.110.1.1 ping -c 10 140.110.25.1 ping os. 3.4 traceeroute traceroute 140.110.25.1 traceroute 140.110.1.1 traceroute os. traceroute -n os. 3.5 ifconfig eth0 down ifconfig eth0 up 手動加上預設路由 route add default gw 192.168.62.254 eth1 強迫自動取得IP address dhclient 或是 pump 3.6 name server設定: /etc/resolv.conf search nameserver 140.110.60.1 nameserver 140.110.16.1 nameserver 140.110.4.1 3.7. 寫死在設定檔 vim /etc/network/interfaces ... auto eth1 iface inet static address 192.168.62.11 netmask 255.255.255.0 gateway 192.168.62.254 然後執行/etc/init.d/networking restart重新帶起網路卡設定 3.8. ADSL播號程式設定 pppoeconf 第15堂 (2007/01/23) 1. apt-get update apt-get install bison ls /var/cache/apt/archives apt-get remove m4 cd /var/cache/apt/archives dpkg -i bison*.deb dpkg -i m4*.deb 2. dpkg -l bison dpkg -L bison which dhclient dpkg -S /sbin/dhclient dpkg -L dhcp3-client dpkg --purge bison sudo apt-get install bison sudo dpkg --purge m4 sudo apt-get remove m4 3. ctrl-alt-F1換到console 1 export LC_ALL=C sudo dpkg-reconfigure xserver-xorg sudo /etc/init.d/gdm restart 4. apt-cache search dhcp apt-cache show dhcp3-client 5. man 5 contrab export EDITOR=vim crontab -e ------------- MAILTO=steven 0 0 * * * apt-get update >/dev/null; apt-get -y upgrade >/dev/null ------------- PS. 如何保留某個package不被自動升級: a. sudo su - b. echo "bison hold" | dpkg --set-selections c. 查看狀態 dpkg --get-selections bison 若要忽略hold的旗標的話,可以用apt-get --ignore-hold -y upgrade another sol : vim /etc/cron.daily/updatedebian ---------- apt-get update >/dev/null apt-get -y upgrade >/dev/null ---------- chmod 755 /etc/cron.daily/updatedebian 5. ps -ef |grep cron runlevel ls -alF /etc/rc2.d/*cron 6. cd /etc/rc2.d ln -fs ../cron S89cron or update-rc.d cron defaults To remove update-rc.d -f cron remove 完整一點的增加/移除某個service 增加:update-rc.d exim4 defaults update-rc.d samba start 20 2 3 4 5 . stop 19 0 1 6 . 移除:update-rc.d -f exim4 remove man update-rc.d for more details. In RedHat-like distribution, use "chkconfig" 7. grub http://www./software/grub/grub.html http://www./software/grub/manual/grub.html grub的設定檔: /boot/grub/menu.lst 只顯示有用的設定,不看註解: grep "^[^#]" /boot/grub/menu.lst a. 把hiddenmenu註解掉,然後重新開機 b. 可以移除kernel後面的那兩個參數quiet splash,這樣下次開機的時候,可以詳細顯示開機過程。 8. root密碼忘了怎麼辦? 若是grub當boot manager的話, a. 重新開機 b. 出現grub選單的時候,按e c. 找到kernel那一行,再按e d. 在kernel最後面,加上"single" e. 按b來開機 f. 開機後,改/etc/shadow,把root那行改成類似這樣: root::13273:0:99999:7::: 也就是把第一個和第二個:中間的字全部拿掉 ps. 進入single user mode如果要問密碼的話,要在/etc/inittab中有這一行(Debian預設有,但是RedHat/Fedora等沒有): ------------- ~~:S:wait:/sbin/sulogin ------------- 所以如果root沒有設定密碼的話,single user mode就可以直接進入命令列。 9. kernel版本號碼 linux-A.B.C.D http://en./wiki/Linux_kernel#Versions http://opensource./kernel/linux/kernel/v2.6/linux-2.6.19.2.tar.gz 第16堂 (2007/01/30) 0. 編譯kernel wget http://opensource./kernel/linux/kernel/v2.6/linux-2.6.19.2.tar.gz a. tar xvzf linux-2.6.19.2.tar.gz b. cd linux-2.6.19.2 c. apt-get install gcc make libncurses5-dev d. make menuconfig e. make f. make install; make modules_install (files are in /boot/ and /lib/modules/) g. lsmod | less h. modinfo e100 i. rmmod e100 j. modprobe reiserfs 參考文件: 非官方 Ubuntu 6.10 (Edgy Eft) 使用者手冊 http://wiki./index.php/Ubuntu6.10Guidetw A. 1. 安裝多個核心與開機管理程式grub的設定 a. uname uname -r uname -m dpkg --get-selections | grep -i linux-image b. sudo vim /etc/apt/sources.list %s/tw.archives./os./g %s/security./os./g sudo apt-get update sudo apt-get install linux-image | less c. sudo apt-get install linux-image-2.6.17-10-386 or sudo apt-get install linux-image-386 d. dpkg -L linux-image-2.6.17-10-386 |less e. /boot, /usr/share/doc/linux-image-2.6.17-10-386, /lib/modules/2.6.17-10-386 f. zless /usr/share/doc/linux-image-2.6.17-10-386/Changes.gz g. sudo vim /boot/grub/menu.lst h. LC_ALL=C man bootparam B. 上課使用Clonezill複製之後的作業系統環境,網路是自動取得IP,練習設定固定IP. 1. lspci ifconfig -a Debian/Ubuntu安裝後手動設定此次網路 ## ifconfig eth3 140.110.25.x netmask 255.255.255.128 route add default gw 140.110.25.126 eth3 vim /etc/resolv.conf ================================= nameserver 140.110.60.1 nameserver 140.110.16.1 search ================================= 2. Debian/Ubuntu中將資料寫在硬碟以便每次開機自動載入 Debian/Ubuntu的設定檔在/etc/network/interfaces : vim /etc/network/interfaces ================================= auto eth3 iface eth3 inet static address 140.110.25.x netmask 255.255.255.128 broadcast 140.110.25.127 gateway 140.110.25.126 ================================= vi /etc/resolv.conf ================================= nameserver 140.110.60.1 nameserver 140.110.16.1 search ================================= vi /etc/hosts ================================= 140.110.25.x cpc0xx. cpc0xx ================================= 重新啟動網路服務(會讀取/etc/network/interfaces來設定網路) /etc/init.d/networking restart (最好先把之前一次使用的IP清掉: ifconfig eth3 down,並且把dhclient的服務砍了: pkill -9 dhclient再來restart networking) PS. RedHat/Fedora/Mandrake的設定檔在/etc/sysconfig/network-scripts/ifcfg-eth0 vim /etc/sysconfig/network-scripts/ifcfg-eth0 ================================= DEVICE=eth0 BOOTPROTO=static BROADCAST=140.110.25.255 IPADDR=140.110.25.x NETMASK=255.255.255.0 NETWORK=140.110.25.x ONBOOT=yes ================================= vim /etc/sysconfig/network ================================= NETWORKING=yes HOSTNAME=XXXX DOMAINNAME= GATEWAY=140.110.25.x ================================= 重新啟動網路服務(會讀取/etc/sysconfig/network-scripts/ifcfg-eth0與/etc/sysconfig/network來設定網路) /etc/init.d/network restart ----- C. Adobe最近release flash player 9.0 因為它會和ubuntu 6.10中的gcin相衝突(註debian中的xcin也會相衝),所以要做以下步驟: (1). 如果你的firefox已經安裝的flash player 9.0,然後一開起來馬上就crash,那請先移除flash player的檔案 rm -f ~/.mozilla/plugins/*flash*.so (2). 編輯/etc/apt/sources.lst,加入以下兩行 ---------------------------- deb http://free./ubuntu edgy-backports main restricted universe multiverse deb http://www. unstable main ---------------------------- (3). apt-get update; apt-get install gcin flashplugin-nonfree (4). 登出再登入,或者乾脆重新開機 D. 安裝apache 1. Apache2, apt-get install apache2 /etc/init.d/apache2 restart /etc/apt/sources.list加上universe apt-get install nvu 用nvu寫一個test.html檔,然後用root複製到/var/www下 (cp ~/test.html /var/www) 開啟firefox, 輸入http://localhost/test.html 1. apache2文件 http://httpd./docs/2.0/ /etc/apache2/apache2.conf中文參考文件: http://www./vbb/thread/30/604/ 如何透過apache對某個網頁設定帳號密碼? http://httpd./docs/2.0/howto/htaccess.html 重新載入設定檔可以用reload而不是restart,避免stop再start期間的服務中斷。 /etc/init.d/apache2 reload 2. 安裝php & mysql apt-get install php4 mysql-server touch /var/www/a.php /etc/init.d/apache2 restart 開啟firefox/mozilla, 輸入http://localhost/a.php 3. wiki, blog等. wikipedia -> http://www. Blog軟體: http:/// http://www./en/features.html ... 第17堂 (2007/02/06) 0. ftp (A) ftp client apt-get install gftp 然後執行gftp 文字模式ftp client: apt-get install lftp (B) ftp server 可以安裝的ftp server: wu-ftpd or proftpd a. 安裝 apt-get install wu-ftpd 最好選擇standalone模式,如果沒有問的話,可以執行 dpkg-reconfigure wu-ftpd 來選擇為standalone模式 client program: apt-get install gftp b. 設定檔在/etc/wu-ftpd ACL: /etc/wu-ftpd/ftpaccess class all real,guest,anonymous *. -> 定義一個名為 all 的組,而該組的成員有 real、guest 與 anonymous,而且只允許來自於 網域的使用者以上述身份登入使用。 語法:limit <群組名稱> <人數> <時間> <訊息檔案名稱> 預設:limit all 10 Any /etc/msgs/msg.dead 設定某一時間內允許連線的最大上限人數。 c. 要開啟anonymous 方法1. 要先加一個特別的使用者"ftp" adduser --home /home/ftp ftp 然後改/etc/wu-ftpd/ftpaccess中的 passwd-check 語法:passwd-check <(none/trivial/rfc822)> <(enforce/warn)> 預設:無 設定當使用者用 anonymous 登入時所要輸入的 password 的格式, 選項的說明如下: * none:表示不做密碼驗證。 * trival:表示只要輸入密碼中含有 @ 便可登入。 * rfc822:表示密碼中一定要照 rfc822 所規定的 E-mail 位址的格式。 * enforce:表示當所輸入的密碼不符合格式即無法登入。 * warn:表示密碼不正確時只會出現警告的字樣,但仍可登入。 再重新啟動wu-ftpd以便設定生效: /etc/init.d/wu-ftpd restart 方法2. 使用dpkg-reconfigure wu-ftpd重新設定,把anonymous開啟 再重新啟動wu-ftpd以便設定生效: /etc/init.d/wu-ftpd restart d. ftpcount 可要用來統計目前連線數目,也就是目前各個群組的上線人數,以及各個群組的連線上限人數 e. ftpwho 可用來察看目前的使用者與連線的情形 1. samba a. apt-get install samba smbclient smbfs b. less /etc/samba/smb.conf Samba a. 啟動samba /etc/init.d/samba start b. 列出 Samba Server (IP: 192.168.166.1) 已分享了那些資源: smbclient -L //192.168.166.1 c. 假設主機名稱為 chanel,它所開放出來的資源服務名叫 share,則可以由以下指令來連到它所分享出來得資源: smbclient "//chanel/share" d. 建立 Samba 使用者的帳號 將末加密的 /etc/passwd 檔轉換為有加密碼的 smbpasswd 檔: cat /etc/passwd | mksmbpasswd > /etc/samba/smbpasswd 更改使用者的 Samba 密碼: smbpasswd <使用者名稱> e. 增加samba user 若欲新增 Samba 新使用者,必須先於 Linux 系統中新增使用者,才能於 Samba 中新增使用者 adduser --disabled-login --no-create-home --shell /bin/false test 新增 Samba 使用者: smbpasswd -a test 測試: smbclient -U test -L //192.168.166.1 f. 開放某個目錄 (/home/samba) mkdir /home/samba chown -R test /home/samba /etc/samba/smb.conf中加一段 ----------------------------------------- [sambashare] comment = Samba Share path = /home/samba username = test read only = No create mask = 0700 hosts allow = 192.168.166., 168.95.1. ----------------------------------------- 測試 testparm 重新啟動samba以便讓設定生效 /etc/init.d/samba restart 連線 smbclient -U test //192.168.166.1/sambashare Password: Domain=[SARGE] OS=[Unix] Server=[Samba 3.0.10-Debian] smb: \> dir . D 0 Wed Jan 5 15:47:47 2005 .. D 0 Wed Jan 5 15:47:42 2005 test.txt 0 Wed Jan 5 15:47:47 2005 45246 blocks of size 32768. 44220 blocks available g. 掛載成某個目錄 mount -t smbfs //192.168.166.1/sambashare -o iocharset=950,username=test /mnt/smb iocharset=950支援中文Big5編碼 如果密碼要寫上去(不建議) mount -t smbfs //192.168.166.1/sambashare -o iocharset=950,username=test%passwd /mnt/smb h. 如果是Linux當client, 掛載windows的server (192.168.166.88),使用者winuser屬於某個group (mis) mount -t smbfs //192.168.166.88/winshare -o iocharset=950,username=winuser/mis%passwd /mnt/smb 2. ssh server apt-get install ssh 連接到遠端機器 ssh fennie@192.168.63.2 執行遠端的指令ls: ssh fennie@192.168.63.2 ls 複製檔案到遠端: scp give_fennie.txt fennie@192.168.63.2:~/ 複製遠端檔案到近端工作目錄 scp fennie@192.168.63.2:~/kkk.txt . 複製目錄的話,加上"-r", 例如: scp -r fennie@192.168.63.2:~/ttt . 也可以用sshfs來掛載: apt-get install sshfs 把要能使用sshfs的使用者加入fuse group: sudo adduser steven fuse 然後登出再登入 把本機的/dev/fuse改成fuse群組可以寫的 chgrp fuse /dev/fuse 建一個掛載點: mkdir sshmnt sshfs steven@192.168.63.2:/home/steven sshmnt 這樣就可以把遠端的/home/steven 掛載成本機的sshmnt. 3. mail server postfix, sendmail, qmail, exim... 以postfix為例 a. apt-get install postfix b. 設定檔 /etc/postfix/main.cf... c. 看或是修改postfix設定 postconf 例如修改每封信的可容許size ----------------------------------------------------- postconf | grep size bounce_size_limit = 50000 header_size_limit = 102400 message_size_limit = 10240000 <----- this is the one you want 可以修改main.cf或是直接執行 postconf -e "message_size_limit=" ----------------------------------------------------- d. 修改main.cf之後,可以重新啟動或是reload postfix /etc/init.d/postfix reload e. 所有參數可以在"man 5 postconf"中查到 第18堂 (2007/02/13) 0. 安裝DRBL & Clonezilla環境 http://drbl. Clonezilla live PS. 1. 若需要安裝額外的顯示卡驅動程式 a. Nvidia 顯示卡 a.1 "uname -r" 找到目前使用的kernel版本(例如2.6.8-2) a.2 "apt-get install kernel-headers"列出可安裝的kernel headers a.3 比較a.1與a.2,找出符合的(例如kernel-headers-2.6.8-2),然後例如: apt-get install kernel-headers-2.6.8-2 (如果要一個指令做完a.1-a.3,可以這樣執行:apt-get install kernel-headers-`uname -r`) a.4 到http://www./linux網頁下載driver,以32位元PC而言,可以下載 標示為"Linux IA32"的驅動程式,例如Linux IA32下的1.0-7667 http://www./object/linux_display_ia32_1.0-7667.html 然後依照那個網址所列的三個步驟執行即可。也就是 a.4.1 讀license宣告 a.4.2.執行"wget http://download./XFree86/Linux-x86/1.0-7667/NVIDIA-Linux-x86-1.0-7667-pkg1.run"來下載檔案 a.4.3 執行"sh NVIDIA-Linux-x86-1.0-7667-pkg1.run"來編譯顯示卡驅動程式 b. ATI顯示卡 b.1 同a.1 b.2 同a.2 b.3 同a.3 b.4 以RADEON卡為例,到網頁 http://www./ 的"DRIVERS & SOFTWARE"下載驅動程式,選擇"Linux Drivers and Software": https://support./ics/support/KBAnswer.asp?questionID=3380 以32位元PC而言,可以下載標示為"Linux x86"的驅動程式,以本例而言,選擇 "RADEON 8500 Series and higher" https://support./ics/support/KBList.asp?folderID=356 b.4.1 執行"wget http://www2./drivers/linux/ati-driver-installer-8.14.13.run" b.4.2 執行"sh ati-driver-installer-8.14.13.run"來編譯顯示卡驅動程式 2. 要安裝最新版本的gcin a. vim /etc/apt/sources.list 加上 deb http://www. unstable main 然後 sudo apt-get update sudo apt-get install gcin 其他: 提問的智慧: http://phorum./viewtopic.php?t=96 柏青哥的 SuSE Linux http://paching.myweb./
from:  http://opensource./intro_to_linux/CML/command_history_list.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多