ubuntu常用系統命令
安裝升級
檢視軟體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 (這一步安裝應用程式更新,不安裝新核心等)
查詢程式屬於哪一個debian包
如,程式名是 dh_installdeb
$dpkg -S `which dh_installdeb`
debhelper: /usr/bin/dh_installdeb
$dpkg -l | grep debhelper
ii debhelper 7.4.15ubuntu1 helper programs for debian/rules
另一種更強的方法:
apt-file update
apt-file search filename
可以找到該檔案屬於哪一個deb包。
清除所有已刪除包的殘餘配置檔案
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
如果報如下錯誤,證明你的系統中沒有殘留配置檔案了,無須擔心。
dpkg:--purge needs at least one package name argument
Typedpkg --help for help about installing and deinstalling packages
- ;
Use `dselect' or `aptitude' for user-friendly packagemanagement;
Type dpkg -Dhelp for a list of dpkg debug flagvalues;
Type dpkg --force-help for a list of forcing options;
Typedpkg-deb --help for help about manipulating *.deb files;
Type dpkg--license for copyright license and lack of warranty (GNU GPL)
- .
Optionsmarked
- produce a lot of output - pipe it through `less' or`more' !
編譯時缺少h檔案的自動處理
sudo auto-apt run ./configure
檢視安裝軟體時下載包的臨時存放目錄
ls /var/cache/apt/archives
如果你有一些自己的deb包需要安裝,可以把它們複製到/var/cache/apt/archives目錄下,然後就可以使用apt-get install 包名 安裝。
使用apt-get install命令比dpkg -i 命令更好,因為apt-get install命令會自動安裝依賴的軟體包。
dpkg -i 命令安裝時,則可能會遇到軟體包依賴不滿足而無法安裝的錯誤。
備份當前系統安裝的所有包的列表
dpkg --get-selections | grep -v deinstall > ~/somefile
從上面備份的安裝包的列表檔案恢復所有包
dpkg --set-selections < ~/somefile
sudo dselect 或者 sudo apt-get dselect-upgrade
安裝debian包時自動回答yes
sudo apt-get install/dselect-upgrade 等命令後,可以加上-y 表示自動回答yes。
但在遇到安裝一個未驗證的deb包,或者刪除一個本質的deb包時,安裝過程會終止。
如果再加上
--force-yes
那麼不論什麼樣的情況,apt-get都會執行安裝。 但使用這個選項可能會造成系統問題。
清理舊版本的軟體快取
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
這個命令可以顯示詳盡的硬體資訊,包括廠商,訊號,能力,匯流排等資訊。使用lshw |more 耐心檢視。
lshw -html > lshw.html 生成網頁形式的頁面。
lshw -short 檢視硬體的簡要資訊。
獲取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
Blocks欄位表示分割槽的大小,它的單位是1024位元組,也就是KB。
硬碟分割槽
#危險!小心操作。
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
預設安裝的ubuntu桌面版,會自動只讀mount ntfs格式的分割槽。
sudo apt-get install ntfs-3g
安裝這個軟體包之後,就會自動以讀寫方式mount ntfs格式的分割槽了。
如果不安裝這個軟體包,必須使用root許可權寫fat格式的磁碟。而且速度很慢。安裝這個軟體包後,可以用一般使用者寫fat格式磁碟,速度恢復正常。
我曾經寫fat格式的U盤速度非常慢,只有幾百KB/s。安裝這個軟體包後,寫入速度恢復正常,達到30多MB/s。
掛載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:
網路
根據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
在ifaceeth0 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 [email protected]
監控網路所有的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/
服務
首先,編寫一個符合要求的shell指令碼。 可以以/etc/init.d/目錄下的指令碼檔案為模板編寫。
然後把該指令碼複製到/etc/init.d/目錄下。檔名就是下面所說的服務名。
新增一個服務
sudo update-rc.d 服務名 defaults 99
這將根據shell檔案指定的級別,在/etc/rcN.d/目錄下建立對應的S**連結(S開頭的檔名,表示啟動時執行)和K**連結(K開頭的檔名,表示關閉時執行)。
S/K後面的數字,表示執行順序。數字越大,越晚被執行。
刪除一個服務
sudo update-rc.d 服務名 remove
強制刪除一個服務
sudo update-rc.d -f 服務名 remove
刪除服務,就是把之前生成的/etc/rcN.d/目錄下的超連結刪除。
臨時重啟一個服務
/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的編譯器方法
對於JavaJDK6 (就是1.6,sun縮短Java的版本名字了):
sudo update-java-alternatives -s java-6-sun
對於JavaJDK1.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那樣是額外安裝的軟體,裝完後是需要驅動才能進去的,不然有可能宕機;當然驅動什麼的在你sudoapt-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 [email protected]:/path #將本地檔案拷貝到伺服器上
scp -rp [email protected]:/path/filename /path #將遠端檔案從伺服器下載到本地
tar cvzf - /path/ | ssh [email protected] "cd /some/path/; cat -> path.tar.gz" #壓縮傳輸
tar cvzf - /path/ | ssh [email protected] "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 [email protected]
(echo "hello, please see attached file"; uuencode xxx.tar.gz xxx.tar.gz)| mail [email protected]
合併多個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
批量轉換任意檔案為ipodtouch使用的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
圖形介面為ipodtouch轉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
壓縮aaabbb目錄為xxx.tar.gz
tar -zcvf xxx.tar.gz aaa bbb
壓縮aaabbb目錄為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
會在當前目錄下載原始碼壓縮包,並自動解壓。
yum倉庫使用如下命令下載原始碼包:
yumdownloader --source mysql-server.x86_64
Redhat的原始碼包在如下地址:
ftp://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/
這是RHEL6的原始碼包的地址。 其他版本的RHEL,在對應的ftp目錄下。
編譯原始碼
編譯原始碼時,常常會依賴很多軟體包,要一個個找出這些軟體包並安裝不是一件容易的事。
如果ubuntu的apt源中有官方的deb包,那麼我們可以用一條簡單的命令安裝所有依賴的軟體包。
sudo apt-get build-dep X
X 用包名替代。
解壓縮還原原始碼包
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登入時自動執行程式
系統->首選項->