黄色视频D D_黄色视频GIF_黄色视频别人知道吗

    1. <form id=AYyRHNqkt><nobr id=AYyRHNqkt></nobr></form>
      <address id=AYyRHNqkt><nobr id=AYyRHNqkt><nobr id=AYyRHNqkt></nobr></nobr></address>

      個人工具

      UbuntuSkills

      來自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
      

      查找文件屬于哪個包

      dpkg -S filename
      apt-file search filename
      

      查看已經安裝了哪些包

      dpkg -l
      

      也可用

      dpkg -l | less
      

      翻頁查看

      查詢軟件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
      

      如果使用

      sudo apt-get autoremove --purge
      

      的話會把這些孤立軟件的殘留配置文件也一並移除

      查看包在服務器上面的地址

      apt-get -qq --print-uris download 软件包名称 | cut -d\' -f2
      

      徹底刪除Gnome

      sudo apt-get --purge remove liborbit2
      

      徹底刪除KDE

      sudo apt-get --purge remove libqt3-mt libqtcore4
      

      一键安装 LAMP 服務

      sudo tasksel install lamp-server
      

      刪除舊內核

      sudo aptitude purge ~ilinux-image-.*\(\!\(`uname -r`\|generic-.*\)\)
      

      導入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值
      

      增加 add-apt-repository 命令

      sudo apt-get install software-properties-common
      

      增加一個ppa源

      sudo add-apt-repository ppa:user/ppa-name  
      #使用 ppa 的地址替换 ppa:user/ppa-name
      

      添加163鏡像源

      sudo add-apt-repository "deb http://mirrors.163.com/ubuntu/ `lsb_release -cs` main restricted universe multiverse"
      sudo add-apt-repository "deb http://mirrors.163.com/ubuntu/ `lsb_release -cs`-updates main restricted universe multiverse"
      sudo add-apt-repository "deb http://mirrors.163.com/ubuntu/ `lsb_release -cs`-security main restricted universe multiverse"
      

      系統升級

      1. 这里指的是版本间的升级,例如 9.04=>10.04。
      2. 使用该升级方式通常需要使用 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
      

      或者使用

      uname -m
      

      查看Ubuntu版本

      lsb_release -a
      或 cat /etc/lsb-release
      

      查看內核加载的模块

      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
      

      查看內存型號

      sudo dmidecode -t memory
      

      獲取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
      

      硬盤

      查看塊設備

      lsblk
      

      查看硬盤的分区

      sudo fdisk -l
      

      硬盤分区

      #危险!小心操作。
      sudo fdisk /dev/sda
      

      硬盤格式化

      #危险!将第一个分区格式化为 ext3 分区, mkfs.reiserfs mkfs.xfs mkfs.vfat
      sudo mkfs.ext3 /dev/sda1
      

      硬盤检查

      #危险!检查第一个分区,请不要检查已经挂载的分区,否则容易丢失和损坏数据
      sudo fsck /dev/sda1
      

      硬盤坏道检测

      sudo badblocks -s  -v -c 32 /dev/sdb
      #得到坏的块后,使用分区工具隔离坏道。
      

      分區挂載

      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/sda
      

      查看軟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 --help 显示幫助

      查看目錄占用空间

      du -hs 目錄名
      

      閃盤沒法卸載

      sync
      fuser -km /media/闪盘卷标
      

      使用文件來增加交換空間

      #创建一个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
      

      测试硬盤的实际写入速度

      dd if=/dev/zero of=test bs=64k count=512 oflag=dsync
      

      進程

      查看當前的內存使用情況

      free
      

      連續監視內存使用情況

      watch  -d free
      # 使用 Ctrl + c 退出
      

      动态显示進程执行情况

      top
      top指令运行时输入H或?打开幫助窗口,输入Q退出指令。
      

      查看当前有哪些進程

      ps -AFL
      

      查看進程的启动时间

      ps -A -opid,stime,etime,args
      

      查看目前登入用戶運行的程序

      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
      

      列出前十个最耗内存的進程

      ps aux | sort -nk +4 | tail
      

      按cpu利用率从大到小排列進程

      ps -eo "%C  : %p : %z : %a"|sort  -nr
      ps aux --sort -pcpu |head -n 20
      

      查看当前進程树

      pstree
      

      中止一个進程

      kill 進程号(就是ps -A中的第一列的数字)
      或者 killall 進程名
      

      强制中止一个進程(在上面進程中止不成功的时候使用)

      kill -9 進程号
      或者 killall -9 進程名
      

      圖形方式中止一個程序

      xkill 出现骷髅标志的鼠标,点击需要中止的程序即可
      


      查看進程打开的文件

      lsof -p 進程的pid
      

      統計進程打开的文件数并排序

      lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr
      

      显示开启文件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	#杀掉当前窗口
      

      在后台运行交互式程序,退出登錄后,并不结束程序

      tmux 进入后再运行其它命令
      tmux attach #恢复
      #热键,同时按下Ctrl和b键结束后,再按下功能键
      C-b c	#创建一个新的运行shell的窗口并切换到该窗口
      C-b n	#切换到下一个窗口
      C-b p	#切换到前一个窗口(与C-a n相对)
      C-b 0..9	#切换到窗口0..9
      C-b d       #暂时断开会话
      C-b &	#杀掉当前窗口
      

      詳細顯示程序的運行信息

      strace -f -F -o outfile <cmd>
      

      增加系統最大打开文件个数

      #ulimit -SHn
      sudo vim /etc/security/limits.conf
      文件尾追加 
      * hard nofile 4096
      * soft nofile 4096
      
      sudo vim /etc/pam.d/su
      将 pam_limits.so 这一行注释去掉 
      重起系統
      

      清除僵尸進程

      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:[email protected]/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}'
      

      或者

      cat /sys/class/net/eth0/address
      

      同一個網卡增加第二個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 [email protected]
      

      监控網絡所有的tcp数据

      sudo apt-get install snort #安装snort入侵检测程序
      sudo snort -vde
      

      監控TCP/UDP連接的流量

      sudo apt-get install iftop 
      sudo iftop
      #或
      sudo apt-get install iptraf
      sudo iptraf
      

      掃描某個IP的端口

      nc -v -w 1 192.168.1.1 -z 1-1000
      

      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
      

      限制訪問80端口的外部IP最大只有50個並發

      sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 --connlimit-mask 32 -j DROP
      

      禁止一個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/

      防止服務器被暴力破解ssh密碼

      sudo apt-get install denyhosts
      

      查看系統的登錄情况

      last
      

      查看所有帐号的登錄情况

      lastlog
      

      服務

      查看全部服務状态

      service --status-all
      

      添加一个服務

      sudo update-rc.d 服務名 defaults 99
      

      删除一个服務

      sudo update-rc.d 服務名 remove
      

      临时重启一个服務

      service 服務名 restart
      

      临时关闭一个服務

      service 服務名 stop
      

      临时启动一个服務

      service 服務名 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
      

      設置系統http代理

      export http_proxy=http://xx.xx.xx.xx:xxx
      

      設置系統https代理

      export https_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
      

      察看文件編碼

      enca 文件名
      
      file 文件名
      

      轉換文件名由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安装标准的sun-java,安装过程中需要使用tab键切换同意其授权协议
      sudo add-apt-repository "deb http://archive.canonical.com/ `lsb_release -c | awk '{print $2}'` 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 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

      查看具體字體名稱

      fc-match monospace
      wqy-zenhei.ttc: "WenQuanYi Zen Hei Mono" "Regular"
      

      文件管理

      創建一個空文件

      > file.txt
      touch file.txt
      

      一屏查看文件內容

      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文件。
      find . -type f -name \*.php -exec grep -l "info" {} \;
      

      快速查找某個文件

      whereis filename
      find 目錄 -name 文件名
      locate 文件名 # 注意,为了得到更好的效果,运行前可以更新下數據庫,运行 sudo updatedb 即可,但这个命令每隔一段时间会自动运行,所以不用太在意
      

      創建兩個空文件

      touch file1 file2
      

      递归式创建一些嵌套目錄

      mkdir -pv /tmp/xxs/dsd/efd
      

      递归式删除嵌套目錄

      rm -fr /tmp/xxs
      

      回当前用户的宿主目錄

      cd ~ # 这个是波浪线,在 Tab 键的上面
      # 或者更简单的
      cd
      

      回到上一次的目錄

      cd -  # 这个是连字符,在退格键的左边两个
      

      查看当前所在目錄的绝对路经

      pwd
      

      獲得文件的後綴名

      echo xxx.xxx.rmvb |sed 's/.*\(\..*$\)/\1/'
      

      去除文件的後綴名

      echo xxx.xxx.rmvb |sed 's/\(.*\)\..*$/\1/'
      

      列出当前目錄下的所有文件,包括以.开头的隐含文件的具体参数

      ls -al
      

      或(在 Ubuntu 中)

      ll
      

      移動路徑下的文件並改名

      mv 路径/文件  /新路径/新文件名
      

      复制文件或者目錄

      cp -av 原文件或原目錄 新文件或新目錄
      

      查看文件類型

      file filename
      

      查看文件的時間

      stat filename
      

      對比兩個文件之間的差異 

      diff file1 file2
      

      一边比较一边編輯还是彩色的:(需要安装 Vim)

      vimdiff 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 -" #壓縮传输一个目錄并解压
      
      rsync -avh /path/to/file/or/dir [email protected]:/path/to/dir/or/file
      rsync -avh [email protected]:/path/to/file/or/dir /path/to/file/or/dir
      

      把所有文件的後辍由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 zrvpf 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 -exec rm -v {} \;
      

      刪除訪問時間在30天之前的所有文件

      find . -type f -atime +30 -exec rm -v {} \;
      

      查找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 {} \;
      

      删除包含 aaa 字符串的所有文件

      grep -rl "aaa" * |xargs rm -fv
      

      統計當前文件個數

      echo $(($(ll|wc -l)-3));
      

      統計当前目錄下所有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 -A filename| tr -d "^M$" > newfile
      或者
      

      cat -A word|sed -e 's/\^M\$//g' > newfile

      直接修改文件

      ex "+:%s/[Ctrl+V][Enter]//g" "+:wq"  filename 
      

      或者

      dos2unix 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
      

      比较两个目錄里面的文件是否有相同

      diff -r dir1 dir2
      

      比較一個遠程文件和一個本地文件

      ssh [email protected] cat /path/to/remotefile | diff /path/to/localfile -
      

      当file.log里出现Finished: SUCCESS时候就退出tail

      tail -f /path/to/file.log | sed '/^Finished: SUCCESS$/ q'
      

      統計py代碼行數,不包括空行

      find . -name "*.py" | xargs grep '^.' | wc -l
      find . \( -path '*migrations*' -prune -o -name '*.py' \) -type f | xargs grep '^.' | wc -l
      

      統計java代码行数,不包括空行和公共目錄

      find . -path './src/java/com/xxx/common' -prune -o -name '*.java' -print  | xargs grep '^.' | wc -l
      

      給文件增加行號

      nl HelloWorld.java > HelloWorldCode.java
      

      影像

      播放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".

      詳情請查看出處。

      轉換flv到MP4

      #sudo apt-get install ffmpeg
      ffmpeg -i 矜持.flv -ar 22050 矜持.mp4
      

      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 -
      

      合並視頻到一個文件

      mencoder -ovc copy -oac copy -idx  -o 目标文件名 文件名1 文件名2
      

      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 mac
      #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
      
      #sudo apt-get install libav-tools
      ffmpeg -i example.ape example.flac
      

      ape/flac 转换为 mp3

      #sudo apt-get install shntool iconv libav-tools
      ffmpeg -i CDImage.ape CDImage.flac
      iconv -f gbk -t utf-8 CDImage.cue | shntool split -t "%n.%p-%t" -o 'cust ext=mp3 lame --quiet - %f' CDImage.flac
      

      批量将 ape 转为 flac

      find . -name "*.ape" -exec bash -c 'avconv -i "$0" "${0/%ape/flac}"' {} \;
      #此命令将当前目錄(包括子目錄)的所有ape文件转换为flac
      

      批量将 ape 转为 mp3

      for f in *.ape; do gst-launch-0.10 filesrc location="$f" ! decodebin ! audioconvert ! lame vbr=0 bitrate=320 ! id3mux ! filesink location="${f%.ape}.mp3"; done
      #需要安装 shntool
      for i in *.ape; do shnconv -i ape -o "cust ext=mp3 lame -b 320 - %f" "$i" -d mp3OutputDir; done
      

      批量将 ape 转为 m4a

      for f in *.ape; do ffmpeg -i  "$f" -acodec alac "${f%.ape}.m4a"; done
      

      批量将 ape 转为 aac

      for f in *.ape; do ffmpeg -i  "$f" -acodec aac -strict experimental -ab 256k "${f%.ape}.aac"; 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
      

      將文字轉爲圖片

      convert -size 200x30 xc:transparent -font /usr/share/fonts/truetype/wqy/wqy-microhei.ttc -fill red -pointsize 16 -draw "text 5,15 '测试中文转为图片'" test.png
      

      如何壓縮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
      #将所有已txt结尾的文件都加入到files.7z
      7z a -t7z files.7z *.txt
      #解壓縮files.zip
      7z x files.zip
      #删除 files.zip中所有已bak结尾的文件
      7z d -r files.zip *.bak 
      #列出file.7z中所有的文件信息
      7z l files.7z
      #测试files.zip中所有doc结尾文件的正确性
      7z t -r files.zip *.doc 
      #更新files.zip中的所有doc结尾的文件(不是所有的壓縮格式都支持更新这一选项)
      7z u files.zip *.doc
      

      增加 rar 格式解压和壓縮支持

      #解压
      sudo apt-get install unrar
      #壓縮
      #源里的rar包有文件名乱码问题,不建议使用。
      #如果确实需要rar壓縮功能,请到以下网址直接下载RAR for Linux
      #http://www.rarlab.com/download.htm
      

      增加 zip 格式解压和壓縮支持

      #解压
      sudo apt-get install unzip
      #壓縮
      sudo apt-get install zip
      

      解壓縮 xxx.tar.gz

      tar -xf xxx.tar.gz
      

      解壓縮 xxx.tar.bz2

      tar -xf xxx.tar.bz2
      

      解壓縮 xxx.tar.xz

      tar -Jxf xxx.tar.xz
      

      壓縮aaa bbb目錄为xxx.tar.gz

      tar -zcvf xxx.tar.gz aaa bbb
      

      壓縮aaa bbb目錄为xxx.tar.bz2

      tar -jcvf xxx.tar.bz2 aaa bbb
      

      壓縮aaa bbb目錄为xxx.tar.xz

      tar -Jcvf xxx.tar.xz 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 |grep 文
      获取安装的中文字体信息
      

      文件管理器(比如nautilus)的地址栏里输入 ~/.fonts ,就可以查看当前用户拥有的fonts——而系統通用字体位于 /usr/share/fonts

      日期和時間

      顯示日曆

      cal # 显示当月日历
      cal 2 2007 # 显示2007年2月的日历
      

      顯示農曆

      #sudo apt-get install lunar
      date '+%Y %m %d %H' |xargs lunar --utf8
      

      設置日期

      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 dpkg-reconfigure tzdata
      

      然后根据提示选择 Asia/Shanghai。这样在升级了 tzdata 包之后时区也是对的。

      XP 和 Ubuntu 相差了 8 小时的时差

      #关闭UTC,将当前时间写入CMOS。
      sudo sed -ie 's/UTC=yes/UTC=no/g' /etc/default/rcS
      sudo hwclock --systohc
      

      將時間截轉爲時間

      date [email protected]
      

      工作區

      不同工作區间切换

      Ctrl + ALT + ←
      Ctrl + ALT + →
      或者,将滚轮鼠标放在工作區图标上滚动
      

      控制台

      指定控制台切換

      Ctrl + ALT + Fn(n:1~7)
      

      控制台下滾屏

      SHIFT + pageUp/pageDown
      

      控制台抓圖

      setterm -dump n(n:1~7)
      

      只是支持tty1-7。沒中文。沒顔色代碼序列。

      回到上一次的目錄

      cd –
      

      以root的身份執行上一條命令

      sudo !!
      

      數據庫

      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 变量
      

      mysql的自動備份

      #备份 forum myweb 數據庫到 /backup/mysql 目錄,并删除7天之前的备份记录
      mysqldump --opt --skip-lock-tables -u root forum | gzip -9 > /backup/mysql/forum.`date +%Y%m%d`.sql.gz
      mysqldump --opt --skip-lock-tables -u root myweb | gzip -9 > /backup/mysql/myweb.`date +%Y%m%d`.sql.gz
      find /backup/mysql/ -type f -ctime +7 -exec rm {} \;
      

      控制

      如何使用命令關閉顯示器

      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                            删除直到工作缓存区开始的内容
      ci{                            删除修改光标所在的{}中的所有内容,change in { 的简写
      ca{                            删除修改光标所在的{}中的所有内容,包括{}
      ci"                            删除修改光标所在的""中的所有内容,change in " 的简写
      ca"                            删除修改光标所在的""中的所有内容,包括{}
      ci(                            删除修改光标所在的()中的所有内容,change in ( 的简写
      ca(                            删除修改光标所在的()中的所有内容,包括{}
      

      vim一個遠程文件

      vim scp://[email protected]//path/to/somefile
      

      如何配置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中文亂碼的解決

      gsettings set org.gnome.gedit.preferences.encodings auto-detected "['GB18030', 'UTF-8', 'CURRENT', 'ISO-8859-15', 'UTF-16']"
      

      編譯和打包

      安裝通用編譯環境

      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
      

      安装 gtk+ 编译环境

      sudo apt-get install build-essential libgtk2.0-dev
      

      其它

      把終端加到右鍵菜單

      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
      

      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秒抓当前激活窗口
      

      回收站在哪裏

      ~/.local/share/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 去申請免費一年的許可證號
      

      應用合適的字體顯示尺寸

      獲取信息

      xdpyinfo | grep -B1 dot
      

      例如

       dimensions:    1440x900 pixels (333x212 millimeters)
       resolution:    110x108 dots per inch
      

      获取X server信息

      grep DPI /var/log/Xorg.0.log
      

      例如

      [    19.244] (--) NVIDIA(0): DPI set to (110, 108); computed from "UseEdidDpi" X config
      

      这里設置的X DPI会被桌面的顶替,找到你自己的替换,如上的DPI从默认的96改为109。

      重新配置鍵盤類型

      sudo dpkg-reconfigure keyboard-configuration
      

      重新載入聲卡驅動模塊

      有时候折腾系統突软声卡无法发声了,又不想重启系統,直接重启声卡驱动模块:

      pulseaudio -k && sudo alsa force-reload
      

      或者

      sudo service pulseaudio restart
      
      取自“https://wiki.ubuntu.org.cn/index.php?title=UbuntuSkills&oldid=152282”
      HoMEmenuCopyrights 2015.All rights reserved.More welcome - Collect from power by english Blok number sss85786789633111 Copyright