ubuntu技巧学习资料.doc
如有侵权,请联系网站删除,仅供学习与交流ubuntu技巧【精品文档】第 35 页Ubuntu 命令技巧 目录· o o o o o o o o o o o o o o o o · o o o o o o o o · o o o o o o o o o o o o · o o o o o o o o o o o o o o · o o o o o o · o o o o o o o o o o o o o o o o o o o o o · o o o o o · o o o o o o o · o o o o · o o o o o o o o o · o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o · o o o o o o o o · o o o o · o o o o o o o o o · o · o o o · o o o o · o o o o o · o o o · o o o o o o o o o o o o o o o o o 安装升级 查看软件xxx安装内容 dpkg -L xxx 查找软件 apt-cache search 正则表达式查找文件属于哪个包 dpkg -S filenameapt-file search filename查询软件xxx依赖哪些包 apt-cache depends xxx查询软件xxx被哪些包依赖 apt-cache rdepends xxx增加一个光盘源 sudo apt-cdrom add系统升级 sudo apt-get updatesudo apt-get dist-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 < /somefilesudo dselect清理旧版本的软件缓存 sudo apt-get autoclean清理所有软件缓存 sudo apt-get clean删除系统不再使用的孤立软件 sudo apt-get autoremove查看包在服务器上面的地址 apt-get -qq -print-uris install ssh | cut -d' -f2系统 查看内核 uname -a查看Ubuntu版本 cat /etc/issue或者 lsb_release -a查看内核加载的模块 lsmod查看PCI设备 lspci查看USB设备 lsusb #加参数 -v 可以显示USB设备的描述表(descriptors)lsusb -v查看网卡状态 sudo ethtool eth0查看CPU信息 cat /proc/cpuinfo显示当前硬件信息 sudo lshw硬盘 查看硬盘的分区 sudo fdisk -l硬盘分区 #危险!小心操作。sudo fdisk /dev/sda硬盘格式化 #危险!将第一个分区格式化为 ext3 分区, mkfs.reiserfs mkfs.xfs mkfs.vfatsudo 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 目录名或设备名查看IDE硬盘信息 sudo hdparm -i /dev/hda查看STAT硬盘信息 sudo hdparm -I /dev/sda或sudo apt-get install blktoolsudo 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 目录名优盘没法卸载 syncfuser -km /media/usbdisk使用文件来增加交换空间 #创建一个512M的交换文件 /swapfilesudo dd if=/dev/zero of=/swapfile bs=1M count=512 sudo mkswap /swapfilesudo swapon /swapfile#sudo vim /etc/fstab #加到fstab文件中让系统引导时自动启动/swapfile swap swap defaults 0 0进程 查看当前的内存使用情况 freeusage: 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动态显示进程执行情况 toptop指令运行时输入H或?打开帮助窗口,输入Q退出指令。查看当前有哪些进程 ps -A查看当前进程树 pstree中止一个进程 kill 进程号(就是ps -A中的第一列的数字)或者 killall 进程名强制中止一个进程(在上面进程中止不成功的时候使用) kill -9 进程号或者 killall -9 进程名图形方式中止一个程序 xkill 出现骷髅标志的鼠标,点击需要中止的程序即可查看进程打开的文件 lsof -p显示开启文件abc.txt的进程 lsof abc.txt 显示22端口现在运行什么程序 lsof -i :22 显示nsd进程现在打开的文件 lsof -c nsd在后台运行程序,退出登录后,并不结束程序 nohup 程序 &#查看中间运行情况tail nohup详细显示程序的运行信息 strace -f -F -o outfile <cmd>增加系统最大打开文件个数 echo 4096 > /proc/sys/fs/file-max#或者ulimit -n 4096ADSL 配置 ADSL sudo pppoeconfADSL手工拨号 sudo pon dsl-provider激活 ADSL sudo /etc/ppp/pppoe_on_boot断开 ADSL sudo poff查看拨号日志 sudo plog如何设置动态域名 #首先去 申请一个动态域名#然后修改 /etc/ppp/ip-up 增加拨号时更新域名指令sudo vim /etc/ppp/ip-up#在最后增加如下行w3m -no-cookie -dump '网络 根据IP查网卡地址 arping IP地址根据IP查电脑名 nmblookup -A IP地址查看当前IP地址 ifconfig eth0 |awk '/inet/ split($2,x,":");print x2'查看当前外网的IP地址 w3m -no-cookie -dump |grep -o '0-91,3.0-91,3.0-91,3.0-91,3'w3m -no-cookie -dump |grep -o '0-91,3.0-91,3.0-91,3.0-91,3'查看当前监听80端口的程序 lsof -i :80查看当前网卡的物理地址 arp -a | awk 'print $4'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_forwardsudo iptables -t nat -I POSTROUTING -j MASQUERADE查看路由信息 netstat -rnsudo route -n手工增加删除一条路由 sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1sudo 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 #然后启动网卡对7.10的永久改地址方法sudo gedit /etc/network/interfaces在 iface eth0 inet static 后面添加一行: pre-up ifconfig eth0 hw ether 01:01:01:01:01:01配置文件应该像如下 face eth0 inet static pre-up ifconfig eth0 hw ether 01:01:01:01:01:01address 192.168.1.10netmask 255.255.255.0gateway 192.168.1.1最后是 logout 或者reboot 统计当前IP连接的个数 netstat -na|grep ESTABLISHED|awk 'print $5'|awk -F: 'print $1'|sort|uniq -c|sort -r -nnetstat -na|grep SYN|awk 'print $5'|awk -F: 'print $1'|sort|uniq -c|sort -r -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查看网络的当前流量 #安装 ethstatus 软件sudo apt-get install ethstatus#查看 ADSL 的速度sudo ethstatus -i ppp0#查看 网卡 的速度sudo ethstatus -i eth0查看域名的注册备案情况 whois 查看到某一个域名的路由情况 tracepath 重新从服务器获得IP地址 sudo dhclient下载网站文档 wget -r -p -np -k · -r:在本机建立服务器端目录结构;· -p: 下载显示HTML文件的所有图片;· -np:只下载目标站点指定目录及其子目录的内容;· -k: 转换非相对链接为相对链接。如何多线程下载 sudo apt-get install axelaxel -n 5 或者lftp -c "pget -n 5 服务 添加一个服务 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 用户名设置 配置默认Java使用哪个 sudo update-alternatives -config java给apt设置代理 export http_proxy=修改系统登录信息 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 convmvconvmv -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/* srcrm -fr utf8转换文件内容由GBK到UTF8 iconv -f gbk -t utf8 $i > newfile 转换 mp3 标签编码 sudo apt-get install python-mutagenfind . -iname '*.mp3' -execdir mid3iconv -e GBK ;控制台下显示中文 sudo apt-get install zhcon使用时,输入zhcon即可更具体的输入:zhcon -utf8 -drv=vgazhcon是个外挂的控制平台,也就是像US-DOS那样是额外安装的软件,装完后是需要驱动才能进去的,不然有可能死机; 当然驱动什么的在你sudo apt-get install zhcon的时候就已经安装了; 你所需要的是在进zhcon时要申明你所用的驱动,而zhcon在安装时,就装了3种驱动:vga,framebuffer,libggi,而我们一般都是用的第一种驱动,因为比较方便简单,而那2钟驱动.很麻烦,我也就没改过.好了说了这么多该告诉各位怎么进入zhcon了;运行时需输入:zhcon -utf8 -drv=vga lftp 登录远程Windows中文FTPlftp :>set ftp:charset GBKlftp :>set file:charset UTF-8java6 的安装和中文设置 sudo apt-get install openjdk-6-jdk openjdk-6-doc openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-libsudo apt-get remove ttf-kochi-gothic ttf-kochi-mincho ttf-unfonts ttf-unfonts-coresudo mkdir -p /usr/lib/jvm/java-6-openjdk/jre/lib/fonts/fallbacksudo ln -s /usr/share/fonts/truetype/arphic/uming.ttc /usr/lib/jvm/java-6-openjdk/jre/lib/fonts/fallbackPDF 文件乱码 sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional poppler-data文件管理 一屏查看文件内容 cat 文件名分页查看文件内容 more 文件名可控分页查看文件内容 less 文件名根据字符串匹配来查看文件部分内容 grep 字符串 文件名显示包含或者不包含字符串的文件名 grep -l -r 字符串 路径#显示内容包含字符串的文件名grep -L -r 字符串 路径#显示内容不包含字符串的文件名快速查找某个文件 whereis filenamefind 目录 -name 文件名创建两个空文件 touch file1 file2递归式创建一些嵌套目录 mkdir p /tmp/xxs/dsd/efd递归式删除嵌套目录 rm fr /tmp/xxs回当前用户的宿主目录 cd 查看当前所在目录的绝对路经 pwd列出当前目录下的所有文件,包括以.开头的隐含文件 ls -a移动路经下的文件并改名 mv 路经/文件 /新路经/新文件名复制文件或者目录 cp -av 原文件或原目录 新文件或新目录查看文件类型 file filename对比两个文件之间的差异diff file1 file2显示xxx文件倒数6行的内容 tail -n 6 xxx让tail不停地读取最新的内容 tail -n 10 -f /var/log/apache2/access.log或者 tailf /var/log/apache2/access.log查看文件中间的第五行(含)到第10行(含)的内容 sed -n '5,10p' /var/log/apache2/access.log查找关于xxx的命令 apropos xxxman -k xxx通过ssh传输文件 scp -rp /path/filename usernameremoteIP:/path #将本地文件拷贝到服务器上scp -rp usernameremoteIP:/path/filename /path #将远程文件从服务器下载到本地tar cvzf - /path/ | ssh usernameremoteip "cd /some/path/; cat -> path.tar.gz" #压缩传输tar cvzf - /path/ | ssh usernameremoteip "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 ;显示系统服务器一小时以内的包含 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 ;删除当前目录里面所有的 .svn 目录 find . -name .svn -type d -exec rm -fr ;删除当前目录所有以“”结尾的临时文件 find . -name "*" -exec rm ;统计当前文件个数 ls /usr/bin|wc -w统计当前目录个数 ls -l /usr/bin|grep d|wc -l显示当前目录下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;"压缩 增加 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解压缩 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 cabextractNautilus 显示隐藏文件 Ctrl+h显示地址栏 Ctrl+l特殊 URI 地址 * computer:/ - 全部挂载的设备和网络* network:/ - 浏览可用的网络* burn:/ - 一个刻录 CDs/DVDs 的数据虚拟目录* smb:/ - 可用的 windows/samba 网络资源* x-nautilus-desktop:/ - 桌面项目和图标* file:/ - 本地文件* trash:/ - 本地回收站目录* ftp:/ - FTP 文件夹* ssh:/ - SSH 文件夹* fonts:/ - 字体文件夹,可将字体文件拖到此处以完成安装* themes:/ - 系统主题文件夹查看已安装字体 在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 sudo ntpdate time.nist.gov设置电脑的时区为上海 sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeXP 和 Ubuntu 相差了 8 小时的时差 #关闭UTC,将当前时间写入CMOS。sudo sed -ie 's/UTC=yes/UTC=no/g' /etc/default/rcSsudo hwclock -systohc工作区 不同工作区间切换 Ctrl + ALT + Ctrl + ALT + 或者,将滚轮鼠标放在工作区图标上滚动控制台 指定控制台切换 Ctrl + ALT + Fn(n:17)控制台下滚屏 SHIFT + pageUp/pageDown控制台抓图 setterm -dump n(n:17)数据库 mysql的数据库存放在地方 /var/lib/mysql从mysql中导出和导入数据 mysqldump 数据库名 > 文件名 #导出数据库mysqladmin create 数据库名 #建立数据库mysql 数据库名 < 文件名 #导入数据库忘了mysql的root口令怎么办 sudo /etc/init.d/mysql stopsudo mysqld_safe -skip-grant-tables &sudo mysqladmin -u user password 'newpasswordsudo mysqladmin flush-privileges修改mysql的root口令 sudo mysqladmin -u root -p password '你的新密码'控制 如何使用命令关闭显示器 xset dpms force off设置CPU的频率 sudo apt-get install cpufrequtils #查看cpu当前频率信息sudo cpufreq-info 设置模式,对应于最省电(最低频率),用户控制,最高或最低,正常,最大性能 cpufreq-set -g powersave, userspace, ondemand, conservative, performance命令关机 sudo haltsudo shutdown -h now #现在关机sudo shutdown -h 23:00 #晚上11点自动关机sudo shutdown -h +3600 #一小时后关机命令重启电脑 sudo rebootsudo shutdown -r now如何使用命令关闭笔记本的触摸板 synclient touchpadoff=1那么开启触摸板就是:synclient touchpadoff=0统计 统计最常用的10条命令 history | awk 'CMD$2+;count+;