Ubuntu命令技巧
Ubuntu命令技巧
前言
下面的命令大都需要在 控制檯 / 終端 / shell 下輸入。
控制檯, 終端, 和 shell 意味著同樣一件事 - 一個命令列介面, 他可以用來控制系統。
開啟一個控制檯:
應用程式 --> 附件 --> 終端
任何一個使用 'sudo' 作為字首的命令都需要擁有管理員 (或 root) 訪問許可權。 所以你會被提示輸入你自己的密碼。
安裝升級
檢視軟體xxx安裝內容
dpkg -L xxx
查詢軟體庫中的軟體
apt-cache search 正規表示式 或 aptitude search 軟體包
顯示系統安裝包的統計資訊
apt-cache stats
顯示系統全部可用包的名稱
apt-cache pkgnames
顯示包的資訊
apt-cache show k3b
查詢檔案屬於哪個包
apt-file search filename
檢視已經安裝了哪些包
dpkg -l
查詢軟體xxx依賴哪些包
apt-cache depends xxx
查詢軟體xxx被哪些包依賴
apt-cache rdepends xxx
增加一個光碟源
sudo apt-cdrom add
系統更新
sudo apt-get update (這一步更新包列表) sudo apt-get dist-upgrade (這一步安裝所有可用更新) 或者 sudo apt-get upgrade (這一步安裝應用程式更新,不安裝新核心等)
清除所有已刪除包的殘餘配置檔案
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
如果報如下錯誤,證明你的系統中沒有殘留配置檔案了,無須擔心。
dpkg: --purge needs at least one package name argument
Type dpkg --help for help about installing and deinstalling packages [*];
Use `dselect' or `aptitude' for user-friendly package management;
Type dpkg -Dhelp for a list of dpkg debug flag values;
Type dpkg --force-help for a list of forcing options;
Type dpkg-deb --help for help about manipulating *.deb files;
Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*].
Options marked [*] produce a lot of output - pipe it through `less' or `more' !
編譯時缺少h檔案的自動處理
sudo auto-apt run ./configure
檢視安裝軟體時下載包的臨時存放目錄
ls /var/cache/apt/archives
備份當前系統安裝的所有包的列表
dpkg --get-selections | grep -v deinstall > ~/somefile
從上面備份的安裝包的列表檔案恢復所有包
dpkg --set-selections < ~/somefile sudo dselect
清理舊版本的軟體快取
sudo apt-get autoclean
清理所有軟體快取
sudo apt-get clean
刪除系統不再使用的孤立軟體
sudo apt-get autoremove
檢視包在伺服器上面的地址
apt-get -qq --print-uris install ssh | cut -d/' -f2
徹底刪除Gnome
apt-get --purge remove liborbit2
徹底刪除KDE
apt-get --purge remove libqt3-mt libqtcore4
一鍵安裝 LAMP 服務
sudo tasksel install lamp-server
刪除舊核心
sudo aptitude purge ~ilinux-image-.*/(/!`uname -r`/)
匯入ppa源的key值
#W: GPG簽名驗證錯誤: http://ppa.launchpad.net jaunty Release: 由於沒有公鑰,下列簽名無法進行驗證: NO_PUBKEY 5126890CDCC7AFE0 sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 5126890CDCC7AFE0 #5126890CDCC7AFE0替換為你需要匯入的Key值
增加一個ppa源
sudo add-apt-repository ppa:user/ppa-name #使用 ppa 的地址替換 ppa:user/ppa-name
系統升級
-
這裡指的是版本間的升級,例如 9.04=>10.04。
-
使用該升級方式通常需要使能 backports 源。
sudo apt-get update sudo apt-get install update-manager-core sudo do-release-upgrade
系統
檢視核心
uname -a
檢視系統是32位還是64位
#檢視long的位數,返回32或64 getconf LONG_BIT #檢視檔案資訊,包含32-bit就是32位,包含64-bit就是64位 file /sbin/init
檢視Ubuntu版本
cat /etc/issue 或 cat /etc/lsb-release 或 lsb_release -dsc
檢視核心載入的模組
lsmod
檢視PCI裝置
lspci
檢視USB裝置
lsusb #加引數 -v 可以顯示USB裝置的描述表(descriptors) lsusb -v
檢視網路卡狀態
sudo apt-get install ethtool sudo ethtool eth0
啟用網路卡的 Wake-on-LAN
sudo apt-get install wakeonlan 或 sudo ethtool -s eth0 wol g
檢視CPU資訊
cat /proc/cpuinfo
顯示當前硬體資訊
sudo lshw
獲取CPU序列號或者主機板序列號
#CPU ID sudo dmidecode -t 4 | grep ID #Serial Number sudo dmidecode | grep Serial #CPU sudo dmidecode -t 4 #BIOS sudo dmidecode -t 0 #主機板: sudo dmidecode -t 2 #OEM: sudo dmidecode -t 11
顯示當前記憶體大小
free -m |grep "Mem" | awk '{print $2}'
檢視硬碟溫度
sudo apt-get install hddtemp sudo hddtemp /dev/sda
顯示系統執行時間
uptime
檢視系統限制
ulimit -a
檢視核心限制
ipcs -l
檢視當前螢幕解析度
xrandr
硬碟
檢視硬碟的分割槽
sudo fdisk -l
硬碟分割槽
#危險!小心操作。 sudo fdisk /dev/sda
硬碟格式化
#危險!將第一個分割槽格式化為 ext3 分割槽, mkfs.reiserfs mkfs.xfs mkfs.vfat sudo mkfs.ext3 /dev/sda1
硬碟檢查
#危險!檢查第一個分割槽,請不要檢查已經掛載的分割槽,否則容易丟失和損壞資料 sudo fsck /dev/sda1
分割槽掛載
sudo mount -t 檔案系統型別 裝置路經 訪問路經 #常用檔案型別如下: iso9660 光碟機檔案系統, vfat fat/fat32分割槽, ntfs ntfs分割槽, smbfs windows網路共享目錄, reiserfs、ext3、xfs Linux分割槽 #如果中文名無法顯示嘗試在最後增加 -o nls=utf8 或 -o iocharset=utf8 #如果需要掛載後,普通使用者也可以使用,在 -o 的引數後面增加 ,umask=022 如:-o nls=utf8,umask=022
分割槽解除安裝
sudo umount 目錄名或裝置名
只讀掛載ntfs分割槽
sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c
可寫掛載ntfs分割槽
sudo mount -t ntfs-3g -o locale=zh_CN.utf8,umask=0 /dev/sdb1 /mnt/c
掛載fat32分割槽
sudo mount -t vfat -o iocharset=utf8,umask=0 /dev/sda1 /mnt/c
掛載共享檔案
sudo mount -t smbfs -o username=xxx,password=xxx,iocharset=utf8 //192.168.1.1/share /mnt/share
掛載ISO檔案
sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso
檢視IDE硬碟資訊
sudo hdparm -i /dev/hda
檢視軟raid陣列資訊
cat /proc/mdstat
參看硬raid陣列資訊
dmesg |grep -i raid cat /proc/scsi/scsi
檢視SATA硬碟資訊
sudo hdparm -I /dev/sda 或 sudo apt-get install blktool sudo blktool /dev/sda id
檢視硬碟剩餘空間
df
用法:df [選項]... [檔案]...顯示每個<檔案>所在的檔案系統的資訊,預設是顯示所有檔案系統。
長選項必須用的引數在使用短選項時也是必需的。 -a, --all 包括大小為 0 個塊的檔案系統 -B, --block-size=大小 塊以指定<大小>的位元組為單位 -h, --human-readable 以容易理解的格式印出檔案系統大小 (例如 1K 234M 2G) -H, --si 類似 -h,但取 1000 的次方而不是 1024 -i, --inodes 顯示 inode 資訊而非塊使用量 -k 即 --block-size=1K -l, --local 只顯示本機的檔案系統 --no-sync 取得使用量資料前不進行同步動作 (預設) -P, --portability 使用 POSIX 相容的輸出格式 --sync 取得使用量資料前先進行同步動作 -t, --type=型別 只印出指定檔案系統為指定<型別>的資訊 -T, --print-type 印出檔案系統型別 -x, --exclude-type=型別 只印出檔案系統不是指定<型別>資訊 -v (忽略) --help 顯示此幫助資訊並離開 --version 顯示版本資訊並離開
檢視目錄佔用空間
du -hs 目錄名
優盤沒法解除安裝
sync fuser -km /media/usbdisk
使用檔案來增加交換空間
#建立一個512M的交換檔案 /swapfile sudo dd if=/dev/zero of=/swapfile bs=1M count=512 sudo mkswap /swapfile sudo swapon /swapfile #sudo vim /etc/fstab #加到fstab檔案中讓系統引導時自動啟動 /swapfile swap swap defaults 0 0
檢視硬碟當前讀寫情況
# 首先安裝 sysstat 包 sudo apt-get install sysstat #每2秒重新整理一次 sudo iostat -x 2
程式
檢視當前的記憶體使用情況
free
usage: free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]
-b,-k,-m,-g show output in bytes, KB, MB, or GB -l show detailed low and high memory statistics -o use old format (no -/+buffers/cache line) -t display total for RAM + swap -s update every [delay] seconds -c update [count] times -V display version information and exit
連續監視記憶體使用情況
watch -d free # 使用 Ctrl + c 退出
動態顯示程式執行情況
top top指令執行時輸入H或?開啟幫助視窗,輸入Q退出指令。
檢視當前有哪些程式
ps -AFL
檢視目前登入使用者執行的程式
w
檢視當前使用者程式實際記憶體佔用,並排序
ps -u $USER -o pid,rss,cmd --sort -rss
統計程式的記憶體耗用
ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'|sort -k2 -nr
按記憶體從大到小排列程式
ps -eo "%C : %p : %z : %a"|sort -k5 -nr
按cpu利用率從大到小排列程式
ps -eo "%C : %p : %z : %a"|sort -nr
檢視當前程式樹
pstree
中止一個程式
kill 程式號(就是ps -A中的第一列的數字) 或者 killall 程式名
強制中止一個程式(在上面程式中止不成功的時候使用)
kill -9 程式號 或者 killall -9 程式名
圖形方式中止一個程式
xkill 出現骷髏標誌的滑鼠,點選需要中止的程式即可
檢視程式開啟的檔案
lsof -p 程式的pid
顯示開啟檔案abc.txt的程式
lsof abc.txt
顯示22埠現在執行什麼程式
lsof -i :22
顯示nsd程式現在開啟的檔案
lsof -c nsd
在後臺執行程式,退出登入後,並不結束程式
nohup 程式 & #檢視中間執行情況 tail nohup
在後臺執行互動式程式,退出登入後,並不結束程式
sudo apt-get install screen screen vim a.txt #直接退出後使用 screen -ls # 1656.pts-0.ubuntu (Detached) screen -r 1656 #恢復 #熱鍵,同時按下Ctrl和a鍵結束後,再按下功能鍵 C-a ? #顯示所有鍵繫結資訊 C-a w #顯示所有視窗列表 C-a C-a #切換到之前顯示的視窗 C-a c #建立一個新的執行shell的視窗並切換到該視窗 C-a n #切換到下一個視窗 C-a p #切換到前一個視窗(與C-a n相對) C-a 0..9 #切換到視窗0..9 C-a a #傳送 C-a到當前視窗 C-a d #暫時斷開screen會話 C-a k #殺掉當前視窗
詳細顯示程式的執行資訊
strace -f -F -o outfile <cmd>
增加系統最大開啟檔案個數
echo 4096 > /proc/sys/fs/file-max #或者 ulimit -n 4096
清除殭屍程式
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | xargs sudo kill -9
將大於120M記憶體的php-cgi都殺掉
ps -eo pid,fname,rss|grep php-cgi|grep -v grep|awk '{if($3>=120000) print $1}' | xargs sudo kill -9
Linux系統中如何限制使用者程式CPU佔用率
renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > 500) print $2}'` #或直接編輯/etc/security/limits.conf檔案。
ADSL
配置 ADSL
sudo pppoeconf
ADSL手工撥號
sudo pon dsl-provider
啟用 ADSL
sudo /etc/ppp/pppoe_on_boot
斷開 ADSL
sudo poff
檢視撥號日誌
sudo plog
如何設定動態域名
#首先去 http://www.3322.org 申請一個動態域名 #然後修改 /etc/ppp/ip-up 增加撥號時更新域名指令 sudo vim /etc/ppp/ip-up #在最後增加如下行 w3m -no-cookie -dump 'http://username:password@members.3322.org/dyndns/update?system=dyndns&hostname=yourdns.3322.org'
網路
根據IP查網路卡地址
arping IP地址
根據IP查電腦名
nmblookup -A IP地址
檢視當前IP地址
ifconfig eth0 |awk '/inet/ {split($2,x,":");print x[2]}'
檢視當前外網的IP地址
w3m -no-cookie -dump www.ip138.com/ip2city.asp|grep -o '[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}' w3m -no-cookie -dump ip.loveroot.com|grep -o '[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}' curl ifconfig.me
檢視當前監聽80埠的程式
lsof -i :80
檢視當前網路卡的實體地址
ifconfig eth0 | head -1 | awk '{print $5}'
同一個網路卡增加第二個IP地址
#在網路卡eth0上增加一個1.2.3.4的IP: sudo ifconfig eth0:0 1.2.3.4 netmask 255.255.255.0 #刪除增加的IP: sudo ifconfig eth0:0 down
立即讓網路支援nat
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward sudo iptables -t nat -I POSTROUTING -j MASQUERADE
檢視路由資訊
netstat -rn sudo route -n
手工增加一條路由
sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
手工刪除一條路由
sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1
修改網路卡MAC地址的方法
sudo ifconfig eth0 down #關閉網路卡 sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #然後改地址 sudo ifconfig eth0 up #然後啟動網路卡
永久改地址方法
sudo gedit /etc/network/interfaces
在 iface eth0 inet static 後面新增一行:
pre-up ifconfig eth0 hw ether 01:01:01:01:01:01
配置檔案應該像如下
iface eth0 inet static pre-up ifconfig eth0 hw ether 01:01:01:01:01:01 address 192.168.1.10 netmask 255.255.255.0 gateway 192.168.1.1
最後是 logout 或者reboot
統計當前IP連線的個數
netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
統計當前所有IP包的狀態
netstat -nat|awk '{print awk $NF}'|sort|uniq -c|sort -n
統計當前20000個IP包中大於100個IP包的IP地址
tcpdump -tnn -c 20000 -i eth0 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | awk ' $1 > 100 '
遮蔽IPV6
echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6
察看當前網路連線狀況以及程式
sudo netstat -atnp
檢視網路連線狀態
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
檢視當前系統所有的監聽埠
nc -zv localhost 1-65535
檢視網路的當前流量
#安裝 ethstatus 軟體 sudo apt-get install ethstatus #檢視 ADSL 的速度 sudo ethstatus -i ppp0 #檢視 網路卡 的速度 sudo ethstatus -i eth0 #或安裝 bwm-ng sudo apt-get install bwm-ng #檢視當前網路流量 bwm-ng
檢視域名的註冊備案情況
whois baidu.cn
檢視到某一個域名的路由情況
tracepath baidu.cn
重新從伺服器獲得IP地址
sudo dhclient
從當前頁面開始映象整個網站到本地
wget -r -p -np -k http://www.21cn.com · -r:在本機建立伺服器端目錄結構; · -p: 下載顯示HTML檔案的所有圖片; · -np:只下載目標站點指定目錄及其子目錄的內容; · -k: 轉換非相對連結為相對連結。
如何多執行緒下載
sudo apt-get install axel axel -n 5 http://xxx.xxx.xxx.xxx/xxx.zip 或者 lftp -c "pget -n 5 http://xxx.xxx.xxx.xxx/xxx.zip“
如何檢視HTTP頭
w3m -dump_head http://www.example.com 或 curl --head http://www.example.com
快速使用http方式共享目錄
#進入需要共享的目錄後執行: python -m SimpleHTTPServer #其它電腦使用http://ip:8000 來訪問 #自定義埠為8080: python -m SimpleHTTPServer 8080
SSH 遠端埠轉發
ssh -v -CNgD 7070 username@sshhostipaddress
監控網路所有的tcp資料
sudo apt-get install snort #安裝snort入侵檢測程式 sudo snort -vde
iptables
防止外網用內網IP欺騙
#eth0 為外網網路卡 sudo iptables -t nat -A PREROUTING -i eth0 -s 10.0.0.0/8 -j DROP sudo iptables -t nat -A PREROUTING -i eth0 -s 172.16.0.0/12 -j DROP sudo iptables -t nat -A PREROUTING -i eth0 -s 192.168.0.0/16 -j DROP
檢視nat規則
sudo iptables -t nat -L
檢視filter規則
sudo iptables -L -n
取消nat規則
sudo iptables -t nat -F
取消filter規則
sudo iptables -F
阻止一個IP連線本機
#規則位於最後 sudo iptables -t filter -A INPUT -s 192.168.1.125 -i eth0 -j DROP
關閉 1234 埠
sudo iptables -A OUTPUT -p tcp --dport 1234 -j DROP
開啟 80 埠
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
禁止一個IP或者一個IP段訪問伺服器埠服務
#80埠 ,規則插入到前面 sudo iptables -t filter -I INPUT -s 192.168.2.0/24 -p tcp --dport http -j DROP #21埠,規則插入到前面 sudo iptables -t filter -I INPUT -s 192.168.1.23 -p tcp --dport ftp -j DROP
安全
檢查本地是否存在安全隱患
sudo apt-get install rkhunter sudo rkhunter --checkall
如何安裝防毒軟體
sudo apt-get install clamav clamscan -r ~/
Linux下可以使用的商業防毒軟體
卡巴斯基(deb): http://www.kaspersky.com/productupdates?chapter=146274389 avast!(免費/deb): http://www.avast.com/eng/download-avast-for-linux-edition.html 小紅傘(gz): http://www.avira.com/en/downloads/avira_antivir_professional.html BitDefender(位元梵德/run):http://download.bitdefender.com/SMB/Workstation_Security_and_Management/BitDefender_Antivirus_Scanner_for_Unices/Unix/Current/EN_FR_BR_RO/Linux/
申請位元梵德的KEY:http://www.bitdefender.com/site/Products/ScannerLicense/
服務
新增一個服務
sudo update-rc.d 服務名 defaults 99
刪除一個服務
sudo update-rc.d 服務名 remove
臨時重啟一個服務
/etc/init.d/服務名 restart
臨時關閉一個服務
/etc/init.d/服務名 stop
臨時啟動一個服務
/etc/init.d/服務名 start
使用者管理
增加使用者
sudo adduser 使用者名稱
刪除使用者
sudo deluser 使用者名稱
修改當前使用者的密碼
passwd
修改使用者密碼
sudo passwd 使用者名稱
修改使用者資料
sudo chfn userid
如何禁用/啟用某個帳戶
sudo usermod -L 使用者名稱 #鎖定使用者 sudo usermod -U 使用者名稱 #解鎖 或 sudo passwd -l 使用者名稱 #鎖定使用者 sudo passwd -u 使用者名稱 #解鎖
增加使用者到admin組,讓其有sudo許可權
sudo usermod -G admin -a 使用者名稱
如何切換到其他帳號(需要該使用者的密碼)
su 使用者名稱
如何切換到root帳號
sudo -s sudo -i sudo su
設定
配置預設Java使用哪個
sudo update-alternatives --config java
給apt設定代理
export http_proxy=http://xx.xx.xx.xx:xxx
修改系統登入資訊
sudo vim /etc/motd
使用eclipse等其他自帶java編譯器的軟體,換回sun的編譯器方法
對於Java JDK6 (就是1.6,sun縮短Java的版本名字了):
sudo update-java-alternatives -s java-6-sun
對於Java JDK1.5
sudo update-java-alternatives -s java-1.5.0-sun
中文
切換輸入法引擎
im-switch -c
轉換檔名由GBK為UTF8
sudo apt-get install convmv convmv -r -f cp936 -t utf8 --notest --nosmart *
批量轉換src目錄下的所有檔案內容由GBK到UTF8
find src -type d -exec mkdir -p utf8/{} /; find src -type f -exec iconv -f GBK -t UTF-8 {} -o utf8/{} /; mv utf8/* src rm -fr utf8
轉換檔案內容由GBK到UTF8
iconv -f gbk -t utf8 $i > newfile
批量轉換檔案內容由GBK到UTF8
for i in `find . *`; do if [ -f "$i" ]; then iconv -f gb2312 -t utf8 $i > "./converted/$i" fi ; done
轉換 mp3 標籤編碼
sudo apt-get install python-mutagen find . -iname '*.mp3' -execdir mid3iconv -e GBK {} /;
或者使用圖形介面工具“小K”,具體請參考解決檔名mp3標籤和文字檔案內容的亂碼問題
控制檯下顯示中文
sudo apt-get install zhcon 使用時,輸入zhcon即可 更具體的輸入:zhcon --utf8 --drv=vga 如果在/etc/zhcon.conf中指定了解析度,可以去掉--drv=vga以指定的解析度啟動。
zhcon是個外掛的控制平臺,也就是像US-DOS那樣是額外安裝的軟體,裝完後是需要驅動才能進去的,不然有可能當機; 當然驅動什麼的在你sudo apt-get install zhcon的時候就已經安裝了; 你所需要的是在進zhcon時要申明你所用的驅動,而zhcon在安裝時,就裝了3種驅動:vga,framebuffer,libggi,而我們一般都是用的第一種驅動,因為比較方便簡單,而那2鍾驅動.很麻煩,我也就沒改過.好了說了這麼多該告訴各位怎麼進入zhcon了; 執行時需輸入:zhcon --utf8 --drv=vga
lftp 登入遠端Windows中文FTP
lftp :~>set ftp:charset GBK lftp :~>set file:charset UTF-8
java6 的安裝和中文設定
#下面是ubuntu 10.04安裝標準的sun-java,安裝過程中需要使用tab鍵切換同意其授權協議 sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" sudo apt-get update sudo apt-get install sun-java6-jdk sun-java6-plugin ttf-wqy-microhei sudo apt-get remove ttf-kochi-gothic ttf-kochi-mincho ttf-unfonts ttf-unfonts-core sudo mkdir -p /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback sudo ln -s /usr/share/fonts/truetype/arphic/wqy-microhei.ttc /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback
openjdk6 的安裝和中文設定
sudo apt-get install openjdk-6-jdk ttf-wqy-microhei #有兩種解決辦法,第一種關閉Java的AA echo "export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'" >> ~/.profile #第二種直接修改Java字型配置 echo "allfonts.umingcn=WenQuanYi Microhei Hei" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties echo "allfonts.uminghk=WenQuanYi Microhei Hei" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties echo "allfonts.umingtw=WenQuanYi Microhei Hei" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties echo "allfonts.wqy-zenhei=WenQuanYi Microhei Hei" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties echo "allfonts.shanheisun=WenQuanYi Microhei Hei" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties echo "filename.WenQuanYi_Microhei_Hei=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties
程式顯示有些字大,有些小
sudo apt-get remove ttf-kochi-gothic ttf-kochi-mincho ttf-unfonts ttf-unfonts-core
PDF 檔案亂碼
sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional poppler-data
Flash中文亂碼
sudo gedit /etc/fonts/conf.d/49-sansserif.conf 將倒數第四行 <string>sans-serif</string> 改為 <string>sans</string> 儲存即可,重啟firefox
增加農曆
sudo apt-get install lunar-applet 滑鼠點選皮膚右鍵 -> 新增到皮膚 -> 農曆日期
unzip 中文檔名亂碼
sudo apt-get install p7zip-full export LANG=zh_CN.GBK #臨時在控制檯修改環境為zh_CN.GBK,然後解壓縮即可 7za e docs.zip
ibus跟隨
安裝ibus-gtk即可,最好另外安裝:ibus-qt4
檔案管理
一屏檢視檔案內容
cat 檔名
不顯示以#開頭的行
cat /etc/vsftpd.conf |grep -v ^#
分頁檢視檔案內容
more 檔名
可控分頁檢視檔案內容
less 檔名
帶行號顯示檔案的內容
nl 檔名 cat -n 檔名
去除檔案中的行號
cut -c 5- a.py
刪除檔案中的重複行
cat file.txt |sort -u
根據字串匹配來檢視檔案部分內容
grep 字串 檔名
顯示包含或者不包含字串的檔名
grep -l -r 字串 路徑 #顯示內容包含字串的檔名 grep -L -r 字串 路徑 #顯示內容不包含字串的檔名 find . -path './cache' -prune -o -name "*.php" -exec grep -l "date_cache[$format]['lang']" {} /; #顯示當前目錄下不包含cache目錄的所有含有“date_cache[$format]['lang']”字串的php檔案。
快速查詢某個檔案
whereis filename find 目錄 -name 檔名 locate 檔名 # 注意,為了得到更好的效果,執行前可以更新下資料庫,執行 sudo updatedb 即可,但這個命令每隔一段時間會自動執行,所以不用太在意
建立兩個空檔案
touch file1 file2
遞迴式建立一些巢狀目錄
mkdir -pv /tmp/xxs/dsd/efd
遞迴式刪除巢狀目錄
rm -fr /tmp/xxs
回當前使用者的宿主目錄
cd ~ # 或者更簡單的 cd
回到上一次的目錄
cd -
檢視當前所在目錄的絕對路經
pwd
獲得檔案的字尾名
echo xxx.xxx.rmvb |sed 's/.*/(/..*$/)//1/'
去除檔案的字尾名
echo xxx.xxx.rmvb |sed 's//(.*/)/..*$//1/'
列出當前目錄下的所有檔案,包括以.開頭的隱含檔案
ls -a
移動路徑下的檔案並改名
mv 路徑/檔案 /新路徑/新檔名
複製檔案或者目錄
cp -av 原檔案或原目錄 新檔案或新目錄
檢視檔案型別
file filename
對比兩個檔案之間的差異
diff file1 file2
顯示xxx檔案倒數6行的內容
tail -6 xxx
讓tail不停地讀取最新的內容
tail -10f /var/log/apache2/access.log
或者
tailf /var/log/apache2/access.log
檢視檔案中間的第五行(含)到第10行(含)的內容
sed -n '5,10p' /var/log/apache2/access.log
查詢關於xxx的命令
apropos xxx man -k xxx
通過ssh傳輸檔案
scp -rp /path/filename username@remoteIP:/path #將本地檔案拷貝到伺服器上 scp -rp username@remoteIP:/path/filename /path #將遠端檔案從伺服器下載到本地 tar cvzf - /path/ | ssh username@remoteip "cd /some/path/; cat -> path.tar.gz" #壓縮傳輸 tar cvzf - /path/ | ssh username@remoteip "cd /some/path/; tar xvzf -" #壓縮傳輸一個目錄並解壓
把所有檔案的後輟由rm改為rmvb
rename 's/.rm$/.rmvb/' *
把所有檔名中的大寫改為小寫
rename 'tr/A-Z/a-z/' *
刪除特殊檔名的檔案,如檔名:--help.txt
rm -- --help.txt 或者 rm ./--help.txt
檢視當前目錄的子目錄
ls -d */ 或 echo */
將當前目錄下最近30天訪問過的檔案移動到上級back目錄
find . -type f -atime -30 -exec mv {} ../back /;
查詢當前目錄下最近30天訪問過的檔案打包備份
find . -type f -atime -30 | xargs tar zcvpf backup.tar.gz find . -type f -atime -30 -print -exec tar rvpf backup.tar {} /;
顯示系統伺服器一小時以內的包含 xxxx 的所有郵件
find /home/ -path "*Maildir*" -type f -mmin -60|xargs -i grep -l xxxx '{}'
將當前目錄下最近2小時到8小時之內的檔案顯示出來
find . -mmin +120 -mmin -480 -exec more {} /;
刪除修改時間在30天之前的所有檔案
find . -type f -mtime +30 -mtime -3600 -exec rm {} /;
刪除建立時間在30天之前的所有檔案
find . -type f -ctime +30 -ctime -3600 -exec rm {} /;
查詢guest使用者的以avi或者rm結尾的檔案並刪除掉
find . -name '*.avi' -o -name '*.rm' -user 'guest' -exec rm {} /;
查詢不以java和xml結尾,並7天沒有使用的檔案刪除掉
find . ! -name *.java ! -name ‘*.xml’ -atime +7 -exec rm {} /;
查詢目錄下所有有包含abcd文字的文字檔案,並替換為xyz
grep -rIl "abcd" ./* --color=never | xargs sed -i "s/abcd/xyz/g" #注意grep的一個引數是大寫的i,一個引數是小寫的L
刪除當前目錄裡面所有的 .svn 目錄
find . -name .svn -type d -exec rm -fr {} /;
刪除當前目錄所有以“~”結尾的臨時檔案
find . -name "*~" -exec rm {} /;
統計當前檔案個數
ls /usr/bin|wc -w
統計當前目錄下所有jpg檔案的尺寸
find . -name *.jpg -exec wc -c {} /;|awk '{print $1}'|awk '{a+=$1}END{print a}'
統計當前目錄個數
ls -l /usr/bin|grep ^d|wc -l
統計當前目錄下佔空間最大的前10名檔案或目錄
du -sm * | sort -nr | head -10
顯示當前目錄下2006-01-01的檔名
ls -l |grep 2006-01-01 |awk '{print $8}'
備份當前系統到另外一個硬碟
sudo rsync -Pa / /media/disk1 --exclude=/media/* --exclude=/home/* --exclude=/sys/* --exclude=/tmp/* --exclude=/proc/* --exclude=/mnt/*
使用ssh方式同步遠端資料到本地目錄
rsync -Pa -I --size-only --delete --timeout=300 Remote_IP:/home/ubuntu/back /backup
使用ftp方式同步遠端資料到本地目錄
lftp -c "open Remote_IP;user UserName Password;set cache:enable false;set ftp:passive-mode false;set net:timeout 15;mirror -e -c /back /backup;"
去掉檔案中的^M
#注意不要使用同樣的檔名,會清空掉原檔案 cat filename | tr -d "^M" > newfile; 或者 sed -e "s/^M//g" filename > newfile; 或者 ex "+:%s/[Ctrl+V][Enter]//g" "+:wq" filename #直接修改檔案
轉換Dos文字檔案到Unix文字檔案
tr -d '/15/32' < dosfile.txt > unixfile.txt #dos = > unix awk '{ sub("/r$", ""); print }' dosfile.txt > unixfile.txt #dos = > unix awk 'sub("$", "/r")' unixfile.txt > dosfile.txt #unix = > dos
轉換bin/cue到iso檔案
#sudo apt-get install bchunk bchunk image.bin image.cue image
轉換目錄到iso檔案
mkisofs -o isofile.iso dirname
轉換CD到iso檔案
dd if=/dev/cdrom of=isofile.iso
將一個檔案作為附件發到郵箱
#sudo apt-get install mailutils sharutils uuencode xxx.tar.gz xxx.tar.gz |mail xxx@xxx.com (echo "hello, please see attached file"; uuencode xxx.tar.gz xxx.tar.gz)| mail xxx@xxx.com
合併多個pdf檔案到一個pdf檔案
#apt-get install gs pdftk gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=output.pdf -dBATCH input1.pdf input2.pdf
影像
播放swf檔案
安裝swf解碼器
sudo apt-get install swfmill
如何儲存串流視訊(mms/rtsp)
mplayer -dumpfile dump.rm -dumpstream rstp://....
批量將rmvb轉為avi
#ipod touch可用 for i in *.rmvb; do mencoder -vf harddup -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi $i -o `echo $i | sed -e 's/rmvb$/avi/'`; done
批量將DVD轉為avi
for i in *.VOB; do mencoder -oac mp3lame -lameopts aq=7:vbr=2:q=6 -srate 44100 -ovc xvid -xvidencopts fixed_quant=4 -of avi $i -o `echo $i | sed -e 's/VOB$/avi/'`; done
批量將任何格式的電影轉為ogv
#sudo apt-get install ffmpeg2theora #firefox3.5或chrome直接支援播放,無需安裝任何解碼器,注意不支援rmvb,rmvb會出現a/v不同步問題 for i in *; do ffmpeg2theora --optimize --deinterlace $i; done
批量將rmvb格式的電影轉為ogv
#!/bin/bash for i in *; do mkfifo "/tmp/$i" mencoder -quiet -vf harddup -ovc raw -oac pcm -o "/tmp/$i" "$i" & ffmpeg2theora --optimize --deinterlace "/tmp/$i" -o "`echo $i | sed 's//(.*/)/..*$//1/'`.ogv" rm "/tmp/$i" done
利用gst來轉換任意電影為ogv
#!/bin/bash for i in *; do gst-launch-0.10 filesrc location="$i" ! decodebin name=demux / { oggmux name=mux ! filesink location="`echo $i | sed 's//(.*/)/..*$//1/'`.ogv" } / { demux. ! queue ! audioconvert ! vorbisenc ! queue ! mux. } / { demux. ! queue ! ffmpegcolorspace ! videorate ! theoraenc ! mux. } done
批量轉換任意檔案為ipod touch使用的mp4
#!/bin/bash #ubuntu10.04自帶的mencoder由於版權問題,不支援h264編碼,需要重新編譯;也可以直接參考下面的壓縮方法。 #sudo apt-get install mencoder mplayer find . -name '*.avi' -o -name '*.rm' -o -name '*.rmvb' -o -name '*.wmv' -o / -name '*.vob' -o -name '*.asf' -o -name '*.mpg' -o -name '*.ts' -o / -name '*.flv' -o -name '*.mpeg' -o -name '*.ogv' -o -name '*.mov' -o / -name '*.mkv' -o -name '*.dat' | while read i; do basename=`echo $i | sed 's//(.*/)/..*$//1/'` font="WenQuanYi Zen Hei" if [ -f "${basename}.srt" ] ; then cp "${basename}.srt" $$.srt m0="-vf scale=480:-10,harddup -sub $$.srt -unicode -subcp GB18030 -subfont-text-scale 3"; else m0="-vf scale=480:-10,harddup"; fi x0="-lavfopts format=mp4 -faacopts mpeg=4:object=2:raw:br=160 -oac faac -ovc x264 -sws 9 -x264encopts nocabac:level_idc=30:bframes=0:global_header:threads=auto:subq=5:frameref=6:partitions=all:trellis=1:chroma_me:me=umh:bitrate=500 -of lavf -ofps 24000/1001"; mencoder $m0 -fontconfig -font "${font}" $x0 -o "$$.mp4" "$i" mv "$$.mp4" "${basename}.mp4" if [ -f "${basename}.mp4" ] ; then rm "$i" fi done
轉換任意格式的視訊到H264
#!/bin/bash #sudo apt-get install faac x264 gpac mplayer mencoder basename=`echo $1 | sed 's//(.*/)/..*$//1/'` #獲得視訊的長寬和幀數 mplayer -vo null -ao null -identify -frames 0 "$1" 2>/dev/null > video.info FPS=`cat video.info | grep ID_VIDEO_FPS | cut -d = -f 2` #FPS=23.976 W=`cat video.info | grep ID_VIDEO_WIDTH | cut -d = -f 2` H=`cat video.info | grep ID_VIDEO_HEIGHT | cut -d = -f 2` WIDTH=480 HEIGHT=`expr $WIDTH /* $H // $W` echo $1 FPS=$FPS WIDTH=$WIDTH HEIGHT=$HEIGHT mkfifo audio.wav video.yuv faac -o audio.aac audio.wav & mplayer -ao pcm:file=audio.wav:fast -vc null -vo null "$1" x264 --profile baseline --fps $FPS -o video.264 video.yuv ${WIDTH}x${HEIGHT} & mencoder -vf scale=$WIDTH:$HEIGHT,harddup,pp=fd,format=i420 -nosound -ovc raw -of rawvideo -ofps $FPS -o video.yuv "$1" MP4Box -new -add video.264 -add audio.aac -fps $FPS "$basename.mp4" rm video.info audio.aac video.264 audio.wav video.yuv #使用方法將上面的指令碼儲存為 x264.sh , x264.sh xxx.avi 來進行轉化。
壓制DVD到H264,支援ipod
#sudo apt-get install faac x264 gpac mplayer FPS=29.970 mkfifo audio.wav cat VTS_01_1.VOB VTS_02_1.VOB VTS_02_2.VOB VTS_03_1.VOB VTS_04_1.VOB | mplayer -nocorrect-pts -vo null -vc null -ao pcm:file=audio.wav:fast - & faac audio.wav -o audio.aac mkfifo video.y4m cat VTS_01_1.VOB VTS_02_1.VOB VTS_02_2.VOB VTS_03_1.VOB VTS_04_1.VOB | mplayer -vo yuv4mpeg:file=video.y4m -vf scale=480:-3,harddup,pp=fd -nosound - & x264 --profile baseline --muxer mp4 --demuxer y4m video.y4m -o video.mp4 MP4Box -add video.mp4 -add audio.aac -fps $FPS video.mp4
圖形介面為ipod touch轉mp4的方法
先確保有zenity和memcoder
wget http://linuxfire.com.cn/~lily/toIpod -O ~/.gnome2/nautilus-scripts/toIpod && chmod +x ~/.gnome2/nautilus-scripts/toIpod
在nautilus裡對視訊檔案點右鍵,選擇"指令碼"-"toIpod".
詳情請檢視出處。
mencoder/mplayer 反拉絲引數
-vf lavcdeint
合併多個 rm 檔案為一個 avi 檔案
mencoder -ovc lavc 1.rm -oac mp3lame -o 1.avi mencoder -ovc lavc 2.rm -oac mp3lame -o 2.avi mencoder -idx 1.avi -ovc copy -oac copy -o o1.avi mencoder -idx 2.avi -ovc copy -oac copy -o o2.avi cat o1.avi o2.avi | mencoder -noidx -ovc copy -oac copy -o output.avi -
CD 抓軌為 mp3 (有損)
#sudo apt-get install abcde abcde -o mp3 -b
CD 抓軌為 Flac (無損)
#sudo apt-get install abcde abcde -o flac -b
ape 轉換為 flac
#sudo apt-get install flac shntool iconv iconv -f GB2312 -t UTF-8 example.cue -o example_UTF-8.cue shntool split -t "%n.%p-%t" -f example_UTF-8.cue -o flac example.ape -d flacOutputDir
ape/flac 轉換為 mp3
#sudo apt-get install flac shntool lame #ape 需要安裝 monkeys 包 iconv -f GB2312 -t UTF-8 example.cue -o example_UTF-8.cue shntool split -t "%n.%p-%t" -f example_UTF-8.cue -o 'cust ext=mp3 lame --r3mix -b 320 --quiet - %f' example.ape -d mp3OutputDir
批量將 ape 轉為 mp3
for i in *.ape; do shnconv -i ape -o "cust ext=mp3 lame -b 320 - %f" "$i" -d mp3OutputDir; done
批量將 flac 轉為 mp3
for i in *.flac; do shnconv -i flac -o "cust ext=mp3 lame -b 320 - %f" "$i" -d mp3OutputDir; done
批量將svg轉為png
for i in *.svg; do inkscape $i --export-png=`echo $i | sed -e 's/svg$/png/'`; done
批量轉換格式到mp3
#sudo apt-get install lame mplayer for i in *; do base=${i%.*}; mplayer -quiet -vo null -vc dummy -af volume=0,resample=44100:0:1 -ao pcm:waveheader:file="$i.wav" "$i" ; lame -V0 -h -b 192 -vbr-new "$i.wav" "$base.mp3"; rm -f "$i.wav" ; done
批量縮小圖片到30%
for i in *.jpg; do convert -resize 30%x30% "$i" "sm-$i"; done
批量轉換jpg到png
for i in *.jpg; do convert $i `echo $i | sed -e 's/jpg$/png/'`; done
如何壓縮png圖片
#sudo apt-get install optipng optipng -o7 old.png new.png #或 sudo apt-get install pngcrush #pngcrush -brute old.png new.png
將多張圖片合併到一個PDF檔案
convert *.jpg out.pdf
批量把pdf轉換為txt並格式化
sudo apt-get install poppler-utils poppler-data find ./ -name '*.txt' | while read i; do cat $i | awk '{if ($0 ~ "^space:”) {printf “/n”$0} else {printf $0}}’ | sed ‘/^space:*digit:*$/d’ | sed ’s/^space:/+/ /’ | sed ’s/"/”/g’ > “../txt/$i”; done
轉換 pdf 到 png
#sudo apt-get install imagemagick convert -density 196 FILENAME.pdf FILENAME.png
獲取jpg的擴充套件資訊(Exif)
identify -verbose xxx.jpg
獲取視訊檔案 xxx.avi 的資訊
mplayer -vo null -ao null -frames 0 -identify "xxx.avi" 2>/dev/null | sed -ne '/^ID_/ { s/[]()|&;<>`'"'"'//!$" []///&/g;p }'
檢視MKV視訊檔案 xxx.mkv 的資訊
#sudo apt-get install mkvtoolnix mkvinfo -v xxx.mkv
抓取桌面操作的視訊
ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg
命令列讀出文字
espeak -vzh "從前有座山"
命令列抓屏
scrot -s screenshot.png
壓縮
增加 7Z 壓縮軟體
#支援 7Z,ZIP,Zip64,CAB,RAR,ARJ,GZIP,BZIP2,TAR,CPIO,RPM,ISO,DEB 壓縮檔案格式 sudo apt-get install p7zip p7zip-full p7zip-rar
增加 rar 軟體壓縮和解壓縮支援
sudo apt-get install rar unrar
增加 zip 格式壓縮和解壓縮支援
sudo apt-get install zip unzip
解壓縮 xxx.tar.gz
tar -zxvf xxx.tar.gz
解壓縮 xxx.tar.bz2
tar -jxvf xxx.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
增加 lha 支援
sudo apt-get install lha
增加解 cab 檔案支援
sudo apt-get install cabextract
Nautilus
顯示隱藏檔案
Ctrl+h
顯示位址列
Ctrl+l
特殊 URI 地址
* computer:/// - 全部掛載的裝置和網路 * network:/// - 瀏覽可用的網路 * burn:/// - 一個燒錄 CDs/DVDs 的資料虛擬目錄 * smb:/// - 可用的 windows/samba 網路資源 * x-nautilus-desktop:/// - 桌面專案和圖示 * file:/// - 本地檔案 * trash:/// - 本地回收站目錄 * ftp:// - FTP 資料夾 * ssh:// - SSH 資料夾 * fonts:/// - 字型資料夾,可將字型檔案拖到此處以完成安裝 * themes:/// - 系統主題資料夾
檢視已安裝字型
fc-list 在nautilus的位址列裡輸入”fonts:///“,就可以檢視本機所有的fonts (這個似乎不行)
日期和時間
顯示日曆
cal # 顯示當月日曆 cal 2 2007 # 顯示2007年2月的日曆
設定日期
date -s mm/dd/yy
設定時間
date -s HH:MM
將時間寫入CMOS
hwclock --systohc
檢視CMOS時間
hwclock --show
讀取CMOS時間
hwclock --hctosys
從伺服器上同步時間
sudo ntpdate ntp.ubuntu.com sudo ntpdate time.nist.gov
設定電腦的時區為上海
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
XP 和 Ubuntu 相差了 8 小時的時差
#關閉UTC,將當前時間寫入CMOS。 sudo sed -ie 's/UTC=yes/UTC=no/g' /etc/default/rcS sudo hwclock --systohc
工作區
不同工作區間切換
Ctrl + ALT + ← Ctrl + ALT + → 或者,將滾輪滑鼠放在工作區圖示上滾動
控制檯
指定控制檯切換
Ctrl + ALT + Fn(n:1~7)
控制檯下滾屏
SHIFT + pageUp/pageDown
控制檯抓圖
setterm -dump n(n:1~7)
只是支援tty1-7。沒中文。沒顏色程式碼序列。
資料庫
mysql的資料庫存放路徑
/var/lib/mysql
從mysql中匯出和匯入資料
mysqldump 資料庫名 > 檔名 #匯出資料庫 mysqladmin create 資料庫名 #建立資料庫 mysql 資料庫名 < 檔名 #匯入資料庫
忘了mysql的root口令怎麼辦
sudo /etc/init.d/mysql stop sudo mysqld_safe --skip-grant-tables & sudo mysqladmin -u user password 'newpassword sudo mysqladmin flush-privileges
修改mysql的root口令
sudo mysqladmin -u root -p password '你的新密碼'
如何優化mysql
wget http://www.day32.com/MySQL/tuning-primer.sh chmod +x tuning-primer.sh ./tuning-primer.sh
mysql命令列中文顯示?號
mysql> set names utf8;
常用mysql管理語句
show table status; #查詢表狀態 show full processlist; #查詢mysql程式 alter table site_stats engine=MyISAM; #轉換表為MyISAM型別,轉表鎖為行鎖。 show variables; #檢視mysql 變數
控制
如何使用命令關閉顯示器
xset dpms force off
設定CPU的頻率
sudo apt-get install cpufrequtils #檢視cpu當前頻率資訊 sudo cpufreq-info 設定模式,對應於{最省電(最低頻率),使用者控制,最高或最低,正常,最大效能} cpufreq-set -g {powersave, userspace, ondemand, conservative, performance}
命令關機
sudo halt sudo shutdown -h now #現在關機
定時關機
sudo shutdown -h 23:00 #晚上11點自動關機 sudo shutdown -h +60 #60分鐘後關機
命令重啟電腦
sudo reboot sudo shutdown -r now
如何修改ssh登入提示
sudo gedit /etc/motd
如何關閉ssh登入提示
sudo gedit /etc/ssh/sshd_config 修改這一行為: PrintLastLog no
如何使用命令關閉筆記本的觸控板
synclient touchpadoff=1 那麼開啟觸控板就是: synclient touchpadoff=0
從命令列通知桌面訊息
#sudo apt-get install libnotify-bin notify-send "hello world"
統計
統計最常用的10條命令
history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10
統計每個單詞的出現頻率,並排序
awk '{arr[$1]+=1 }END{for(i in arr){print arr[i]"/t"i}}' FILE_NAME | sort -rn
統計80埠的連線個數並按照從大到小排列
netstat -na|grep :80|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n
編輯器
vim中刪除技巧
:%s/[Ctrl-v][Enter]//g 刪除DOS方式的回車^M :%s= *$== 刪除行尾空白 :%!sort -u 刪除重複行 :%s/^.{-}pdf/new.pdf/ 只是刪除第一個pdf :%s/// 刪除多行註釋 :g/^$/d 刪除所有空行 :g!/^dd/d 刪除不含字串'dd'的行 :v/^dd/d 刪除不含字串'dd'的行 :g/str1/,/str2/d 刪除所有第一個含str1到第一個含str2之間的行 :v/./.,/./-1join 壓縮空行 :g/^$/,/./-j 壓縮空行 ndw 或 ndW 刪除游標處開始及其後的 n-1 個字元。 d0 刪至行首。 d$ 刪至行尾。 ndd 刪除當前行及其後 n-1 行。 x 或 X 刪除一個字元。 Ctrl+u 刪除輸入方式下所輸入的文字。 D 刪除到行尾 x,y 刪除與複製包含高亮區 dl 刪除當前字元(與x命令功能相同) d0 刪除到某一行的開始位置 d^ 刪除到某一行的第一個字元位置(不包括空格或TAB字元) dw 刪除到某個單詞的結尾位置 d3w 刪除到第三個單詞的結尾位置 db 刪除到某個單詞的開始位置 dW 刪除到某個以空格作為分隔符的單詞的結尾位置 dB 刪除到某個以空格作為分隔符的單詞的開始位置 d7B 刪除到前面7個以空格作為分隔符的單詞的開始位置 d) 刪除到某個語句的結尾位置 d4) 刪除到第四個語句的結尾位置 d( 刪除到某個語句的開始位置 d) 刪除到某個段落的結尾位置 d{ 刪除到某個段落的開始位置 d7{ 刪除到當前段落起始位置之前的第7個段落位置 dd 刪除當前行 d/text 刪除從文字中出現“text”中所指定字樣的位置,一直向前直到下一個該字樣所出現的位置(但不包括該字樣)之間的內容 dfc 刪除從文字中出現字元“c”的位置,一直向前直到下一個該字元所出現的位置(包括該字元)之間的內容 dtc 刪除當前行直到下一個字元“c”所出現位置之間的內容 D 刪除到某一行的結尾 d$ 刪除到某一行的結尾 5dd 刪除從當前行所開始的5行內容 dL 刪除直到螢幕上最後一行的內容 dH 刪除直到螢幕上第一行的內容 dG 刪除直到工作快取區結尾的內容 d1G 刪除直到工作快取區開始的內容
如何配置Emacs
開啟新立得或者命令列,查詢emacs, 選擇你想要的版本,比如emacs22或者emacs21.
之後的配置參考Emacs 常見問題及其解決方法
vim 如何顯示彩色字元
sudo cp /usr/share/vim/vimcurrent/vimrc_example.vim /usr/share/vim/vimrc
讓 vim 直接支援編輯 .gz 檔案
sudo apt-get install vim-full
vim 如何顯示行號,在~/.vimrc中加入
set number
如果沒有~/.vimrc檔案,則可以在/etc/vim/vimrc中加入
set number
vim配色方案 (~/.vimrc)
colorscheme scheme 可用的 scheme 在 /usr/share/vim/vim71/colors/
解決vim中文編碼問題,在~/.vimrc中加入
let &termencoding=&encoding set fileencodings=utf-8,gbk,ucs-bom,cp936 #再提供一個實踐中覺得不錯的配置: " Encoding related set encoding=UTF-8 set langmenu=zh_CN.UTF-8 language message zh_CN.UTF-8 set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 set fileencoding=utf-8
gedit中文亂碼的解決
gconftool-2 --set /apps/gedit-2/preferences/encodings/auto_detected "[UTF-8,CURRENT,GB18030,BIG5,ISO-8859-15,UTF-16]" --type list --list-type string
編譯和打包
安裝通用編譯環境
sudo apt-get install build-essential
通用的編譯安裝步驟
./configure && make && sudo make install
如何編譯安裝軟體 kate
sudo apt-get install apt-build sudo apt-build install kate
獲得原始碼包
sudo apt-get source mysql-server
解壓縮還原原始碼包
dpkg-source -x mysql-dfsg-5.1_5.1.30-1.dsc
安裝編譯打包環境
sudo apt-get build-dep mysql-server
重新編譯並打包Debian化的原始碼
dpkg-buildpackage -rfakeroot
獲得原始碼並重新打包
apt-get source php5-cgi #或手工下載原始碼後使用 dpkg-source -x php5_5.2.6.dfsg.1-3ubuntu4.1.dsc 解開原始碼 sudo apt-get build-dep php5-cgi cd php5-5.2.6.dfsg.1 dpkg-buildpackage -rfakeroot -uc -b
給原始碼打補丁
patch -p0 < mysql.patch
其它
把終端加到右鍵選單
sudo apt-get install nautilus-open-terminal
如何刪除Totem電影播放機的播放歷史記錄
rm ~/.recently-used
清除桌面掛載硬碟圖示
gconftool-2 --set /apps/nautilus/desktop/volumes_visible 0 --type bool
恢復:
gconftool-2 --set /apps/nautilus/desktop/volumes_visible 1 --type bool
如何更換gnome程式的快捷鍵
點選選單,滑鼠停留在某條選單上,鍵盤輸入任意你所需要的鍵,可以是組合鍵,會立即生效; 如果要清除該快捷鍵,請使用backspace
基於 OpenVZ 的 VPS 支援 OpenVPN 對外訪問設定
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE #或 iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source VPS-IP-ADDRESS
GNOME登入時自動執行程式
系統 -> 首選項 -> 會話 ->
啟動程式
man 如何顯示彩色字元
vim ~/.bashrc #增加下面的內容: export LESS_TERMCAP_mb=$'/E[01;31m' export LESS_TERMCAP_md=$'/E[01;31m' export LESS_TERMCAP_me=$'/E[0m' export LESS_TERMCAP_se=$'/E[0m' export LESS_TERMCAP_so=$'/E[01;44;33m' export LESS_TERMCAP_ue=$'/E[0m' export LESS_TERMCAP_us=$'/E[01;32m' #生效檔案 #source .bashrc
如何在命令列刪除在會話設定的啟動程式
cd ~/.config/autostart rm 需要刪除啟動程式
如何提高wine的反應速度
sudo sed -ie '/GBK/,/^}/d' /usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE
可能造成某些遊戲幀數降低
如何命令列燒錄
mkisofs -o test.iso -Jrv -V test_disk /home/carla/ cdrecord -scanbus scsibus1: 1,1,0 101) 'HL-DT-ST' 'CD-RW GCE-8481B ' '1.04' Removable CD-ROM cdrecord -v -eject speed=8 dev=1,1,0 test.iso
http://www.ibm.com/developerworks/cn/linux/l-cdburn/index.html
延遲抓圖
gnome-screenshot -d 10 #延遲10秒抓圖 gnome-screenshot -w -d 5 #延遲5秒抓當前啟用視窗
回收站在哪裡
Ubuntu8.04 Gnome 2.22.2 以後在 $HOME/.local/share/Trash/ Ubuntu8.04 之前在 $HOME/.Trash/
強制清空回收站
sudo rm -fr $HOME/.local/share/Trash/files/
預設開啟方式的配置檔案在哪裡
#全域性 /etc/gnome/defaults.list #個人 ~/.local/share/applications/mimeapps.list
Firefox 的快取目錄在哪裡
ls ~/.mozilla/firefox/*.default/Cache/
檢視samba的使用者
sudo pdbedit -L
增加一個使用者到samba
sudo pdbedit -a username
從samba賬戶中刪除一個使用者
sudo pdbedit -x username
顯示samba賬戶資訊
sudo pdbedit -r username
測試samba賬戶是否正常
smbclient -L 192.168.1.1 -U username -d 3
samba的資料庫存在哪裡
/var/lib/samba/passdb.tdb
samba使用者Windows下無法登入
在Windows的執行輸入 cmd ,進入終端,輸入 net use 命令,將顯示已經連線的帳號如 //192.168.1.1/username 再輸入 net use //192.168.1.1/username /delete 刪除現有的共享連線,再嘗試進入另外一個目錄就可以正常登入了。
Pidgin 的聊天記錄在哪裡
~/.purple/logs/
安裝PDF印表機
sudo apt-get install cups-pdf #列印生成的pdf檔案在 ~/PDF 資料夾裡面
nvidia快速重設顯示設定及配置多顯示器
sudo dpkg-reconfigure xserver-xorg sudo nvidia-xconfig #nvidia-settings 用於設定解析度和多顯示器 sudo nvidia-settings
kacpid程式大量佔用CPU
硬體驅動中不要啟用無線網路卡驅動即可
替換上一條命令中的一個短語
^foo^bar^ !!:s/foo/bar/
AMD64位系統安裝免費的防毒軟體 avast!
wget http://files.avast.com/files/linux/avast4workstation_1.3.0-2_i386.deb sudo dpkg --force-architecture -i avast4workstation_1.3.0-2_i386.deb sudo apt-get install ia32-libs #然後開啟 http://www.avast.com/registration-free-antivirus.php 去申請免費一年的許可證號
轉自:http://wiki.ubuntu.org.cn/UbuntuSkills#.E6.9F.A5.E7.9C.8BPCI.E8.AE.BE.E5.A4.87
相關文章
- Ubuntu小技巧Ubuntu
- Ubuntu命令Ubuntu
- Ubuntu & Android 技巧UbuntuAndroid
- Ubuntu命令大全Ubuntu
- 常用Ubuntu命令Ubuntu
- Ubuntu命令--CURL用法Ubuntu
- Linux命令技巧之30個必會的命令技巧Linux
- 每日Ubuntu小技巧——安裝Ubuntu後做什麼Ubuntu
- Metasploit resource命令技巧
- Metasploit makerc命令技巧
- Metasploit log命令技巧
- Linux命令技巧Linux
- 【Ubuntu】Ubuntu常用的更新、清理命令指令碼Ubuntu指令碼
- Ubuntu : apt-get 命令Ubuntuapt-get
- 常用ubuntu基礎命令Ubuntu
- Ubuntu 常用命令Ubuntu
- mysql ubuntu 命令安裝MySqlUbuntu
- Ubuntu 中常用的命令Ubuntu
- ubuntu常用命令Ubuntu
- Metasploit irb命令使用技巧
- Metasploit search命令使用技巧
- Metasploit命令info使用技巧
- ADB命令使用技巧
- 調整 Ubuntu 終端顏色技巧Ubuntu
- Ubuntu技巧之 is not in the sudoers file解決方法Ubuntu
- Ubuntu mount命令用法詳解Ubuntu
- Ubuntu 壓縮檔案命令Ubuntu
- Ubuntu 下常用命令Ubuntu
- ubuntu + swoole 常用命令Ubuntu
- Ubuntu下常用命令Ubuntu
- ubuntu的ufw基本操作命令Ubuntu
- Ubuntu 每日技巧- 自動備份Ubuntu 14.04到Box雲存Ubuntu
- Metasploit advanced命令使用技巧
- Metasploit reload命令使用技巧
- Metasploit技巧命令支援tips
- Laravel Artisan 命令工具使用技巧Laravel
- Linux小技巧scp命令Linux
- ubuntu 命令安裝 beyond compareUbuntu