command_history_list

来源:百度文库 编辑:神马文学网 时间:2024/05/23 21:21:24
第1堂 (2006/10/03):0. Live CD下載網址:http://ossacc.moe.edu.tw/center/LiveCD.iso上課所發的是OSSACC Ez-Go推廣光碟 http://download.ossacc.org/ezgo3.isoOSSACC Ubuntu 6.06為基礎製作Live-CD http://download.ossacc.org/ubuntu6.06-tw.iso2006/10/10 國慶日放假一天2006/10/17 老師請假第2堂 (2006/10/24)0. 強迫結束X-windowctrl-alt-backspace 三個鍵一起按1. 改密碼單機安裝: passwd集中管理(YP)環境: yppasswd2. 切換virtual console與x-windowsctrl-alt F1ctrl-alt F2ctrl-alt F3ctrl-alt F4ctrl-alt F5ctrl-alt F6ctrl-alt F73. touch a.tarlsls -l4. which ls5. alias ls6. alias lls=‘ls -l‘lls7. whoami8. unalias9. 應用程式-> 附屬應用程式 ->文字編輯器 ->檔案 ->開啟位置~/.bashrc或者 gedit ~/.bashrc然後該檔案中最後面加上-------------alias lls=‘ls -l‘-------------然後登出再登入alias第3堂 (2006/10/31)0. screen的使用ctrl-a c createctrl-a n nextctrl-a p previousctrl-a d detachscreen -lsscreen -r xxxxctrl-a " 切換不同的畫面1. 查詢指令man screen搜尋關鍵字 /$keyword結束 q2. ls -alF /etc/passwd 看檔案屬性cat /etc/passwd 看檔案內容rm /etc/passwd 移除檔案touch t.txt 產生t.txt檔案rm t.txtrm -f t.txt 強迫移除t.txt,不逐一確認ls -d /etc/p*rm -i *alias rm="rm -i"rm -f t.txt3. mkdir tmplsls -Rcd tmppwdtouch a.txt b.txtcd ..rmdir tmprm -rf tmp4. /sbin/route -n 查詢gateway serverssh lnx0xy@192.168.64.254 登入主機192.168.64.254w 看主機192.168.64.254上有誰登入exit 退出一般退出程式的作法quitexitqctrl-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.254cat /etc/passwdmore /etc/passwdless /etc/passwdspace 下一頁b 上一頁q quit 結束/XX 搜尋XXn 往下搜尋N 往上搜尋-N 顯示/關閉行號g 到檔首G 到檔尾文字模式下,用shift-pageup來看上一頁的螢幕輸出如果更多畫面,shift-pageup不夠,可以用:ls -l /etc | less0. df 看磁碟報表df -kdf -hdf -m1. 掛載先把自動掛載的光碟卸載 umount /dev/hdcmount /dev/hdc /mntumount /dev/hdcmkdir /media/dvdmount /dev/hdc /media/dvd透過mount,可以把系統中任何一個目錄,掛載到某個裝置(硬碟)2. gedit abcdefghsymbolic link / soft link 軟連結, 本尊 <-> 分身ln -fs abcdefgh xmkdir tmpcd tmpcp /boot/vmlinuz-2.6.8-3-386 .du -hs 顯示佔用1.1MBln -fs vmlinuz-2.6.8-3-386 vmdu -hs 還是顯示佔用1.1MB (事實上是多了一點點佔用空間,本例是19bytes)3. gedit 123硬連結 (hard link),都是本尊ln -f 123 321rm -f 123ls -lFrm -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/aliasunalias lsls -F1. touch 123ln 123 321 (產生hardlink)gedit 123編寫完之後,存檔,跳出gedit。結果發現321的內容怎麼還是空的?原因:使用gedit編寫hardlink檔案的時候,因為gedit會先把原來的檔案備份(xxx~),然後產生新的檔案,這時產生新的檔案就不會是原來的hardlink本尊檔案。ls -li可以根據inode來判斷不同檔名的檔案是否實際為同一個檔案2.chown lnx001 123su 換成root之後,才能更換檔案的擁有者chown lnx001 123cd /tmp/touch 123su 換成rootchgrp linux 123chown lnx020.users 123chown lnx020:users 123mkdir testtouch test/456chown lnx020 testchown -R lnx020.users test3. chmod u r fileg + wo - xachmod u+x 321chmod u-x 321chmod u+x,g+x,o+x 321chmod a+x 321chmod u+rwx,g-rxw,o-rxw 321chmod 755 321chmod 700 3217 rwx6 rw-5 r-x4 r--1 --x常見的: 755, 700, 644, 6004.file /etc/init.d/gdmfile /bin/lsfile 3215. ....testcd ..cd ../../cd /home/steven/tmp/../cd ~lnx019 直接換到使用者lnx019的家目錄cp /etc/hosts .cd /etc/dhcp3cd ~/test6. less /proc/cpuinfogrep "cpu MHz" /proc/cpuinfo > cpu.logless /proc/meminfodir /dev/cdromless /proc/uptime7. dmesgdmesg | less插上隨身碟dmesg | taildmesg | tail -n 5dmesg | headdmesg | head -n 5dmesg | head -n 3 | tail -n 1 只顯示第三列cut -d":" -f6 /etc/passwd 只顯示第六欄print line 3, 2nd worddmesg | head -n 3 | tail -n 1 | cut -d" " -f 2grep "MemTotal" /proc/meminfo | cut -d":" -f2cat /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 + keywordd. 到指令列的列首: ctrl-a列尾: ctrl-e2. printenv 印出環境變數echo $USER 印出變數USERecho 123456abcecho ‘123456abc‘echo "123456abc"echo ‘$USER‘echo "$USER"b=`pwd`echo $bdate +%Fman datefilename=`date +%F`echo "$filename.tgz"echo "ab\"" \是跳脫符號echo \$ab2. psps -aux PID: process IDps -auxwps -auxwwww w愈多,顯示結果越詳細ps -ef 可以看PPID (parents ID)pstree ps的族譜3. gnome-terminalkonsolerxvtrxvt &fgctrl-z 暫時中斷bgfgctrl-c 終止程式3. rxvtctrl-zjobsbg 1rxvt &jobsbgpskill $PIDkill -9 $PIDkill -KILL $PIDkillall -9 rxvtpkill -9 rxvttop4. 加路徑gedit ~/.bashrc (或是~/.bash_profile, ~/.profile根據系統而異)加上alias cd..="cd .."source ~/.bashrc馬上就可以生效export PATH=$PATH:/sbin5. runlevel/sbin/runlevelinit 3cat /etc/inittabinit 56. syncsync;sync;syncshutdown -h -t 5 now "shutdown now..."第8堂 (2006/12/5)1. less /etc/fstab# file system mount point type options dump passfdisk -l /dev/hda 察看hda的分割表拿到一個新的硬碟,要能使用a. 插上主機,接上排線,假設是/dev/hdbb. 開機後,先用fdisk /dev/hdb來產生分割區/dev/hdb1c. 然後用格式化出檔案系統: mkfs.ext3 /dev/hdb1d. 建立掛載點/worke. 然後改/etc/fstab,加上一行/dev/hdb1 /work ext3 defaults 0 0f. 執行mount -a或是重新開機。2. cd /etcgrep dev *ls -alF | grep apachegrep -ir dev *產生一個檔案test,內容-------------abcababcde-------------grep ab testgrep "^ab" test 抓取行首馬上接abgrep "b" test 抓取bgrep "b$" test 抓取b然後是行尾grep -o "b" test 只顯示出符合的地方grep -v "b" test 相反意思wc -l 算出幾行wc -m 算出幾個字(word)grep -w "ab" test | wc -lgrep -w "ab" test | wc -w 算出test中,共有幾個ab3. man lsman grepman crontabman 5 crontabman passwdman 5 passwd4. info lsinfo info"p" previous page"n" next pagel^L5. cd /usr/share/doc要找bash,6. vimvi test.txtesc 兩次,可以切換到控制模式i 在游標所在的位置開始編輯:w test:q:wq:q!hjkla 在游標所在的下一個字元位置開始編輯:set vb 關閉鈴聲:set novb 開啟鈴聲^ 行首$ 行尾到某一行1G22GG 到檔尾cp /etc/init.d/apmd .vim apmd:set nu 設定行號:set nonu:set ru 設定游標尺:set noru:syntax on:syntax offJ 把下一行接到行尾u undo,回復上一個指令ctrl-r redo,重做上一個指令尋找/change 搜尋changen 往下搜尋N 往上搜尋:set ic 忽略大小寫的差異:set noic:set hlsearch 搜尋結果反白/彩色顯示:set nohlsearch:helpCtrl-]Ctrl-O第9堂 (2006/12/12) 福林社區電腦教室,影像融入教學第10堂 (2006/12/19)0. vim刪除相關x 刪除一個字元dw 刪除worddd 刪除一整行d$ 刪除到行尾d^ 刪除到行首5dd 刪除5行cp /etc/passwd .複製相關5Y 把游標所在(含)以下的5行存到暫存區p 貼到游標所在的下一行P 貼到游標所在的上一行ctrl-vctrl-v : y 存反白的所有行ctrl-v Y (ctrl-v y) 只存反白的區塊視窗相關ctrl-w sctrl-w vctrl-w [h,j,k,l]:e test.txt:w test2.txt 另存新檔test2.txt:wq:qctrl-r 重做(redo)上一個指令export SHELL=/bin/bash 避免vim找不到SHELL變數而啟動的時候一堆警告。比較兩個檔案:vimdiff a.txt b.txtvimdiff -o a.txt b.txtvim ~/.vimrc-------------set hlsearchset icset rulersyntax on-------------Debian系統的vimrc在/etc/vim/vimrccp /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)gvimVI/VIM作弊小抄 Ha...:http://jserv.sayya.org/misc/vi-vim-cheat-sheet.pngor mirror in:http://free.nchc.org.tw/intro_to_linux/CML/vi-vim-cheat-sheet.pngVIM參考書:http://opensource.nchc.org.tw/intro_to_linux/part1/vim/vimbook-OPL.pdfvimbook錯誤更正(非官方)http://www.moolenaar.net/vim_errata.html大家來學Vim by 李果正 Edward G.J. Leehttp://edt1023.sayya.org/# vim in M$ Windowshttp://www.vim.org/download.php#pc# CYGWINhttp://www.cygwin.com1. vim list.txt------------abcacdkgt 123kkk 345abckkk------------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.txtwc -w list.txt2. grep root /etc/passwdgrep "^root" /etc/passwdgrep -q "^root" /etc/passwdecho $?grep "^root" /etc/passwdRC=$?ls /tmp/kkkecho $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/passwdawk -F‘:‘ ‘/^root/ {print $6, $7}‘ /etc/passwdps aux | awk ‘$4 > 1 {print $2}‘ps aux | awk -F" " ‘$4 > 1 {print $2" "$4" "$11}‘2. find /etc -type d -printfind /etc -name "*usb*" -printfind /etc -name "*usb*" -type f -printfind /etc -name "*usb*" -type d -exec ls -alFd {} \;find $HOME/ -mtime +3 -exec rm {} \;3. head -n 4 /etc/passwdhead -n -5 /etc/passwd 印出/etc/passwd到倒數第5行為止tail -n 3 /etc/passwdtail -n +2 /etc/passwd 印出/etc/passwd,從第二行開始4. sed -e "s/abc/xyz/g" list.txtsed -e "s/abc/xyz/g" -e "s/kkk/ooo/g" list.txtsed -iorg -e "s/abc/xyz/g" -e "s/kkk/ooo/g" list.txt 直接改檔案list.txt,原來的檔案會備份為list.txtorg舊版的sed沒有-i功能,無法直接改檔案,可以改用perlperl -p -iorg -e "s/abc/xyz/g" list.txt 直接改檔案list.txt,原來的檔案會備份為list.txtorgawk, head, tail, sed等這一類的工具程式都可以搭配pipe (|) 使用,例如:echo abcKKK | sed -e "s/abc/xyz/g"5. xargs:ps aux | awk ‘$4 > 9 {print $2}‘ | xargs kill6. gzip list.txtgunzip list.txt.gzmv list.txt.gz lzfile lzmv lz list.txt.gzzip txt.zip list.txtunzip txt.zipdd if=/dev/urandom of=dd.random bs=1M count=50 用亂數產生一個50MB的檔案gzip dd.ramdomdd if=/dev/urandom of=dd.zero bs=1M count=50 產生一個50MB的檔案,內容全部填0gzip dd.zerotar -cvf txt.tar *.txtgzip txt.tartar -cvzf txt.tgz *.txttar -tvzf txt.tgztar -xvzf txt.tgzunzip -l txt.zip-------------bzip2 list.txtbunzip2 list.txt.bz2tar cvjf list.tar.bz2 *.txttar tvjf list.tar.bz2tar xvjf list.tar.bz2---備份etcsu - 變成roottar cvzf etc.tgz /etcdu -hs /etc/ 可以看原來/etc/目錄的大小第12堂 (2007/01/02)1. Shell Script:export LC_ALL=Cdate +%mdate +%dman datedate +%DTODAY=`date +%D`echo $TODAYecho "Today is $TODAY"TODAY=`/bin/date +%D`; echo "Today is $TODAY"vim showtoday.sh---------------------#!/bin/sh# Show todayTODAY=`date ‘+%D %b‘`echo "Today is $TODAY"---------------------./showtoday.shchmod a+x showtoday.sh---------------------#!/bin/sh# Show todayTODAY=`date ‘+%F‘` (或是 TODAY=`date ‘+%Y-%m-%d‘`)echo "Today is $TODAY"tar cvzf $TODAY-etc.tgz /etc---------------------./showtoday.shTODAY=`date ‘+%F‘` 也可以寫成這樣TODAY="$(date ‘+%Y-%m-%d‘)"如果要判斷執行結果---------------------#!/bin/sh# Show todayTODAY=`date ‘+%F‘` (或是 TODAY=`date ‘+%Y-%m-%d‘`)tar czf $TODAY-etc.tgz /etcrc=$?if [ "$rc" -gt 0 ]; thenecho "Something went wrong when backuped /etc/!"exit 1fiexit 0---------------------./showtoday.shsh showtoday.shsource showtoday.sh. showtoday.shvim subsh.sh----------------------#!/bin/shTOM="hello"----------------------chmod 755 subsh.shecho $TOM./subsh.shecho $TOMsource subsh.shecho $TOM定時執行crontabman 5 crontabcrontab -lcrontab -e-------------0 0 * * * $HOME/bin/job10-59/15 0 * * * $HOME/bin/daily.job0 12 * * 6 $HOME/bin/showtoday.sh-------------要確認cron服務有在執行(ps -ef |grep cron),沒有的話,/etc/init.d/cron start2. I/O重導向File Descriptor(n) Name 一般縮寫 典型預設0 standard input stdin keyboard1 standard output stdout screen2 standard error stderr screen> file< file>> filen> filen< 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 fileEx:0. ls > file-list.txtcat file-list.txtls abc.txt > file-list2.txtcat file-list2.txtls abc.txt > file-list2.txt 2> file-err.txtcat file-list.txtcat file-list2.txt1. ls -R /etc > file.lst 2> file.errls -R /etc > file.lst 2>&1ls -R /etc &> file.lstls /etc >> file.lst2. modprobe 8139too >/dev/null 2>/dev/nullmodprobe 8139too >/dev/null 2>&1modprobe 8139too &>/dev/null3. ls -alF *.sh | tee 2007.txt3. Regular Expression 正規表示式為何要用RE ?Ex: 在編輯檔案的時候,要將所有text1, text2, text3... text9取代成figa. 在不支援RE的編輯器,需要作9次,慢慢改b. 在支援RE的編輯器,只需一行就可以搞定。以vi為例::%s/text[1-9]/fig/g常見的RE字元:.*?+?^$[ ][^ ]|( )Ex:bag^bagbag$^bag$[Bb]ag "Bag", "bag"b[aeiou]gb[^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|seven80[23]?86 8086, 80286, or 80386compan(y|ies) company or companies注意:regular expression的字元和shell expression的字元不盡相同Ref: http://www.grymoire.com/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,... text9ttxyxyttkokokokbagbugbugsbagbagxxxbeg begbig bog.big...big---------------------:%s/text[1-9]/fig/g:%s/./5/g:%s/^/ /ggrep -E t? re.txtegrep t? re.txtgrep -E t+ re.txtegrep t+ re.txtgrep ^bag re.txtgrep ‘ bag‘ re.txtgrep ‘^bag$‘ re.txtgrep [Bb]ag re.txt2. sed -e "s/^bag$/kkk/g" re.txt3. perl -pi -e "s/^bag$/kkk/g" re.txt第13堂 (2007/01/09)1. GNU/Linux 套件關係http://palpatine.infinitedata.net/~shogun/GNULinuxupdatedw4.0.jpghttp://techno.mayix.net/wp-content/_GNULinux.jpgorhttp://free.nchc.org.tw/intro_to_linux/CML/GNULinuxupdatedw4.0.jpghttp://free.nchc.org.tw/intro_to_linux/CML/_GNULinux.jpg2. Ubuntu網頁 http://www.ubuntu.comUbuntu, Kubuntu, edubuntu, xubuntuUbuntu Edgy (6.10)光碟http://opensource.nchc.org.tw/ubuntu-cd/6.10/ubuntu-6.10-desktop-i386.isoDebian Sarge安裝Sarge光碟位於http://opensource.nchc.org.tw/debian-cd/3.1_r4/i386/iso-cd/debian-31r4-i386-binary-1.iso2. apt -> debapt/yum/urpmi -> rpmsudo的設定與使用3. ctrl-alt-F1 切換到console 1sudo vim /etc/apt/sources.list為了加快下載速度,使用近一點的repository:a. cd /etc/apt/; cp sources.list sources.list.origb. 把所有的tw.archive.ubuntu.com取代成free.nchc.org.tw: %s/tw.archive.ubuntu.com/free.nchc.org.tw/gc. 把所有的security.ubuntu.com取代成free.nchc.org.tw: %s/security.ubuntu.com/free.nchc.org.tw/gd. 加上 universe multiversedeb http://free.nchc.org.tw/ubuntu edgy main restricted universe multiversedeb http://free.nchc.org.tw/ubuntu edgy-updates main restricted universe multiversedeb http://free.nchc.org.tw/ubuntu edgy-security main restricted universe multiverseps. 此4個分類可參考這裡:http://www.ubuntu.com/ubuntu/componentsmain: The main distribution component contains applications that are free software, can freely be redistributed and are fully supported by the Ubuntu teamrestricted: 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 updatesudo apt-get upgrade5. sudo apt-get install vlcvlc http://free.nchc.org.tw/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-racerorsudo aptitude ->執行遊戲a. supertuxb. frozen-bubblec. ppracer7. 安裝其他的輸入法,推薦gcina.sudo apt-get updatesudo apt-get install gcinb. sudo im-switch -z zh_TW -s gcin8. 重新啟動X windowsctrl-alt-F1 切換到console 1, 然後/etc/init.d/gdm restart或者若要暴力方式重新啟動X-window: ctrl-alt-backspace第14堂 (2007/01/16)1. cygwin 介紹 (http://www.cygwin.com)2. DRBL (企鵝龍) 介紹 (http://drbl.nchc.org.tw, http://drbl.sf.net)3. Linux上網路相關指令介紹ref:Debian 參考手冊 第 10 章 - 網路設定http://www.debian.org/doc/manuals/reference/ch-gateway.zh-tw.html3.0ipcalc 192.168.1.0/255.255.255.248ipcalc 140.110.1.1/255.255.255.03.1 ifconfigifconfig 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.254ifconfig eth0 192.168.100.254如果找不到ifconfig:which ifconfigwhereis ifconfigprintenv PATH/sbin/ifconfig3.2 看routing tablerouteroute -n3.3 pingifconfig eth0ping 140.110.25.1ping 140.110.1.1ping -c 10 140.110.25.1ping os.nchc.org.tw3.4 traceeroutetraceroute 140.110.25.1traceroute 140.110.1.1traceroute os.nchc.org.twtraceroute -n os.nchc.org.tw3.5 ifconfig eth0 downifconfig eth0 up手動加上預設路由route add default gw 192.168.62.254 eth1強迫自動取得IP addressdhclient或是pump3.6 name server設定: /etc/resolv.confsearch nchc.org.twnameserver 140.110.60.1nameserver 140.110.16.1nameserver 140.110.4.13.7. 寫死在設定檔vim /etc/network/interfaces...auto eth1iface inet staticaddress 192.168.62.11netmask 255.255.255.0gateway 192.168.62.254然後執行/etc/init.d/networking restart重新帶起網路卡設定3.8. ADSL播號程式設定pppoeconf第15堂 (2007/01/23)1. apt-get updateapt-get install bisonls /var/cache/apt/archivesapt-get remove m4cd /var/cache/apt/archivesdpkg -i bison*.debdpkg -i m4*.deb2. dpkg -l bisondpkg -L bisonwhich dhclientdpkg -S /sbin/dhclientdpkg -L dhcp3-clientdpkg --purge bisonsudo apt-get install bisonsudo dpkg --purge m4sudo apt-get remove m43. ctrl-alt-F1換到console 1export LC_ALL=Csudo dpkg-reconfigure xserver-xorgsudo /etc/init.d/gdm restart4. apt-cache search dhcpapt-cache show dhcp3-client5. man 5 contrabexport EDITOR=vimcrontab -e-------------MAILTO=steven0 0 * * * apt-get update >/dev/null; apt-get -y upgrade >/dev/null-------------PS. 如何保留某個package不被自動升級:a. sudo su -b. echo "bison hold" | dpkg --set-selectionsc. 查看狀態 dpkg --get-selections bison若要忽略hold的旗標的話,可以用apt-get --ignore-hold -y upgradeanother sol :vim /etc/cron.daily/updatedebian----------apt-get update >/dev/nullapt-get -y upgrade >/dev/null----------chmod 755 /etc/cron.daily/updatedebian5. ps -ef |grep cronrunlevells -alF /etc/rc2.d/*cron6. cd /etc/rc2.dln -fs ../cron S89cronorupdate-rc.d cron defaultsTo removeupdate-rc.d -f cron remove完整一點的增加/移除某個service增加:update-rc.d exim4 defaultsupdate-rc.d samba start 20 2 3 4 5 . stop 19 0 1 6 .移除:update-rc.d -f exim4 removeman update-rc.d for more details.In RedHat-like distribution, use "chkconfig"7. grubhttp://www.gnu.org/software/grub/grub.htmlhttp://www.gnu.org/software/grub/manual/grub.htmlgrub的設定檔:/boot/grub/menu.lst只顯示有用的設定,不看註解: grep "^[^#]" /boot/grub/menu.lsta. 把hiddenmenu註解掉,然後重新開機b. 可以移除kernel後面的那兩個參數quiet splash,這樣下次開機的時候,可以詳細顯示開機過程。8. root密碼忘了怎麼辦?若是grub當boot manager的話,a. 重新開機b. 出現grub選單的時候,按ec. 找到kernel那一行,再按ed. 在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.Dhttp://en.wikipedia.org/wiki/Linux_kernel#Versionshttp://opensource.nchc.org.tw/kernel/linux/kernel/v2.6/linux-2.6.19.2.tar.gz第16堂 (2007/01/30)0. 編譯kernelwget http://opensource.nchc.org.tw/kernel/linux/kernel/v2.6/linux-2.6.19.2.tar.gza. tar xvzf linux-2.6.19.2.tar.gzb. cd linux-2.6.19.2c. apt-get install gcc make libncurses5-devd. make menuconfige. makef. make install; make modules_install(files are in /boot/ and /lib/modules/)g. lsmod | lessh. modinfo e100i. rmmod e100j. modprobe reiserfs參考文件: 非官方 Ubuntu 6.10 (Edgy Eft) 使用者手冊http://wiki.ubuntu.org.tw/index.php/Ubuntu6.10GuidetwA.1. 安裝多個核心與開機管理程式grub的設定a. unameuname -runame -mdpkg --get-selections | grep -i linux-imageb. sudo vim /etc/apt/sources.list%s/tw.archives.ubuntu.com/os.nchc.org.tw/g%s/security.ubuntu.com/os.nchc.org.tw/gsudo apt-get updatesudo apt-get install linux-image | lessc. sudo apt-get install linux-image-2.6.17-10-386orsudo apt-get install linux-image-386d. dpkg -L linux-image-2.6.17-10-386 |lesse. /boot, /usr/share/doc/linux-image-2.6.17-10-386, /lib/modules/2.6.17-10-386f. zless /usr/share/doc/linux-image-2.6.17-10-386/Changes.gzg. sudo vim /boot/grub/menu.lsth. LC_ALL=C man bootparamB. 上課使用Clonezill複製之後的作業系統環境,網路是自動取得IP,練習設定固定IP.1. lspciifconfig -aDebian/Ubuntu安裝後手動設定此次網路##ifconfig eth3 140.110.25.x netmask 255.255.255.128route add default gw 140.110.25.126 eth3vim /etc/resolv.conf=================================nameserver 140.110.60.1nameserver 140.110.16.1search nchc.org.tw=================================2.Debian/Ubuntu中將資料寫在硬碟以便每次開機自動載入Debian/Ubuntu的設定檔在/etc/network/interfaces :vim /etc/network/interfaces=================================auto eth3iface eth3 inet staticaddress 140.110.25.xnetmask 255.255.255.128broadcast 140.110.25.127gateway 140.110.25.126=================================vi /etc/resolv.conf=================================nameserver 140.110.60.1nameserver 140.110.16.1search nchc.org.tw=================================vi /etc/hosts=================================140.110.25.x cpc0xx.nchc.org.tw 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-eth0vim /etc/sysconfig/network-scripts/ifcfg-eth0=================================DEVICE=eth0BOOTPROTO=staticBROADCAST=140.110.25.255IPADDR=140.110.25.xNETMASK=255.255.255.0NETWORK=140.110.25.xONBOOT=yes=================================vim /etc/sysconfig/network=================================NETWORKING=yesHOSTNAME=XXXXDOMAINNAME=nchc.org.twGATEWAY=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.nchc.org.tw/ubuntu edgy-backports main restricted universe multiversedeb http://www.calno.com unstable main----------------------------(3). apt-get update; apt-get install gcin flashplugin-nonfree(4). 登出再登入,或者乾脆重新開機D.安裝apache1. Apache2,apt-get install apache2/etc/init.d/apache2 restart/etc/apt/sources.list加上universeapt-get install nvu用nvu寫一個test.html檔,然後用root複製到/var/www下 (cp ~/test.html /var/www)開啟firefox, 輸入http://localhost/test.html1. apache2文件http://httpd.apache.org/docs/2.0//etc/apache2/apache2.conf中文參考文件:http://www.twvbb.com/vbb/thread/30/604/如何透過apache對某個網頁設定帳號密碼?http://httpd.apache.org/docs/2.0/howto/htaccess.html重新載入設定檔可以用reload而不是restart,避免stop再start期間的服務中斷。/etc/init.d/apache2 reload2. 安裝php & mysqlapt-get install php4 mysql-servertouch /var/www/a.php/etc/init.d/apache2 restart開啟firefox/mozilla, 輸入http://localhost/a.php3. wiki, blog等.wikipedia ->http://www.wikipedia.orgBlog軟體:http://wordpress.org/http://www.dotclear.net/en/features.html...第17堂 (2007/02/06)0. ftp(A) ftp clientapt-get install gftp然後執行gftp文字模式ftp client: apt-get install lftp(B) ftp server可以安裝的ftp server: wu-ftpd or proftpda. 安裝apt-get install wu-ftpd最好選擇standalone模式,如果沒有問的話,可以執行dpkg-reconfigure wu-ftpd來選擇為standalone模式client program: apt-get install gftpb.設定檔在/etc/wu-ftpdACL: /etc/wu-ftpd/ftpaccessclass all real,guest,anonymous *.nchc.org.tw-> 定義一個名為 all 的組,而該組的成員有 real、guest 與 anonymous,而且只允許來自於 nchc.org.tw 網域的使用者以上述身份登入使用。語法: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 restartd. ftpcount 可要用來統計目前連線數目,也就是目前各個群組的上線人數,以及各個群組的連線上限人數e. ftpwho 可用來察看目前的使用者與連線的情形1. sambaa. apt-get install samba smbclient smbfsb. less /etc/samba/smb.confSambaa. 啟動samba/etc/init.d/samba startb. 列出 Samba Server (IP: 192.168.166.1) 已分享了那些資源:smbclient -L //192.168.166.1c. 假設主機名稱為 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.1f. 開放某個目錄 (/home/samba)mkdir /home/sambachown -R test /home/samba/etc/samba/smb.conf中加一段-----------------------------------------[sambashare]comment = Samba Sharepath = /home/sambausername = testread only = Nocreate mask = 0700hosts allow = 192.168.166., 168.95.1.-----------------------------------------測試testparm重新啟動samba以便讓設定生效/etc/init.d/samba restart連線 smbclient -U test //192.168.166.1/sambasharePassword: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 2005test.txt 0 Wed Jan 5 15:47:47 200545246 blocks of size 32768. 44220 blocks availableg. 掛載成某個目錄mount -t smbfs //192.168.166.1/sambashare -o iocharset=950,username=test /mnt/smbiocharset=950支援中文Big5編碼如果密碼要寫上去(不建議)mount -t smbfs //192.168.166.1/sambashare -o iocharset=950,username=test%passwd /mnt/smbh. 如果是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/smb2. ssh serverapt-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 sshmntsshfs steven@192.168.63.2:/home/steven sshmnt這樣就可以把遠端的/home/steven 掛載成本機的sshmnt.3. mail serverpostfix, sendmail, qmail, exim...以postfix為例a. apt-get install postfixb. 設定檔/etc/postfix/main.cf...c. 看或是修改postfix設定postconf例如修改每封信的可容許size-----------------------------------------------------postconf | grep sizebounce_size_limit = 50000header_size_limit = 102400message_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 reloade. 所有參數可以在"man 5 postconf"中查到第18堂 (2007/02/13)0. 安裝DRBL & Clonezilla環境http://drbl.nchc.org.twClonezilla livePS.1. 若需要安裝額外的顯示卡驅動程式a. Nvidia 顯示卡a.1 "uname -r" 找到目前使用的kernel版本(例如2.6.8-2)a.2 "apt-get install kernel-headers"列出可安裝的kernel headersa.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.nvidia.com/linux網頁下載driver,以32位元PC而言,可以下載標示為"Linux IA32"的驅動程式,例如Linux IA32下的1.0-7667http://www.nvidia.com/object/linux_display_ia32_1.0-7667.html然後依照那個網址所列的三個步驟執行即可。也就是a.4.1 讀license宣告a.4.2.執行"wget http://download.nvidia.com/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.1b.2 同a.2b.3 同a.3b.4 以RADEON卡為例,到網頁 http://www.ati.com/ 的"DRIVERS & SOFTWARE"下載驅動程式,選擇"Linux Drivers and Software":https://support.ati.com/ics/support/KBAnswer.asp?questionID=3380以32位元PC而言,可以下載標示為"Linux x86"的驅動程式,以本例而言,選擇"RADEON 8500 Series and higher"https://support.ati.com/ics/support/KBList.asp?folderID=356b.4.1 執行"wget http://www2.ati.com/drivers/linux/ati-driver-installer-8.14.13.run"b.4.2 執行"sh ati-driver-installer-8.14.13.run"來編譯顯示卡驅動程式2. 要安裝最新版本的gcina. vim /etc/apt/sources.list加上deb http://www.calno.com unstable main然後sudo apt-get updatesudo apt-get install gcin其他:提問的智慧: http://phorum.vbird.org/viewtopic.php?t=96柏青哥的 SuSE Linuxhttp://paching.myweb.hinet.net/from:http://opensource.nchc.org.tw/intro_to_linux/CML/command_history_list.html