操作記錄

關於部落格
  • 12379

    累積人氣

  • 3

    今日人氣

    0

    訂閱人氣

linux指令

/* $Id: linux_skill.txt,v 1.7 2009/08/21 06:51:49 jiayu Exp jiayu $ */

====================================================================================

如何在Fedora/Linux的環境下操作複雜的安裝過程時,

"到底要怎麼樣才可以一直往下點?"

(當我們雙擊一資料夾時,如何在同一視窗開啟,而不是像預設般又再開啟一視窗檢視。)

 

解答如下:工具列:編輯(E)-->偏好設定

====================================================================================

查詢硬體資訊

 

查詢cpu

cat /proc/cpuinfo

查詢ram

cat /proc/meminfo

查詢硬碟大小

df

====================================================================================

linux 預設沒開啟sudo,設定開啟方式

su -

chmod u+w /etc/sudoers

visudo

 

找到root ALL=(ALL) ALLZ 並在下面增加一行

xxx ALL=(ALL) ALL 儲存後離開

 

chmod u-w /etc/sudoers

====================================================================================

查詢netflow

netflow.ncnu.edu.tw

 

資料夾為/var/netflow

輸入以下指令來查詢netflow

/usr/local/netflow/bin/flow-print < /var/netflow/2009-09-11/ft-v05.2009-09-11.144500+0800

====================================================================================

關閉防火牆

linux 預設的防火牆為iptables

 

) 重開後生效

開啟: chkconfig iptables on

關閉: chkconfig iptables off

 

2) 即時生效,重開後失效

開啟: service iptables start

關閉: service iptables stop

======================================================================

修改SSH連線方式(使用port 5555,使用ssh2,遠端不能使用root登入)

vi /etc/ssh/sshd_config

 

修改以下

Port 5555

Protocol 2

PermitRootLogin no

 

然後重開ssh

/etc/init.d/sshd restart

======================================================================

sawmill log查詢IRC指令參考

 

grep "IRC" *.log|awk -F, '{print $14}'|awk -F: '{print $1}'|sort |uniq

log檔為zip

unzip -c *.zip |grep "IRC" |awk -F, '{print $14}'|awk -F: '{print $1}'|sort |uniq

 

sort:字串排序

uniq:將重覆的字串只輸出一次

======================================================================

zip解壓多個檔案:

unzip -j -o *.zip

 

不解壓縮zip檔而直接查看zip檔內容

unzip -c file

======================================================================

查看log檔使用指令

 

查詢檔案最後幾行的字串

tail

log檔持續即時show出來

tail -f xxx.log

======================================================================

linux下使用windows的遠端桌面連線軟體

tsclient

 

安裝方式:yum install tsclient

====================================================================================

列印出目錄下(linphone)所有檔案數量(包含所有子目錄下檔案)

find linphone -name "*" -print | wc -l

 

計算並列印出目錄下(linphone)所有.c.h檔行數(包含所有子目錄下檔案)

find linphone -name '*.[ch]' -exec wc -l {} ;  | awk '{x=x+$1} END{ print x}'

====================================================================================

產生一個script檔案,來進行多個執行指令

 

範例:

vi send

-------------------

#!/bin/sh

./rtpsend good.mp3 10.10.22.21 12345 &

./rtpsend good.mp3 10.10.22.21 12346 &

./rtpsend good.mp3 10.10.22.21 12347 &

./rtpsend good.mp3 10.10.22.21 12348 &

-------------------

./send

 

就可以執行四個指令

(&為背景執行)

============================================================================

使用killall來依照執行檔案名稱停止執行

killall filename

 

kill -2相當於ctrl+c

kill -2 pid

============================================================================

grep -R 123 ./*

搜尋當前目錄及子目錄下所有的檔案有123的字串

============================================================================

makemake install,如要清除掉makemake install的檔案

輸入:

make clear

make uninstall

============================================================================

管理常用

vipw:編輯/etc/passwd

 

adduser (自動建立家目錄及group)

useradd

 

sudo -s:切換成root

su:切換身份

sudo權限:在/etc/sudoers裡加入username ALL=(ALL) ALL

or username ALL=(ALL) NOPASSWD: ALL 可以在sudo時不用輸入密碼

(visudo這隻程式修改,會幫檢查格式,比較安全)

 

uname:顯示系統資訊

-a:顯示系統核心所有資訊

 

umask:建立新目錄、檔案時,預設的存取權限。

 

getent passwd:顯示系統所有使用者,包括LDAP的帳號

 

finger:查user資訊

 

locale:秀出系統的語系設定(設定方法:dpkg-reconfigure locales)

 

ulimit:可用來限制使用者的系統使用資源(cpu, memory, 及建立檔案的最大限制)

-a:顯示目前的限制資訊

 

System Status

ps aux

top

pstree

 

shell

=:指定變數。

echo:查看shell變數($HOME, $PATH,...或是自訂變數等)

unset:取消變數內容。

export :將自訂變數變成環境變數,便可供其它的程序使用。

(無參數時,便是透出環境變數與env一樣)

`[command]`:‵之內的command會先被執行,而執行的結果將做為外部的輸入資訊。

:換行。

"....":可含變數,變數會將展開的結果變成字串的一部分。

'...':僅含字元,所以含有變數時,不會展開,當字元用。

evn:顯示環境變數。

set:顯示環境變數及shell的自訂變數。

 

重要的環境變數:

$PS1:命令提示字元的格式。

$$:本次login取得shellPID(查詢方式echo $$)

$?:顯示上一個指令的return value

 

網路

/etc/init.d/networking restart:重新啟動網路卡

/etc/network/interfaces:設定ip, netmask, gateway

/etc/hostname:設定主機名稱

(改完後需執行hostname -F /etc/hostname 才會更新)

 

/etc/resolv.conf:設定網域名稱, DNS, 搜尋網域

/etc/hosts:設定ip與網址的對應關係, 亦可設定alias, 

: 140.119.xxx.xxx mysite mysite.nccu.edu.tw

/etc/services:設定servicesportprotocol

 

ifconfig:顯示網路卡組態 (類似windowsipconfig)

 

tracepath :查詢由本機到對方主機間的router是否通暢,

但有些router會鎖ICMP,所以可能沒有回應

 

nslookup :反查網址或IP

 

netstat:查詢主機目前的連線及哪些port正在listenning

常用參數:-tulnp

 

nmap:用來查詢主機的系統資訊及開放哪的portservices資訊

-A:可以detect目前有的servicesOS資訊.

-open:僅detect目前有開放的services資訊

 

last:會開啟/var/log/wtmp並讀取其中的內容,用來查詢最近login的訊息。

 

lastlog:會開啟/var/log/lastlog並讀取其中的內容,用來查詢所有user上一次login的訊息。

 

route:檢視路由表

 

hostname:查詢系統的hostname

-f:查詢FQDN (網址全名)

 

wget [url]:抓檔

 

ssh [ip] -l [username]:用ssh連到遠端server.

 

網路出問題時,以下順序debug

ping localhost (or ping 127.0.0.1):失敗便是linux網路核心的問題

 

ping <自己的IP>:若上面沒問題的話,通常也不會有問題,除非網路卡有誤

 

ping :看看是不是router掛了

 

ping 168.95.192.1:若不通,代表網路對外路線掛了

 

 

 

檔案搜尋與查詢

which:從PATH的環境變數中找執行檔(如果有多個同名的程式,whice只顯示第一個。

which常用來檢查shell執行的程式,是否符合預期的版本。

 

whereis:找系統中的檔案位址(search by index)

 

locate:找系統中包含關鍵字的檔案位址(search by index)

 

find [PATH] [option] [action]:找系統中的檔案位址,支援萬用字元,

有很多方便的參數,但是針對硬碟做search,速度較慢。

(: find / -name Animation)

 

file:查詢檔案類型

 

stat:查詢檔案的資訊(atime, ctime, mtime, inode, block....)

wc:列出文字檔的列數、單字數、字元數

 

file:查看檔案的type,也可查看文字檔的編碼

 

type:查看指令屬於bash或外部指令(會列出執行檔的位置, 如:/usr/bin/erl,類似which指令)

 

 

 

常用指令

pwd -P:顯示真實目錄所在位置,而非link的位置

 

ls

-h:以KB,MB…顯示檔案大小

time=atime:顯示上次檔案被access的時間

time=ctime:顯示上次檔案屬性被改變的時間

(ls預設顯示mtime,即上次檔案內容被modification的時間)

 

touch:更改檔案atimemtime,或開新空白檔

-a: atime

-m: mtime

 

mkdir -p:直接建立多層目錄,原不存在之目錄皆會自動建立

mkdir -m:創建目錄同時設置目錄權限

 

cp

-a:檔案屬性一起複製,不使用預設屬性,若是目錄亦copy整個目錄結構

-s:複製成捷徑

-u:目標檔與來源檔有差異時,才複製,適合用在備份

 

mv:搬移檔案

 

rm:移除檔案

 

rename:更名

 

alias:顯示alias command, 也可以為指令取別名,如: alias lm='ls -l|more'

unalias:拿掉別名。

 

catconcatenate

-n:印出行號 (等於nl指令)

-A:顯示所有內容,包含特殊字元

 

less:同more,但比more好用,可以用pageup向回捲,也可用?向前搜尋string

 

head:顯示檔案前十行

-n:可設定顯示的行數

 

tial:顯示檔案最後十行,-n參數同head用法

 

cal:日曆

 

bc:小計算機

quit (離開)

scale = n (顯示小數點位數)

 

ctrl+c:結束process

ctrl+dEOF, exit

ctrl+lclear

 

$PATH:執行檔path變數

PATH = $PATH:/root :在$PATH append /root 這個path.

基於安全性的理由,PATH不加.(目前目錄),所以要執行目前目錄下的指令要加prefix ./

 

LANG="en" :切換系統語係為英文

 

man page中的指令:

/:向下搜尋string

?:向上搜尋string

n:找下一個字串目標

N:找上一個字串目標

q:結束man page

 

man man:可以查到 man page中指令後方括號數字的意義

 

man -f [command]:簡單顯示該command的用途(equal whatis」指令)

 

man -k [string]:印出指令介紹中含有該string的指令

 

history:查看.bash_history

-c:清除history

 

![之前輸入過的command prefix]:重覆之前做過的command

!!:重覆上一個指令

 

關機

sync:將記憶體中的資料寫入硬碟(常在關機前用)

shutdown -r now:將系統服務關掉後更立即重新開機 (equal reboot)

shutdown -r +30 The system will reboot 『:30分鍾後重新關機,並告知所有使用者

shutdown -h +10:十分鍾後關機

shutdown -h 12:1012:10關機

shutdown -h now:立即關機

shutdown -k The system will reboot 『:告知所有使用者要關機,但並不真執行

 

 

 

目錄配置

/:根目錄

/bin:存放可執行的系統執行檔

/boot:存放kernel

/dev:裝置或周邊設備

/etc:系統各種設定檔,如密碼,服務啟始檔 (最好常備份)

/homeusers的家目錄 (最好獨立partition)

/liblibrary

/lost+found:存放系統不正常錯誤時所產生的遺失片段

/mnt or /media:光碟機, 軟碟機, USB隨身碟..

/proc:虛擬檔案系統,存放記憶體中的重要資料

/rootroot的家目錄

/sbin:存放系統管理員專用的系統執行檔

/srv:服務啟動後,服務所需取用的目錄常放置於此

/tmp:暫存檔存放處 (最好獨立partition)

/usr:雷同windowsProgram files目錄 (最好獨立partition)

/usr/bin:一般使用者可使用的程式

/usr/sbin:系統管理員專用的程式

/usr/include/c/c++ header files放置處

/usr/local/:本機端自行安裝軟體的預設目錄

/usr/share:共享文件放置目錄

/usr/share/doc:存放說明文件

/usr/srcLinux的開放源碼

/var:系統中常態性變動的檔案,如logcache (最好獨立partition)

/var/cache:程式運作過程中的暫存檔

/var/lib:程式執行中所需的library

/var/loglog檔放置區,/var/log/messages總管所有登錄資訊 (常檢查)

/var/lock:被鎖住的資源(有些資源不允許同時使用,如印表機)

/var/run:有些程式啟動後,PID會放置在此目錄下

/var/spool:佇列資料存放處

 

 

 

套件管理

dpkg -l <套件名稱> 查詢套件的安裝資訊

 

dpkg -l|grep <套件名稱>:查詢包含關鍵字的套件名資訊

 

dpkg -L <套件名稱>:查詢套件包含的所有已安裝的檔案

 

apt-get remove <套件名稱>

刪除套件但不刪除設定檔(remove不再使用的相依packages)

 

apt-get purge remove <套件名稱>

刪除套件亦刪除設定檔(remove不再使用的相依packages)

 

dpkg -r <套件名稱> :刪除套件但不刪除設定檔(不會自動處理相依packages)

 

dpkg -P <套件名稱> 刪除套件亦刪除設定檔 (不會自動處理相依packages)

 

dpkg -c <.deb檔案名稱>:查詢deb套件檔包含的所有檔案

 

dpkg -I <.deb檔案名稱>:查詢deb套件檔的詳細資訊

 

dpkg -i <.deb檔案名稱>:安裝deb套件

 

dpkg -S <欲查詢的檔案名稱>:查詢該檔案有哪些套件提供

 

dpkg -s <套件名稱>:查詢已安裝套件的詳細資訊

 

dpkg configure -a:重新設定之前因中斷等還沒安裝好的套件

 

dpkg-checkbuilddeps:檢查需要的函式庫

 

dpkg-buildpackage:編譯套件 (需在原始碼的目錄下執行)

 

dpkg-reconfigure <套件名稱>:修改套件設定檔

 

apt-get install <套件名稱>:安裝套件

 

apt-reconfigure <套件名稱>:重新設定已安裝的套件

 

apt-get update

此指令會依照/ect/apt/sources.list裡的套件源去抓套件庫,

並把相關資訊存在/var/lib/apt/lists/下。

所以更改過/etc/apt/sources.list後,要記得執行此指令才能更新本地端的套件庫)

 

apt-get upgrade:僅更新沒有相依性問題的套件(安全更新,用在常規更新)

apt-get dist-upgrade:更新所有系統套件,若有相依性問題則會自動解決

(有風險的更新,因為系統會自動移除衝突的套件)

-f -y:遇到錯誤也強迫繼續 (高危險)

-s:只模擬安裝,不實際安裝到系統上

 

apt-get clean(清除/var/cache/apt/archives的套件暫存檔)

 

apt-get -b source <套件名稱>:下載原始檔

[包含原始碼(orig.tar.gz), 修正檔(diff.gz), 描述檔及前兩者的MD5 hash(dsc) ]

 

apt-get build-dep <套件名稱>:安裝編譯此套件所需要的套件

 

apt-build install <套件名稱>:最佳化安裝套件 (apt-build update 更新套件list)

 

apt-build reinstall install <套件名稱>:重新最佳化編譯已安裝過的套件

 

apt-cache search <關鍵字>:可以針對尚未安裝的套件作查詢

 

apt-cache search <關鍵字1>|grep <關鍵字2>

找尋套件資訊中含有關鍵字2的關鍵字1套件

 

apt-cache -n search <關鍵字>:找尋套件名稱含有關鍵字的套件

 

apt-cache show <套件名稱>:顯示套件詳細資訊及介紹

 

apt-cache showpkg <套件名稱>:顯示套件相依性及反相依性等資訊

 

apt-cache showsrc <套件名稱>:取得編譯所需的套件名稱

 

apt-cache depends <套件名稱>:顯示套件相依性等資訊

 

apt-cache rdepends <套件名稱>:顯示套件反相依性等資訊

 

apt-file search :透過已知檔名,來找歸屬之套件

 

auto-apt run ./configure:若configure遇到缺少的套件,會自動詢問是否安裝

 

 

 

檔案系統

 

fdisk [/dev/hda or /dev/sda]:磁碟分割 (編輯partition table)

常用指令:sudo fdisk -l (顯示系統所有的partition, 沒有加sudo只看的到windows partition~)

 

mke2fs [option] [device]:格式化ex2/ex3 (Dos下的format)

-j:加入journal (日誌),即以ex3方式格式化

 

mkfs [option [device:可選擇以特定檔案格式做格式化

-t:選擇特定檔案格式

常用指令:以ls -l /sbin/mkfs* 可以查看系統有的、可以支援的檔案格式

 

dumpe2fs:印出ex2/ex3檔案系統的資訊

 

e2fsck:主機突然當機時,用來檢查metadata與實際資料是否一致 (windowsscandisk)

 

fsck:檢查並修復檔案系統,通常用在主機不正常關機或切割新partition時,

用來檢metadata與實際資料是否一致。

fsck處理完後,有任何錯誤的檔案都會丟到/lost+found目錄下。

執行fsckpartition,切記不可掛載在系統上,否則會有磁碟資料毀損的風險。

 

tune2fs:調整ex2/ex3檔案系統的參數

 

df [option]..[File]:顯示磁碟使用資訊

-h:較易閱讀的格式

-T:顯示該partitionfile system格式

-i:顯示inode數量

 

du:估計檔案佔用的空間

-h:較易閱讀的格式

-s:僅顯示總量

常用指令:sudo du -sh /* (顯示根目錄下每個目錄佔用的磁碟大小)

 

mount :顯示系統所有分割區相關的filesystem及掛載點。

-t:指定掛載的檔案格式

--bind:目錄掛載目錄(remount a subtree)

-o:帳號、密碼、讀取權限

-o loop:掛載檔案(虛擬磁碟機)

-amount fstab中的file system (通常改完fstab, 都用此指令來測試是否正確)

 

umount:卸載裝置檔案

 

開機自動mount

sudo vim /etc/fstab (file system table)

(實際會更新/etc/mtab /proc/mounts,若進入單人模式,且在read only狀態時,

輸入mount -t -o remount, rw / 就可更動/etc/mtab)

 

壓縮

zcat:查看.gz壓縮檔的內容.

gzip:解or.gz

-d:解壓縮gz

tar -zxvf XXX.tar.gz:解tar.gz

tar -zcvf destinationFile(.tar.gz) SourceFile:打包成tar.gz

tar -ztvf XXX.tar.gz:查看tar.gz的內容

dd:可備份整顆partitiondisk

cpio:可備份(包括/dev)所有的檔案

 

密碼

/etc/passed

/etc/shadow

 

Editor

vimtutor:查閱vim 手冊

 

(X Window)

[Ctrl] + [Alt] + [F1] ~ [F6] :文字介面登入 tty1 ~ tty6 終端機

 

[Ctrl] + [Alt] + [F7] :圖形介面桌面。

相簿設定
標籤設定
相簿狀態