2012年8月16日 星期四

文字介面指令備忘

因為記性真的太爛了,只寫給自己的筆記="=

台灣的Linux社群網站:http://www.linux.org.tw/

FreeBSD使用手冊(中文!):http://www.freebsd.org/doc/zh_TW/books/handbook/index.html
Debian參考手冊(中文!):http://free.tnc.edu.tw/docs/debian/
Redhat9使用手冊(中文!):http://free.tnc.edu.tw/docs/rh/rhl-gsg-zh_TW-9/
CentOs  使用手冊:http://www.centos.org/docs/5/

自由軟體技術網:http://free.tnc.edu.tw/

-----------高手筆記或部落格----------
不自量力's Weithenn :     作業系統與網路設備筆記

--------------------------------------------------------------------------------------------------------------------------------------
因為我有健忘症,所以雖然說參數man一下就知道了,但是還是要寫下來卡實在....
路徑也是很好忘的項目,所以寫在開頭,以下為不同發行版本的路徑類備忘

linux指令


更新系統:yum update
ssh -l name  例:ssh 163.19.163.1 -l name

因為原作者已編寫的很清爽又很詳盡,懶惰如我,當然就沿用以上來源的內容目錄再做修改了= ="
---------------------------------------------------------------------------------------------------------------------------------------------------------------
◆ 安裝和登錄命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last;
shutdown -h now  (參數-c停止關機)
reboot now
◆ 文件處理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln;
◆ 系統管理相關命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab、service;
service    用來開服務很方便的指令,也可以加上--status-all參數看服務的狀況與port
◆ 網絡操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;
netstat    用來看網路狀態的,也可以看服務的監聽port
route -n   看本機使用的路由表
traceroute 發出一個封包後追蹤路由
arp   -n   查看與本機最近相關的網路硬體位址很好用,先ping再看~ chkconfig --list 列出所有預設開啟的服務狀態,其他常用參數
chkconfig 服務名稱 on或off
ex:
chkconfig httpd on
◆ 系統安全相關命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo、ps、who;
chmod 600 檔名 (600代表擁有者可讀寫, 每個數字分別為owner/group/others) (參考參數 r:4   w:2  x:1 ,read/write/execute  )
chown -R root:root 檔名   (參數-R代表包含此目錄底下所有的)
sudo -i (ubuntu下改身份為root) 
ps -ef|grep 服務名稱     (用來尋找正在執行的服務的執行檔路徑)
◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode、uname
uname -a  (查詢核心版本)
結果:
Linux 2.6.18-164.6.1.el5xen #1 SMP Tue Nov 3 17:53:47 EST 2009 i686 i686 i386 GNU/Linux
這個指令用cat有更厲害的效果,只是要打很多字,懶人我是不想用滴:
cat /proc/version
結果:
Linux version 2.6.18-238.9.1.el5xen (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Tue Apr 12 19:32:47 EDT 2011
查詢使用套件的版本
cat /etc/issue
結果:
CentOS release 5.5 (Final)
Kernel \r on an \m
或是
lsb_release -a  (經LSB認證的Linux distribution查詢)
結果:
LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID:    CentOS
Description:    CentOS release 5.5 (Final)
Release:    5.5
Codename:    Final
◆ 更新命令(沒有請自己安裝,建議一定要裝):yum或apt
apt-cache search 套件名稱      找尋該套件是否存在
                 show 套件名稱        顯示該套件目前的詳細資訊

mount
-h:顯示輔助信息。
-v:顯示信息,通常和-f用來除錯。
-a:將/etc/fstab中定義的所有文件系統掛上。
-F:這個命令通常和-a一起使用,它會為每一個mount的動作產生一個行程負責執行。在系統需要掛上大量NFS文件系統時可以加快加載的速度。
-f:通常用於除錯。它會使mount不執行實際掛上的動作,而是模擬整個掛上的過程,通常會和-v一起使用。
-t vfstype:顯示被加載文件系統的類型。
-n:一般而言,mount掛上後會在/etc/mtab中寫入一筆資料,在系統中沒有可寫入文件系統的情況下,可以用這個選項取消這個動作。
在Linux 和Unix系統上,所有文件都是作為一個大型樹(以/為根)的一部分訪問的。要訪問CD-ROM上的文件,需要將CD-ROM設備掛裝在文件樹中的某個掛 裝點。如果發行版安裝了自動掛裝包,那麼這個步驟可自動進行。在Linux中,如果要使用硬盤、光驅等儲存設備,就得先將它加載,當儲存設備掛上了之後, 就可以把它當成一個目錄來訪問。掛上一個設備使用mount命令。在使用mount這個指令時,至少要先知道下列三種信息:要加載對象的文件系統類型、要 加載對象的設備名稱及要將設備加載到哪個目錄下。
(1)Linux可以識別的文件系統
◆ Windows 95/98常用的FAT 32文件系統:vfat ;
◆ Win NT/2000 的文件系統:ntfs ;
◆ OS/2用的文件系統:hpfs;
◆ Linux用的文件系統:ext2、ext3;
◆ CD-ROM光盤用的文件系統:iso9660。
雖然vfat是指FAT 32系統,但事實上它也兼容FAT 16的文件系統類型。
(2)確定設備的名稱
在Linux 中,設備名稱通常都存在/dev裡。這些設備名稱的命名都是有規則的,可以用「推理」的方式把設備名稱找出來。例如,/dev/hda1這個 IDE設備,hd是Hard Disk(硬盤)的,sd是SCSI Device,fd是Floppy Device(或是Floppy Disk?)。a代表第一個設備,通常IDE接口可以接上4個IDE設備(比如4塊硬盤)。所以要識別IDE硬盤的方法分別就是hda、hdb、hdc、 hdd。hda1中的「1」代表hda的第一個硬盤分區 (partition),hda2代表hda的第二主分區,第一個邏輯分區從hda5開始,依此類推。此外,可以直接檢查 /var/log/messages文件,在該文件中可以找到計算機開機後系統已辨認出來的設備代號。
(3)查找掛接點
在 決定將設備掛接之前,先要查看一下計算機是不是有個/mnt的空目錄,該目錄就是專門用來當作掛載點(Mount Point)的目錄。建議在/mnt裡建幾個/mnt/cdrom、/mnt/floppy、/mnt/mo等目錄,當作目錄的專用掛載點。舉例而言,如 要掛載下列5個設備,其執行指令可能如下 (假設都是Linux的ext2系統,如果是Windows XX請將ext2改成vfat):
軟盤 ===>mount -t ext2 /dev/fd0 /mnt/floppy
cdrom ===>mount -t iso9660 /dev/hdc /mnt/cdrom
SCSI cdrom ===>mount -t iso9660 /dev/sdb /mnt/scdrom
SCSI cdr ===>mount -t iso9660 /dev/sdc /mnt/scdr

不過目前大多數較新的Linux發行版本(包括紅旗 Linux、中軟Linux、Mandrake Linux等)都可以自動掛裝文件系統,但Red Hat Linux除外。
香港IT網-Unix/Linux 相關文件 : http://www.hkitn.com/article.php/6006

Centos

/etc
/etc/rc.d/rc.local 放置開機時自動執行的指令檔,偷懶好用。
/etc/init.d/        幾乎所有服務的script都放這邊...不要亂來..
順帶一提,使用service 服務啟動一個服務和/etc/init.d/服務的結果是相同的
/etc/sysconfig/     沒有放在/etc底下的各種服務的初始設定檔,例如網路的設定部份/etc/services     放置所有服務與相對應的port號與資料協定,不要亂改!

/var
/var/lib/      各類程式生成的資料預設丟在這邊,例如mysql的資料庫
/var/run/      服務生成時採用pid程序號碼放在這

Ubuntu

/etc/rcS.d/    據稱可說是Debian系列的rc.local
使用ln-s的方法掛載過來,數字越小越優先執行,請看舉例:ln -s etc/init.d/firewall.sh S100firewall.sh
資料來源:[Ubuntu] - rc.local似乎沒有開機啟動
/etc/php5/apache2/php.ini      Ubuntu底下的php.ini

預設log檔路徑
/var/log/messages 一般來說,各種服務啟動的紀錄都在這邊,可以來看服務啟動是否正常
/var/lib/dhcpd/    dhcp的client租約紀錄

Vim


一、ubuntu底下預設的vim是簡易版的,請下指令apt-get install vim。
二、安裝完畢後vim的設定檔路徑在/etc/vimrc。
在vim底下有很多常用的指令
筆者自己最常用的摘要如下:
i插入
d整行刪除
x逐字刪除
/向下搜尋字串
?向上搜尋字串
:g/被取代的字串/s//取代字串/g
:wq   --存檔後跳出
:q!   --不存檔強制跳出
:e ++enc=big5    --強制使用big5編碼讀取檔案,特別常用於出現亂碼時。

FTP


遠端連線方式 ftp [address] [port]
ls     查看 Server 端的目錄或檔案
pwd    查看 Server 端目前所在的目錄
cd     變更 Server 端目前的目錄
cdup   變更 Server 端目前的目錄到上一目錄
lls    查看 Local 端的目錄或檔案
lcd    變更 Local 端目前的目錄
asc    設定傳輸模式為文字檔方式
bin    設定傳輸模式為二進位檔方式
get    將 Server 端的檔案拷貝至 Local 端現在目錄下
mget   拷貝多個 Server 端的檔案至 Local 端現在目錄下
put    將 Local 端的檔案拷貝至 Server 端現在目錄下
mput   拷貝多個 Local 端的檔案至 Server 端現在目錄下
delete 刪除 Server 端的檔案
mkdir 在 Server 端建立目錄
rmdir 刪除 Server 端的目錄
!      shell 指令
!ls    查看 Local 端的目錄或檔案
prompt 變換交談模式 (on/off),
?,help 指令使用說明
bye    結束 FTP

Mysql指令

講指令的很多,但這因為看起來最清爽,以下內容完全照錄轉抄,要使用請至原網站觀看

查詢資料庫、資料表、欄位等資訊
mysqlshow [
-h ipAddress] -u user_name -pmysqlshow -u user_name@ipAddress -p
列出所有資料庫

mysqlshow -u user_name -p db_name列出該 database_name 所有資料表

mysqlshow -u user_name -p db_name table_name列出該 database_name 裡 table_name 資料表裡的欄位

mysqlshow -u user_name -p db_name table_name field_name
列出該 database_name 裡 table_name 的 field_name 的欄位資訊

更改密碼mysqladmin password 'new_password'更改目前系統登入使用者的密碼

於資料庫中導入執行sql script 檔
mysql db_name < sql_filename.sql
與 MySQL 連線
mysql [
-h ipAddress] -u user_name -ppasswordmysql [-h ipAddress] -u user_name -p

切換使用資料庫 database_name
mysql> USE db_name
mysql> SELECT DATABASE();列出目前預設的資料庫名稱

mysql> SHOW DATABASES;
列出所有資料庫

mysql> SHOW DATABASES LIKE 'my%';
列出所有資料庫名稱為 my 開頭的

mysql> SHOW TABLES FROM db_name [LIKE ...];
列出該資料庫所有資料表名稱

mysql> SHOW COLUMNS FROM table_name [LIKE ...];
mysql> SHOW COLUMNS FROM table_name FROM db_name  [LIKE ...];mysql> SHOW FIELDS FROM table_name [LIKE ...];
mysql> DESCRIBE table_name ;
mysql> EXPLAIN table_name ;
列出該資料表所有欄位名稱

mysql> SHOW INDEX FROM table_name [LIKE ...];
mysql> SHOW INDEX FROM table_name FROM db_name  [LIKE ...];mysql> SHOW KEY FROM table_name [LIKE ...];
列出該資料表所有索引資訊

mysql> SHOW TABLE STATUS;mysql> SHOW TABLE STATUS FROM db_name  [LIKE ...];列出資料表的相關資訊

mysql> SHOW VARIABLES [LIKE ...];
顯示 MySQL 相關參數設定

mysql> SHOW VARIABLES LIKE '%character%' ;顯示資料庫語系設定資訊

mysql> SHOW PROCESSLIST;
列出與 MySQL 連線的 threads 狀態

mysql> SHOW STATUS;
列出與 MySQL 目前的狀態

當進行資料表檢查或修補時,鎖定資料表可確保資料表的安全
(READ:唯讀狀態、WRITE:無法寫入也無法讀取)
mysql> LOCK TABLE table_name READ;mysql> FLUSH TABLES;
鎖定資料表 

mysql> UNLOCK TABLE;
資料表解除鎖定 

沒有留言:

張貼留言