導航:首頁 > 編程系統 > linuxopenondelay

linuxopenondelay

發布時間:2025-02-08 07:45:07

A. linux的常用命令及技巧

一。 通用命令:
1. date :print or set the system date and time2. stty -a: 可以查看或者列印控制字元(Ctrl-C, Ctrl-D, Ctrl-Z等)3. passwd: print or set the system date and time (用passwd -h查看)4. logout, login: 登錄shell的登錄和注銷命令5. pwd: print or set the system date and time6. more, less, head tail: 顯示或部分顯示文件內容.7. lp/lpstat/cancel, lpr/lpq/lprm: 列印文件.8. 更改文件許可權: chmod u+x...9. 刪除非空目錄:rm -fr dir10.拷貝目錄: cp -R dir11. fg jobid :可以將一個後台進程放到前台。Ctrl-z 可以將前台進程掛起(suspend), 然後可以用bg jobid 讓其到後台運行。job & 可以直接讓job直接在後台運行。12. kill 的作用: send a signal to a process. eg: kill -9 發送的是SIG_KILL信號。。。 具體發送什麼信號 可以通過 man kill 查看。13. ps 的用法, ps -e 或 ps -o pid,ppid,session,tpgid, comm (其中session顯示的sessionid, tpgid顯示前台進程組id, comm顯示命令名稱。)二 .ubuntu常用命令:
1. dpkg: package manager for Debian* 安裝: dpkg -i package* 卸載: dpkg -r package* 卸載並刪除配置文件: dpkg -P |--purge package* 如果安裝一個包時。說依賴某些庫。 可以先 apt-get install somelib...* 查看軟體包安裝內容 :dpkg -L package* 查看文件由哪個軟體包提供: dpkg -S filename* 另外 dpkg還有 dselect和aptitude 兩個frontend.2. apt* 安裝: apt-get install packs* apt-get update : 更新源* apt-get upgrade: 升級系統。* apt-get dist-upgrade: 智能升級。安裝新軟體包,刪除廢棄的軟體包* apt-get -f install : -f == --fix broken 修復依賴* apt-get autoremove: 自動刪除無用的軟體* apt-get remove packages :刪除軟體* apt-get remove package --purge 刪除包並清除配置文件* 清除所以刪除包的殘余配置文件: dpkg -l |grep ^rc|awk '{print $2}' |tr [/n] [ ]|sudo xargs dpkg -P* 安裝軟體時候包的臨時存放目錄 : /var/cache/apt/archives* 清除該目錄: apt-get clean* 清除該目錄的舊版本的軟體緩存: apt-get autoclean* 查詢軟體some的依賴包: apt-cache depends some* 查詢軟體some被哪些包依賴: apt-get rdepends some* 搜索軟體: apt-cache search name|regexp* 查看軟體包的作用:apt-cache show package* 查看一個軟體的編譯依賴庫: apt-cache showsrc packagename|grep Build-Depends* 下載軟體的源代碼 : apt-get source packagename (注: sources.list 中應該有 deb-src 源)* 安裝軟體包源碼的同時, 安裝其編譯環境 :apt-get build-dep packagename (有deb-src源)* 如何將本地光碟加入安裝源列表: apt-cdrom add3. 系統命令:* 查看內核版本: uname -a* 查看ubuntu 版本: cat /etc/issue* 查看網卡狀態 : ethtool eth0* 查看內存,cpu的信息: cat /proc/meminfo ; cat /proc/cpuinfo(/proc下面的有很多系統信息)* 列印文件系統空間使用情況: df -h* 查看硬碟分區情況: fdisk -l* 產看文件大小: -h filename;* 查看目錄大小: -hs dirname ; -h dirname是查看目錄下所有文件的大小* 查看內存的使用: free -m|-g|-k* 查看進程: ps -e 或ps -aux -->顯示用戶* 殺掉進程: kill pid* 強制殺掉: killall -9 processname4. 網路相關: * 配置 ADSL: sudo pppoeconf* ADSL手工撥號: sudo pon dsl-provider* 激活 ADSL : sudo /etc/ppp/pppoe_on_boot* 斷開 ADSL: sudo poff* 根據IP查網卡地址: arping IP地址* 產看本地網路信息(包括ip等): ifconfig | ifconfig eth0* 查看路由信息: netstat -r* 關閉網卡: sudo ifconfig eth0 down* 啟用網卡: sudo ifconfig eth0 up* 添加一個服務: sudo update-rc.d 服務名 defaults 99* 刪除一個服務: sudo update-rc.d 服務名 remove* 臨時重啟一個服務: /etc/init.d/服務名 restart* 臨時關閉一個服務: /etc/init.d/服務名 stop* 臨時啟動一個服務: /etc/init.d/服務名 start* 控制台下顯示中文: sudo apt-get install zhcon* 查找某個文件: whereis filename 或 find 目錄 -name 文件名*通過ssh傳輸文件scp -rp /path/filename username@remoteIP:/path #將本地文件拷貝到伺服器上scp -rp username@remoteIP:/path/filename /path #將遠程文件從伺服器下載到本地5. 壓縮:*解壓縮 a.tar.gz: tar zxvf a.tar.gz*解壓縮 a.tar.bz2: tar jxvf a.tar.bz2*壓縮aaa bbb目錄為xxx.tar.gz: tar zcvf xxx.tar.gz aaa bbb*壓縮aaa bbb目錄為xxx.tar.bz2: tar jcvf xxx.tar.bz2 aaa bbb
6. Nautilus:特殊 URI 地址* computer:/// - 全部掛載的設備和網路* network:/// - 瀏覽可用的網路* burn:/// - 一個刻錄 CDs/DVDs 的數據虛擬目錄* smb:/// - 可用的 windows/samba 網路資源* x-nautilus-desktop:/// - 桌面項目和圖標* file:/// - 本地文件* trash:/// - 本地回收站目錄* ftp:// - FTP 文件夾* ssh:// - SSH 文件夾* fonts:/// - 字體文件夾,可將字體文件拖到此處以完成安裝* themes:/// - 系統主題文件夾* 顯示隱藏文件: Ctrl+h* 顯示地址欄: Ctrl+l* 查看已安裝字體: 在nautilus的地址欄里輸入」fonts:///「,就可以查看本機所有的fonts
7.補充部分:
* 查看本地所有的tpc,udp監聽埠: netstat -tupln (t=tcp, u=udp, p=program, l=listen, n=numric)* 通過man搜說相關命令: man -k keyword . eg: man -k user* 或者用 apropos* 統計文件所佔用的實際磁碟空間: ( - estimate file space usage)* 統計文件中的字元,位元組數: wc -c/-l/-w (wc - print the number of newlines, words, and bytes in files)* 查看文件的內容: od -x/-c/.... (od - mp files in octal and other formats)我認為od最有用的就是文件的位元組流了: od -t x1 filename查看文件的 Ascii 碼形式: od -t c filename (其中統計信息最左邊的是: 位元組數)* 查找命令所在文件的位置: which od 輸出: /usr/bin/od查看該文件由哪個包提供: dpkg -S /usr/bin/od 輸出: coreutils: /usr/bin/od再查看coreutils包的全部內容就知道了linux的核心命令: dpkg -L coreutils然後 info coreutils 哈哈,認真學吧, 滿世界都是命令!* 可以用man 命令產看某個命令的所有section 的解釋: man -a tty然後用q,和next 轉換到下一個section的解釋* bash 的好用的快捷鍵:ctrl+a:游標移到行首。ctrl+b:游標左移一個字母ctrl+c:殺死當前進程。ctrl+d:退出當前 Shell。ctrl+e:游標移到行尾。ctrl+h:刪除游標前一個字元,同 backspace 鍵相同。ctrl+k:清除游標後至行尾的內容。ctrl+l:清屏,相當於clear。ctrl+r:搜索之前打過的命令。會有一個提示,根據你輸入的關鍵字進行搜索bash的historyctrl+u: 清除游標前至行首間的所有內容。ctrl+w: 移除游標前的一個單詞ctrl+t: 交換游標位置前的兩個字元ctrl+y: 粘貼或者恢復上次的刪除ctrl+d: 刪除游標所在字母;注意和backspace以及ctrl+h的區別,這2個是刪除游標前的字元ctrl+f: 游標右移ctrl+z : 把當前進程轉到後台運行,使用』 fg 『命令恢復。比如top -d1 然後ctrl+z ,到後台,然後fg,重新恢復* 快速粘貼:先在一個地方選中文字,在欲粘貼的地方按滑鼠 中鍵 即可。* 等效中鍵:a 、按下滑輪等效於中鍵。b、同時按下滑鼠 左右鍵,等效於中鍵。* 快速重啟X服務: 同時按下: Alt + Ctrl + Backspace 三個鍵。* 打開運行窗口: 同時按下 Alt + F2 鍵。* 戴屏: a、全屏:直接按下 PrtScr 鍵。b、當前窗口:同時按下 Alt + PrtScr 鍵。c、延時戴屏:在 終端 或 運行窗口中輸入命令: gnome-screenshot --delay 3 ,將延時 3 秒後戴屏。* 直接將 文件管理器 中的文件拖到 GNOME終端 中就可以在終端中得到完整的路徑名。 8.ulimitulimit:顯示(或設置)用戶可以使用的資源的限制(limit),這限制分為軟限制(當前限制)和硬限制(上限),其中硬限制是軟限制的上限值,應用程序在運行過程中使用的系統資源不超過相應的軟限制,任何的超越都導致進程的終止。ulimited 不限制用戶可以使用的資源,但本設置對可打開的最大文件數(max open files)和可同時運行的最大進程數(max user processes)無效-a 列出所有當前資源極限-c 設置core文件的最大值.單位:blocks-d 設置一個進程的數據段的最大值.單位:kbytes-f Shell 創建文件的文件大小的最大值,單位:blocks-h 指定設置某個給定資源的硬極限。如果用戶擁有 root 用戶許可權,可以增大硬極限。任何用戶均可減少硬極限-l 可以鎖住的物理內存的最大值-m 可以使用的常駐內存的最大值,單位:kbytes-n 每個進程可以同時打開的最大文件數-p 設置管道的最大值,單位為block,1block=512bytes-s 指定堆棧的最大值:單位:kbytes-S 指定為給定的資源設置軟極限。軟極限可增大到硬極限的值。如果 -H 和 -S 標志均未指定,極限適用於以上二者-t 指定每個進程所使用的秒數,單位:seconds-u 可以運行的最大並發進程數-v Shell可使用的最大的虛擬內存,單位:kbyteseg: ulimit -c 1000(可以先通過ulimit -c 查看原來的值)

B. 如何查看Linux下進程的IO活動狀況 00 Hey,Linux

前段時間,幾台測試伺服器的Web應用響應速度非常慢,系統負載也比較高,> 10, 但CPU和內存卻很閑,於是懷疑是磁碟的性能瓶頸,通過vmstat和iostat看到IO的讀寫量非常大,尤其是用iostat -x 1命令可以很直觀的看到IO的使用率一直在100%。
但究竟是什麼進程導致的高IO呢,由於每台伺服器上都有JBoss和MySQL的存在,JBoss會不停的產生很多小的數據文件和生成文本資料庫的數據,而MySQL則會不停的從Master同步新的數據。因此我們懷疑是這兩個進程導致的高IO,通過停止了JBoss和MySQL之後,IO立刻降為0%. 但我們還是不能確定誰是主因,於是尋找可以查看特定進程IO的方法。
最後,找到了兩個方法可以查看進程IO的活動狀況。
1. 第一個方法是通過一個python腳本來實現。
方法是將以下內容另存為一個叫io.py的腳本中,然後直接以root身份執行腳本,就可以看到如下圖所示的信息(由於我們已經通過升級到SSD硬碟解決了MySQL的IO問題,所以不能提供關於MySQL的截圖了),其中出現次數最多,數據最大的進程,就是導致高IO的主因。不過比較遺憾的是這個腳本並不能顯示進程在每一秒的准確的IO讀寫。

# vim io.py
# chmod +x io.py
# ./io.py
#!/usr/bin/python
# Monitoring per-process disk I/O activity
# written by http://www.vpsee.com

import sys, os, time, signal, re

class DiskIO:
def __init__(self, pname=None, pid=None, reads=0, writes=0):
self.pname = pname
self.pid = pid
self.reads = 0
self.writes = 0

def main():
argc = len(sys.argv)
if argc != 1:
print "usage: ./iotop"
sys.exit(0)

if os.getuid() != 0:
print "must be run as root"
sys.exit(0)

signal.signal(signal.SIGINT, signal_handler)
os.system('echo 1 > /proc/sys/vm/block_mp')
print "TASK PID READ WRITE"
while True:
os.system('dmesg -c > /tmp/diskio.log')
l = []
f = open('/tmp/diskio.log', 'r')
line = f.readline()
while line:
m = re.match(\
'^(\S+)\((\d+)\): (READ|WRITE) block (\d+) on (\S+)', line)
if m != None:
if not l:
l.append(DiskIO(m.group(1), m.group(2)))
line = f.readline()
continue
found = False
for item in l:
if item.pid == m.group(2):
found = True
if m.group(3) == "READ":
item.reads = item.reads + 1
elif m.group(3) == "WRITE":
item.writes = item.writes + 1
if not found:
l.append(DiskIO(m.group(1), m.group(2)))
line = f.readline()
time.sleep(1)
for item in l:
print "%-10s %10s %10d %10d" % \
(item.pname, item.pid, item.reads, item.writes)

def signal_handler(signal, frame):
os.system('echo 0 > /proc/sys/vm/block_mp')
sys.exit(0)

if __name__=="__main__":
main()

2. 另一個方法是將Linux的內核升級到 >=2.6.20,然後安裝一個iotop軟體來實現。
不過這種改動並不適用於生產環境,因為在RHEL5.6和5.7上,內核都在 2.6.20以下。但是它所顯示的結果是非常准確的,所以對於新上線的機器以及測試環境,非常值得一試,具體方法如下:

下載和升級新內核(>=2.6.20),編譯時打開 TASK_DELAY_ACCT 和 TASK_IO_ACCOUNTING 選項。
解壓內核後進入配置界面:
# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.tar.gz
# tar jxvf linux-2.6.39.tar.gz
# mv linux-2.6.39 /usr/src/
# cd /usr/src/linux-2.6.39
# make oldconfig //使用make oldconfig可以繼承老的kernel的配置,為自己的配置省去很多麻煩。
# make menuconfig
把General setup - Enable per-task storage I/O accounting這個選項選上。

# vim .config
將#CONFIG_SYSFS_DEPRECATED_V2 is not set的注釋去掉的,將其改為y,即修改為CONFIG_SYSFS_DEPRECATED_V2=y。
保存內核後編譯內核:
# make
# make moles
# make moles_install
# make install
修改默認以新的內核啟動:
# vi /boot/grub/grub.conf
default=0
將新的內核配置文件復制到/boot目錄:
# cp /usr/src/linux-2.6.39/.config /boot/config-2.6.39
重啟伺服器:
# reboot
# uname –r
2.6.39
重啟完成後確認內核版本是否正確。
源碼安裝iotop所需的Python 2.7.2(>= 2.5):
# wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
# tar xzvf Python-2.7.2.tgz
# cd Python-2.7.2
# ./configure
# make; make install
下載並安裝iotop:
# wget http://guichaz.free.fr/iotop/files/iotop-0.4.4.tar.bz2
# tar -xjvf iotop-0.4.4.tar.bz2
# cd iotop-0.4.4
# python setup.py build
# python setup.py install
然後就可以使用iotop看到如下圖所示的信息:

閱讀全文

與linuxopenondelay相關的資料

熱點內容
戶戶通新版本 瀏覽:821
ps上文件怎麼導入ae 瀏覽:599
wordpress後台插件 瀏覽:493
怎麼把excel文件添加到word里 瀏覽:32
如何看b站直播數據的有效觀看 瀏覽:19
分布式文件系統和分布式資料庫 瀏覽:447
ipad怎麼下載不要密碼 瀏覽:910
ui和編程哪個難學 瀏覽:910
搜c語言編程題答案用什麼軟體 瀏覽:63
linux和android 瀏覽:722
手機下載文件到u盤顯示系統錯誤 瀏覽:197
手機韓語app怎麼說 瀏覽:185
如何申請免費網站 瀏覽:119
qq會員刷等級積分嗎 瀏覽:622
文件另存為時自動保存到哪裡去 瀏覽:507
微信小程序代碼 瀏覽:69
asp文件的存取方式 瀏覽:135
手機OA系統文件打不開 瀏覽:184
蘋果手機界面怎麼編輯文件 瀏覽:442
三星plc如何接編程線 瀏覽:345

友情鏈接