UbuntuSkills:修订间差异
无编辑摘要 |
|||
第1行: | 第1行: | ||
Ubuntu 命令技巧 | Ubuntu 命令技巧 | ||
== 安装升级 == | == 安装升级 == | ||
=== 查看软件xxx安装内容 === | === 查看软件xxx安装内容 === | ||
dpkg -L xxx | dpkg -L xxx | ||
=== 查找软件库中的软件 === | === 查找软件库中的软件 === | ||
apt-cache search 正则表达式 | apt-cache search 正则表达式 | ||
aptitude search 软件包 | |||
aptitude search 软件包 | |||
=== 查找文件属于哪个包 === | === 查找文件属于哪个包 === | ||
dpkg -S filename | dpkg -S filename | ||
apt-file search filename | apt-file search filename | ||
=== 查询软件xxx依赖哪些包 === | === 查询软件xxx依赖哪些包 === | ||
apt-cache depends xxx | apt-cache depends xxx | ||
=== 查询软件xxx被哪些包依赖 === | === 查询软件xxx被哪些包依赖 === | ||
apt-cache rdepends xxx | apt-cache rdepends xxx | ||
=== 增加一个光盘源 === | === 增加一个光盘源 === | ||
sudo apt-cdrom add | sudo apt-cdrom add | ||
=== 系统升级 === | === 系统升级 === | ||
sudo apt-get update | sudo apt-get update | ||
sudo apt-get dist-upgrade | sudo apt-get dist-upgrade | ||
=== 清除所有已删除包的残馀配置文件 === | === 清除所有已删除包的残馀配置文件 === | ||
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P | dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P | ||
如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。 | 如果报如下错误,证明你的系统中没有残留配置文件了,无须担心。 | ||
---- | ---- | ||
dpkg: --purge needs at least one package name argument | dpkg: --purge needs at least one package name argument | ||
Type dpkg --help for help about installing and deinstalling packages [*];<br> Use `dselect' or `aptitude' for user-friendly package management;<br> Type dpkg -Dhelp for a list of dpkg debug flag values;<br> Type dpkg --force-help for a list of forcing options;<br> Type dpkg-deb --help for help about manipulating *.deb files;<br> Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*].<br> | Type dpkg --help for help about installing and deinstalling packages [*];<br> Use `dselect' or `aptitude' for user-friendly package management;<br> Type dpkg -Dhelp for a list of dpkg debug flag values;<br> Type dpkg --force-help for a list of forcing options;<br> Type dpkg-deb --help for help about manipulating *.deb files;<br> Type dpkg --license for copyright license and lack of warranty (GNU GPL) [*].<br> | ||
Options marked [*] produce a lot of output - pipe it through `less' or `more' ! | Options marked [*] produce a lot of output - pipe it through `less' or `more' ! | ||
<br> | <br> | ||
---- | ---- | ||
=== 编译时缺少h文件的自动处理 === | === 编译时缺少h文件的自动处理 === | ||
sudo auto-apt run ./configure | sudo auto-apt run ./configure | ||
=== 查看安装软件时下载包的临时存放目录 === | === 查看安装软件时下载包的临时存放目录 === | ||
ls /var/cache/apt/archives | ls /var/cache/apt/archives | ||
=== 备份当前系统安装的所有包的列表 === | === 备份当前系统安装的所有包的列表 === | ||
dpkg --get-selections | grep -v deinstall > ~/somefile | dpkg --get-selections | grep -v deinstall > ~/somefile | ||
=== 从上面备份的安装包的列表文件恢复所有包 === | === 从上面备份的安装包的列表文件恢复所有包 === | ||
dpkg --set-selections < ~/somefile | dpkg --set-selections < ~/somefile | ||
sudo dselect | sudo dselect | ||
=== 清理旧版本的软件缓存 === | === 清理旧版本的软件缓存 === | ||
sudo apt-get autoclean | sudo apt-get autoclean | ||
=== 清理所有软件缓存 === | === 清理所有软件缓存 === | ||
sudo apt-get clean | sudo apt-get clean | ||
=== 删除系统不再使用的孤立软件 === | === 删除系统不再使用的孤立软件 === | ||
sudo apt-get autoremove | sudo apt-get autoremove | ||
=== 查看包在服务器上面的地址 === | === 查看包在服务器上面的地址 === | ||
apt-get -qq --print-uris install ssh | cut -d\' -f2 | apt-get -qq --print-uris install ssh | cut -d\' -f2 | ||
== 系统 == | == 系统 == | ||
=== 查看内核 === | === 查看内核 === | ||
uname -a | uname -a | ||
=== 查看Ubuntu版本 === | === 查看Ubuntu版本 === | ||
cat /etc/issue | cat /etc/issue | ||
或者 | 或者 | ||
lsb_release -a | lsb_release -a | ||
=== 查看内核加载的模块 === | === 查看内核加载的模块 === | ||
lsmod | lsmod | ||
=== 查看PCI设备 === | === 查看PCI设备 === | ||
lspci | lspci | ||
=== 查看USB设备 === | === 查看USB设备 === | ||
lsusb | lsusb | ||
第113行: | 第135行: | ||
#加参数 -v 可以显示USB设备的描述表(descriptors) | #加参数 -v 可以显示USB设备的描述表(descriptors) | ||
lsusb -v | lsusb -v | ||
=== 查看网卡状态 === | === 查看网卡状态 === | ||
sudo ethtool eth0 | sudo ethtool eth0 | ||
=== 查看CPU信息 === | === 查看CPU信息 === | ||
cat /proc/cpuinfo | cat /proc/cpuinfo | ||
=== 显示当前硬件信息 === | === 显示当前硬件信息 === | ||
sudo lshw | sudo lshw | ||
=== 显示当前内存大小 === | |||
free -m |grep "Mem" | awk '{print $2}' | free -m |grep "Mem" | awk '{print $2}' | ||
=== 显示系统运行时间 === | |||
$ uptime | $ uptime | ||
11:47:04 up 85 days, 2:10, 1 user, load average: 2.40, 2.18, 2.34 | 11:47:04 up 85 days, 2:10, 1 user, load average: 2.40, 2.18, 2.34 | ||
== 硬盘 == | == 硬盘 == | ||
=== 查看硬盘的分区 === | === 查看硬盘的分区 === | ||
sudo fdisk -l | sudo fdisk -l | ||
=== 硬盘分区 === | === 硬盘分区 === | ||
#危险!小心操作。 | #危险!小心操作。 | ||
sudo fdisk /dev/sda | sudo fdisk /dev/sda | ||
=== 硬盘格式化 === | === 硬盘格式化 === | ||
#危险!将第一个分区格式化为 ext3 分区, mkfs.reiserfs mkfs.xfs mkfs.vfat | #危险!将第一个分区格式化为 ext3 分区, mkfs.reiserfs mkfs.xfs mkfs.vfat | ||
sudo mkfs.ext3 /dev/sda1 | sudo mkfs.ext3 /dev/sda1 | ||
=== 硬盘检查 === | === 硬盘检查 === | ||
#危险!检查第一个分区,请不要检查已经挂载的分区,否则容易丢失和损坏数据 | #危险!检查第一个分区,请不要检查已经挂载的分区,否则容易丢失和损坏数据 | ||
sudo fsck /dev/sda1 | sudo fsck /dev/sda1 | ||
=== 分区挂载 === | === 分区挂载 === | ||
sudo mount -t 文件系统类型 设备路经 访问路经 | sudo mount -t 文件系统类型 设备路经 访问路经 | ||
第161行: | 第194行: | ||
#如果中文名无法显示尝试在最後增加 -o nls=utf8 或 -o iocharset=utf8 | #如果中文名无法显示尝试在最後增加 -o nls=utf8 或 -o iocharset=utf8 | ||
#如果需要挂载後,普通用户也可以使用,在 -o 的参数後面增加 ,umask=022 如:-o nls=utf8,umask=022 | #如果需要挂载後,普通用户也可以使用,在 -o 的参数後面增加 ,umask=022 如:-o nls=utf8,umask=022 | ||
=== 分区卸载 === | |||
sudo umount 目录名或设备名 | sudo umount 目录名或设备名 | ||
=== 只读挂载ntfs分区 === | |||
=== 只读挂载ntfs分区 === | |||
sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c | sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c | ||
=== 可写挂载ntfs分区 === | |||
=== 可写挂载ntfs分区 === | |||
sudo mount -t ntfs-3g -o locale=zh_CN.utf8,umask=0 /dev/sdb1 /mnt/c | sudo mount -t ntfs-3g -o locale=zh_CN.utf8,umask=0 /dev/sdb1 /mnt/c | ||
=== 挂载fat32分区 === | |||
=== 挂载fat32分区 === | |||
sudo mount -t vfat -o iocharset=utf8,umask=0 /dev/sda1 /mnt/c | 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 | sudo mount -t smbfs -o username=xxx,password=xxx,iocharset=utf8 //192.168.1.1/share /mnt/share | ||
=== 挂载ISO文件 === | |||
=== 挂载ISO文件 === | |||
sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso | sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso | ||
=== 查看IDE硬盘信息 === | === 查看IDE硬盘信息 === | ||
sudo hdparm -i /dev/hda | sudo hdparm -i /dev/hda | ||
=== 查看STAT硬盘信息 === | === 查看STAT硬盘信息 === | ||
sudo hdparm -I /dev/sda | sudo hdparm -I /dev/sda | ||
第185行: | 第237行: | ||
sudo apt-get install blktool | sudo apt-get install blktool | ||
sudo blktool /dev/sda id | sudo blktool /dev/sda id | ||
=== 查看硬盘剩馀空间 === | === 查看硬盘剩馀空间 === | ||
df | df | ||
用法:df [选项]... [文件]...显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。 | |||
长选项必须用的参数在使用短选项时也是必需的。 | 长选项必须用的参数在使用短选项时也是必需的。 | ||
-a, --all 包括大小为 0 个块的文件系统 | -a, --all 包括大小为 0 个块的文件系统 | ||
第209行: | 第263行: | ||
--help 显示此帮助信息并离开 | --help 显示此帮助信息并离开 | ||
--version 显示版本信息并离开 | --version 显示版本信息并离开 | ||
=== 查看目录占用空间 === | === 查看目录占用空间 === | ||
du -hs 目录名 | du -hs 目录名 | ||
=== 优盘没法卸载 === | === 优盘没法卸载 === | ||
sync | sync | ||
fuser -km /media/usbdisk | fuser -km /media/usbdisk | ||
=== 使用文件来增加交换空间 === | === 使用文件来增加交换空间 === | ||
#创建一个512M的交换文件 /swapfile | #创建一个512M的交换文件 /swapfile | ||
第227行: | 第284行: | ||
#sudo vim /etc/fstab #加到fstab文件中让系统引导时自动启动 | #sudo vim /etc/fstab #加到fstab文件中让系统引导时自动启动 | ||
/swapfile swap swap defaults 0 0 | /swapfile swap swap defaults 0 0 | ||
=== 查看硬盘当前读写情况 === | |||
#每2秒刷新一次 | #每2秒刷新一次 | ||
sudo iostat -x 2 | sudo iostat -x 2 | ||
== 进程 == | == 进程 == | ||
=== 查看当前的内存使用情况 === | === 查看当前的内存使用情况 === | ||
free | free | ||
usage: free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V] | |||
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 | -b,-k,-m,-g show output in bytes, KB, MB, or GB | ||
-l show detailed low and high memory statistics | -l show detailed low and high memory statistics | ||
第245行: | 第308行: | ||
-c update [count] times | -c update [count] times | ||
-V display version information and exit | -V display version information and exit | ||
=== 连续监视内存使用情况 === | |||
=== 连续监视内存使用情况 === | |||
watch -d free | watch -d free | ||
=== 动态显示进程执行情况 === | === 动态显示进程执行情况 === | ||
第252行: | 第319行: | ||
top | top | ||
top指令运行时输入H或?打开帮助窗口,输入Q退出指令。 | top指令运行时输入H或?打开帮助窗口,输入Q退出指令。 | ||
=== 查看当前有哪些进程 === | === 查看当前有哪些进程 === | ||
ps -AFL | ps -AFL | ||
=== 统计程序的内存耗用 === | |||
ps -eo fname,rss|awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}'|sort -k2 -nr | 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 -eo "%C | |||
=== 按cpu利用率从大到小排列进程 === | === 按cpu利用率从大到小排列进程 === | ||
ps -eo "%C | |||
ps -eo "%C : %p : %z : %a"|sort -nr | |||
=== 查看当前进程树 === | |||
pstree | pstree | ||
=== 中止一个进程 === | === 中止一个进程 === | ||
kill 进程号(就是ps -A中的第一列的数字) | kill 进程号(就是ps -A中的第一列的数字) | ||
或者 killall 进程名 | 或者 killall 进程名 | ||
=== 强制中止一个进程(在上面进程中止不成功的时候使用) === | === 强制中止一个进程(在上面进程中止不成功的时候使用) === | ||
kill -9 进程号 | kill -9 进程号 | ||
或者 killall -9 进程名 | 或者 killall -9 进程名 | ||
=== 图形方式中止一个程序 === | === 图形方式中止一个程序 === | ||
xkill 出现骷髅标志的鼠标,点击需要中止的程序即可 | xkill 出现骷髅标志的鼠标,点击需要中止的程序即可 | ||
<br> | |||
=== 查看进程打开的文件 === | |||
=== 查看进程打开的文件 === | |||
lsof -p | lsof -p | ||
=== 显示开启文件abc.txt的进程 === | === 显示开启文件abc.txt的进程 === | ||
lsof abc.txt | lsof abc.txt | ||
=== 显示22端口现在运行什么程序 === | === 显示22端口现在运行什么程序 === | ||
lsof -i :22 | lsof -i :22 | ||
=== 显示nsd进程现在打开的文件 === | === 显示nsd进程现在打开的文件 === | ||
lsof -c nsd | lsof -c nsd | ||
=== | === 在后台运行程序,退出登录后,并不结束程序 === | ||
nohup 程序 & | nohup 程序 & | ||
#查看中间运行情况 tail nohup | #查看中间运行情况 tail nohup | ||
=== 详细显示程序的运行信息 === | === 详细显示程序的运行信息 === | ||
strace -f -F -o outfile <cmd> | strace -f -F -o outfile <cmd> | ||
=== 增加系统最大打开文件个数 === | === 增加系统最大打开文件个数 === | ||
echo 4096 | |||
echo 4096 > /proc/sys/fs/file-max | |||
#或者 | #或者 | ||
ulimit -n 4096 | ulimit -n 4096 | ||
=== 清除僵死进程 === | |||
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | sudo kill -9 | ps -eal | awk '{ if ($2 == "Z") {print $4}}' | sudo kill -9 | ||
== ADSL == | == ADSL == | ||
=== 配置 ADSL === | === 配置 ADSL === | ||
sudo pppoeconf | sudo pppoeconf | ||
=== ADSL手工拨号 === | === ADSL手工拨号 === | ||
sudo pon dsl-provider | sudo pon dsl-provider | ||
=== 激活 ADSL === | === 激活 ADSL === | ||
sudo /etc/ppp/pppoe_on_boot | sudo /etc/ppp/pppoe_on_boot | ||
=== 断开 ADSL === | === 断开 ADSL === | ||
sudo poff | sudo poff | ||
=== 查看拨号日志 === | === 查看拨号日志 === | ||
sudo plog | sudo plog | ||
=== 如何设置动态域名 === | === 如何设置动态域名 === | ||
#首先去 http://www.3322.org 申请一个动态域名 | #首先去 http://www.3322.org 申请一个动态域名 | ||
第347行: | 第442行: | ||
#在最後增加如下行 | #在最後增加如下行 | ||
w3m -no-cookie -dump 'http://username:[email protected]/dyndns/update?system=dyndns&hostname=yourdns.3322.org' | w3m -no-cookie -dump 'http://username:[email protected]/dyndns/update?system=dyndns&hostname=yourdns.3322.org' | ||
== 网络 == | == 网络 == | ||
=== 根据IP查网卡地址 === | === 根据IP查网卡地址 === | ||
arping IP地址 | arping IP地址 | ||
=== 根据IP查电脑名 === | === 根据IP查电脑名 === | ||
nmblookup -A IP地址 | nmblookup -A IP地址 | ||
=== 查看当前IP地址 === | === 查看当前IP地址 === | ||
ifconfig eth0 |awk '/inet/ {split($2,x,":");print x[2]}' | ifconfig eth0 |awk '/inet/ {split($2,x,":");print x[2]}' | ||
=== 查看当前外网的IP地址 === | === 查看当前外网的IP地址 === | ||
w3m -no-cookie -dump www.123cha.com|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | w3m -no-cookie -dump www.123cha.com|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\}' | 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\}' | ||
=== 查看当前监听80端口的程序 === | === 查看当前监听80端口的程序 === | ||
lsof -i :80 | lsof -i :80 | ||
=== 查看当前网卡的物理地址 === | === 查看当前网卡的物理地址 === | ||
arp -a | awk '{print $4}' | arp -a | awk '{print $4}' | ||
ifconfig eth0 | head -1 | awk '{print $5}' | ifconfig eth0 | head -1 | awk '{print $5}' | ||
=== 同一个网卡增加第二个IP地址 === | === 同一个网卡增加第二个IP地址 === | ||
#在网卡eth0上增加一个1.2.3.4的IP: | #在网卡eth0上增加一个1.2.3.4的IP: | ||
第382行: | 第484行: | ||
#删除增加的IP: | #删除增加的IP: | ||
sudo ifconfig eth0:0 down | sudo ifconfig eth0:0 down | ||
=== 立即让网络支持nat === | === 立即让网络支持nat === | ||
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward | echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward | ||
sudo iptables -t nat -I POSTROUTING -j MASQUERADE | sudo iptables -t nat -I POSTROUTING -j MASQUERADE | ||
=== 查看路由信息 === | === 查看路由信息 === | ||
netstat -rn | netstat -rn | ||
sudo route -n | sudo route -n | ||
=== 手工增加删除一条路由 === | === 手工增加删除一条路由 === | ||
sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 | 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 | sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 | ||
=== 修改网卡MAC地址的方法 === | === 修改网卡MAC地址的方法 === | ||
sudo ifconfig eth0 down #关闭网卡 | sudo ifconfig eth0 down #关闭网卡 | ||
sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #然后改地址 | sudo ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE #然后改地址 | ||
sudo ifconfig eth0 up #然后启动网卡 | sudo ifconfig eth0 up #然后启动网卡 | ||
对7.10的永久改地址方法 | 对7.10的永久改地址方法 | ||
sudo gedit /etc/network/interfaces | sudo gedit /etc/network/interfaces | ||
在 iface eth0 inet static 后面添加一行: | 在 iface eth0 inet static 后面添加一行: | ||
pre-up ifconfig eth0 hw ether 01:01:01:01:01:01 | pre-up ifconfig eth0 hw ether 01:01:01:01:01:01 | ||
配置文件应该像如下 | 配置文件应该像如下 | ||
face eth0 inet static | face eth0 inet static | ||
pre-up ifconfig eth0 hw ether 01:01:01:01:01:01 | pre-up ifconfig eth0 hw ether 01:01:01:01:01:01 | ||
第419行: | 第528行: | ||
netmask 255.255.255.0 | netmask 255.255.255.0 | ||
gateway 192.168.1.1 | gateway 192.168.1.1 | ||
最后是 logout 或者reboot | 最后是 logout 或者reboot | ||
=== 统计当前IP连接的个数 === | === 统计当前IP连接的个数 === | ||
netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n | 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 -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n | ||
=== 统计当前20000个IP包中大于100个IP包的IP地址 === | === 统计当前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 ' | tcpdump -tnn -c 20000 -i eth0 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | awk ' $1 > 100 ' | ||
=== 屏蔽IPV6 === | === 屏蔽IPV6 === | ||
echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6 | echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6 | ||
=== 察看当前网络连接状况以及程序 === | === 察看当前网络连接状况以及程序 === | ||
sudo netstat -atnp | sudo netstat -atnp | ||
=== 查看网络连接状态 === | |||
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' | netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' | ||
=== 查看当前系统所有的监听端口 === | === 查看当前系统所有的监听端口 === | ||
nc -zv localhost 1-65535 | nc -zv localhost 1-65535 | ||
=== 查看网络的当前流量 === | |||
#安装 ethstatus 软件 | #安装 ethstatus 软件 | ||
sudo apt-get install ethstatus | sudo apt-get install ethstatus | ||
第453行: | 第571行: | ||
#查看 网卡 的速度 | #查看 网卡 的速度 | ||
sudo ethstatus -i eth0 | sudo ethstatus -i eth0 | ||
=== 查看域名的注册备案情况 === | |||
whois baidu.cn | whois baidu.cn | ||
=== 查看到某一个域名的路由情况 === | === 查看到某一个域名的路由情况 === | ||
tracepath baidu.cn | tracepath baidu.cn | ||
=== 重新从服务器获得IP地址 === | |||
sudo dhclient | sudo dhclient | ||
=== 下载网站文档 === | === 下载网站文档 === | ||
wget -r -p -np -k http://www.21cn.com | wget -r -p -np -k http://www.21cn.com | ||
第471行: | 第595行: | ||
· -np:只下载目标站点指定目录及其子目录的内容; | · -np:只下载目标站点指定目录及其子目录的内容; | ||
· -k: 转换非相对链接为相对链接。 | · -k: 转换非相对链接为相对链接。 | ||
=== 如何多线程下载 === | === 如何多线程下载 === | ||
sudo apt-get install axel | sudo apt-get install axel | ||
第478行: | 第603行: | ||
或者 | 或者 | ||
lftp -c "pget -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.xxx.com | w3m -dump_head http://www.xxx.com | ||
== 安全 == | |||
=== 检查本地是否存在安全隐患 === | |||
sudo apt-get install rkhunter | sudo apt-get install rkhunter | ||
rkhunter --checkall | rkhunter --checkall | ||
=== 如何安装杀毒软件 === | |||
sudo apt-get install clamav | sudo apt-get install clamav | ||
clamscan -r ~/ | clamscan -r ~/ | ||
=== Linux下可以使用的商业杀毒软件 === | |||
卡巴斯基(deb): http://www.kaspersky.com/productupdates?chapter=146274389 | 卡巴斯基(deb): http://www.kaspersky.com/productupdates?chapter=146274389 | ||
avast!(免费/deb): http://www.avast.com/eng/download-avast-for-linux-edition.html | avast!(免费/deb): http://www.avast.com/eng/download-avast-for-linux-edition.html | ||
小红伞(gz): http://www.avira.com/en/downloads/avira_antivir_professional.html | 小红伞(gz): http://www.avira.com/en/downloads/avira_antivir_professional.html | ||
== 服务 == | == 服务 == | ||
=== 添加一个服务 === | === 添加一个服务 === | ||
sudo update-rc.d 服务名 defaults 99 | sudo update-rc.d 服务名 defaults 99 | ||
=== 删除一个服务 === | === 删除一个服务 === | ||
sudo update-rc.d 服务名 remove | sudo update-rc.d 服务名 remove | ||
=== 临时重启一个服务 === | === 临时重启一个服务 === | ||
/etc/init.d/服务名 restart | /etc/init.d/服务名 restart | ||
=== 临时关闭一个服务 === | === 临时关闭一个服务 === | ||
/etc/init.d/服务名 stop | /etc/init.d/服务名 stop | ||
=== 临时启动一个服务 === | === 临时启动一个服务 === | ||
/etc/init.d/服务名 start | /etc/init.d/服务名 start | ||
== 用户管理 == | == 用户管理 == | ||
=== 增加用户 === | === 增加用户 === | ||
sudo adduser 用户名 | sudo adduser 用户名 | ||
=== 删除用户 === | === 删除用户 === | ||
sudo deluser 用户名 | sudo deluser 用户名 | ||
=== 修改当前用户的密码 === | === 修改当前用户的密码 === | ||
passwd | passwd | ||
=== 修改用户密码 === | === 修改用户密码 === | ||
sudo passwd 用户名 | sudo passwd 用户名 | ||
=== 修改用户资料 === | === 修改用户资料 === | ||
sudo chfn userid | sudo chfn userid | ||
=== 如何禁用/启用某个帐户 === | === 如何禁用/启用某个帐户 === | ||
sudo usermod -L 用户名 #锁定用户 | sudo usermod -L 用户名 #锁定用户 | ||
第547行: | 第692行: | ||
sudo passwd -l 用户名 #锁定用户 | sudo passwd -l 用户名 #锁定用户 | ||
sudo passwd -u 用户名 #解锁 | sudo passwd -u 用户名 #解锁 | ||
=== 增加用户到admin组,让其有sudo权限 === | === 增加用户到admin组,让其有sudo权限 === | ||
sudo usermod -G admin -a 用户名 | sudo usermod -G admin -a 用户名 | ||
=== 如何切换到root帐号 === | |||
=== 如何切换到root帐号 === | |||
sudo -Hs | sudo -Hs | ||
== 设置 == | == 设置 == | ||
=== 配置默认Java使用哪个 === | === 配置默认Java使用哪个 === | ||
sudo update-alternatives --config java | sudo update-alternatives --config java | ||
=== 给apt设置代理 === | === 给apt设置代理 === | ||
export http_proxy=http://xx.xx.xx.xx:xxx | export http_proxy=http://xx.xx.xx.xx:xxx | ||
=== 修改系统登录信息 === | === 修改系统登录信息 === | ||
sudo vim /etc/motd | sudo vim /etc/motd | ||
=== 使用eclipse等其他自带java编译器的软件,换回sun的编译器方法 === | === 使用eclipse等其他自带java编译器的软件,换回sun的编译器方法 === | ||
对于Java JDK6 (就是1.6,sun缩短Java的版本名字了): | 对于Java JDK6 (就是1.6,sun缩短Java的版本名字了): | ||
sudo update-java-alternatives -s java-6-sun | sudo update-java-alternatives -s java-6-sun | ||
对于Java JDK1.5 | 对于Java JDK1.5 | ||
sudo update-java-alternatives -s java-1.5.0-sun | sudo update-java-alternatives -s java-1.5.0-sun | ||
== 中文 == | == 中文 == | ||
=== 切换输入法引擎 === | |||
im-switch -c | im-switch -c | ||
=== 转换文件名由GBK为UTF8 === | === 转换文件名由GBK为UTF8 === | ||
sudo apt-get install convmv | sudo apt-get install convmv | ||
convmv -r -f cp936 -t utf8 --notest --nosmart * | convmv -r -f cp936 -t utf8 --notest --nosmart * | ||
=== 批量转换src目录下的所有文件内容由GBK到UTF8 === | === 批量转换src目录下的所有文件内容由GBK到UTF8 === | ||
find src -type d -exec mkdir -p utf8/{} \; | find src -type d -exec mkdir -p utf8/{} \; | ||
第594行: | 第752行: | ||
mv utf8/* src | mv utf8/* src | ||
rm -fr utf8 | rm -fr utf8 | ||
=== 转换文件内容由GBK到UTF8 === | === 转换文件内容由GBK到UTF8 === | ||
iconv -f gbk -t utf8 $i > newfile | iconv -f gbk -t utf8 $i > newfile | ||
=== 转换 mp3 标签编码 === | === 转换 mp3 标签编码 === | ||
sudo apt-get install python-mutagen | sudo apt-get install python-mutagen | ||
find . -iname '*.mp3' -execdir mid3iconv -e GBK {} \; | find . -iname '*.mp3' -execdir mid3iconv -e GBK {} \; | ||
=== 控制台下显示中文 === | === 控制台下显示中文 === | ||
第608行: | 第769行: | ||
sudo apt-get install zhcon | sudo apt-get install zhcon | ||
使用时,输入zhcon即可 | 使用时,输入zhcon即可 | ||
更具体的输入:zhcon --utf8 --drv=vga | 更具体的输入:zhcon --utf8 --drv=vga | ||
zhcon是个外挂的控制平台,也就是像US-DOS那样是额外安装的软件,装完后是需要驱动才能进去的,不然有可能死机; | zhcon是个外挂的控制平台,也就是像US-DOS那样是额外安装的软件,装完后是需要驱动才能进去的,不然有可能死机; 当然驱动什么的在你sudo apt-get install zhcon的时候就已经安装了; 你所需要的是在进zhcon时要申明你所用的驱动,而zhcon在安装时,就装了3种驱动:vga,framebuffer,libggi,而我们一般都是用的第一种驱动,因为比较方便简单,而那2钟驱动.很麻烦,我也就没改过.好了说了这么多该告诉各位怎么进入zhcon了; 运行时需输入:zhcon --utf8 --drv=vga | ||
当然驱动什么的在你sudo apt-get install zhcon的时候就已经安装了; | |||
你所需要的是在进zhcon时要申明你所用的驱动,而zhcon在安装时,就装了3种驱动:vga,framebuffer,libggi,而我们一般都是用的第一种驱动,因为比较方便简单,而那2钟驱动.很麻烦,我也就没改过.好了说了这么多该告诉各位怎么进入zhcon了; | |||
运行时需输入:zhcon --utf8 --drv=vga | |||
=== lftp 登录远程Windows中文FTP === | === lftp 登录远程Windows中文FTP === | ||
lftp :~ | |||
lftp :~ | lftp :~>set ftp:charset GBK | ||
lftp :~>set file:charset UTF-8 | |||
=== java6 的安装和中文设置 === | |||
sudo apt-get install openjdk-6-jdk openjdk-6-doc openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib | sudo apt-get install openjdk-6-jdk openjdk-6-doc openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib | ||
sudo apt-get remove ttf-kochi-gothic ttf-kochi-mincho ttf-unfonts ttf-unfonts-core | sudo apt-get remove ttf-kochi-gothic ttf-kochi-mincho ttf-unfonts ttf-unfonts-core | ||
sudo mkdir -p /usr/lib/jvm/java-6-openjdk/jre/lib/fonts/fallback | sudo mkdir -p /usr/lib/jvm/java-6-openjdk/jre/lib/fonts/fallback | ||
sudo ln -s /usr/share/fonts/truetype/arphic/uming.ttc /usr/lib/jvm/java-6-openjdk/jre/lib/fonts/fallback | sudo ln -s /usr/share/fonts/truetype/arphic/uming.ttc /usr/lib/jvm/java-6-openjdk/jre/lib/fonts/fallback | ||
=== PDF 文件乱码 === | |||
sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional poppler-data | sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional poppler-data | ||
== 文件管理 == | == 文件管理 == | ||
=== 一屏查看文件内容 === | |||
cat 文件名 | cat 文件名 | ||
=== 分页查看文件内容 === | |||
more 文件名 | more 文件名 | ||
=== 可控分页查看文件内容 === | |||
less 文件名 | less 文件名 | ||
=== 带行号显示文件的内容 === | |||
nl 文件名 | nl 文件名 | ||
=== 根据字符串匹配来查看文件部分内容 === | |||
grep 字符串 文件名 | grep 字符串 文件名 | ||
=== 显示包含或者不包含字符串的文件名 === | |||
grep -l -r 字符串 路径 #显示内容包含字符串的文件名 | grep -l -r 字符串 路径 #显示内容包含字符串的文件名 | ||
grep -L -r 字符串 路径 #显示内容不包含字符串的文件名 | grep -L -r 字符串 路径 #显示内容不包含字符串的文件名 | ||
=== 快速查找某个文件 === | === 快速查找某个文件 === | ||
whereis filename | whereis filename | ||
find 目录 -name 文件名 | find 目录 -name 文件名 | ||
=== 创建两个空文件 === | === 创建两个空文件 === | ||
touch file1 file2 | touch file1 file2 | ||
=== 递归式创建一些嵌套目录 === | |||
mkdir –p /tmp/xxs/dsd/efd | mkdir –p /tmp/xxs/dsd/efd | ||
=== 递归式删除嵌套目录 === | |||
rm –fr /tmp/xxs | rm –fr /tmp/xxs | ||
=== 回当前用户的宿主目录 === | |||
cd ~ | cd ~ | ||
=== 查看当前所在目录的绝对路经 === | |||
pwd | pwd | ||
=== 列出当前目录下的所有文件,包括以.开头的隐含文件 === | |||
ls -a | ls -a | ||
=== 移动路经下的文件并改名 === | |||
mv 路经/文件 /新路经/新文件名 | mv 路经/文件 /新路经/新文件名 | ||
=== 复制文件或者目录 === | === 复制文件或者目录 === | ||
cp -av 原文件或原目录 新文件或新目录 | cp -av 原文件或原目录 新文件或新目录 | ||
=== 查看文件类型 === | === 查看文件类型 === | ||
file filename | file filename | ||
=== 对比两个文件之间的差异 === | |||
diff file1 file2 | diff file1 file2 | ||
=== 显示xxx文件倒数6行的内容 === | === 显示xxx文件倒数6行的内容 === | ||
tail -n 6 xxx | tail -n 6 xxx | ||
=== 让tail不停地读取最新的内容 === | === 让tail不停地读取最新的内容 === | ||
tail -n 10 -f /var/log/apache2/access.log | tail -n 10 -f /var/log/apache2/access.log | ||
或者 | 或者 | ||
tailf /var/log/apache2/access.log | tailf /var/log/apache2/access.log | ||
=== 查看文件中间的第五行(含)到第10行(含)的内容 === | === 查看文件中间的第五行(含)到第10行(含)的内容 === | ||
sed -n '5,10p' /var/log/apache2/access.log | sed -n '5,10p' /var/log/apache2/access.log | ||
<br> | |||
=== 查找关于xxx的命令 === | |||
=== 查找关于xxx的命令 === | |||
apropos xxx | apropos xxx | ||
man -k xxx | man -k xxx | ||
=== 通过ssh传输文件 === | === 通过ssh传输文件 === | ||
scp -rp /path/filename username@remoteIP:/path #将本地文件拷贝到服务器上 | scp -rp /path/filename username@remoteIP:/path #将本地文件拷贝到服务器上 | ||
scp -rp username@remoteIP:/path/filename /path #将远程文件从服务器下载到本地 | scp -rp username@remoteIP:/path/filename /path #将远程文件从服务器下载到本地 | ||
tar cvzf - /path/ | ssh username@remoteip "cd /some/path/; cat -> path.tar.gz" #压缩传输 | tar cvzf - /path/ | ssh username@remoteip "cd /some/path/; cat -> path.tar.gz" #压缩传输 | ||
tar cvzf - /path/ | ssh username@remoteip "cd /some/path/; tar xvzf -" #压缩传输一个目录并解压 | tar cvzf - /path/ | ssh username@remoteip "cd /some/path/; tar xvzf -" #压缩传输一个目录并解压 | ||
=== | === 把所有文件的后辍由rm改为rmvb === | ||
rename 's/.rm$/.rmvb/' * | rename 's/.rm$/.rmvb/' * | ||
=== 把所有文件名中的大写改为小写 === | === 把所有文件名中的大写改为小写 === | ||
rename 'tr/A-Z/a-z/' * | rename 'tr/A-Z/a-z/' * | ||
=== 删除特殊文件名的文件,如文件名:--help.txt === | === 删除特殊文件名的文件,如文件名:--help.txt === | ||
rm -- --help.txt 或者 rm ./--help.txt | rm -- --help.txt 或者 rm ./--help.txt | ||
=== 查看当前目录的子目录 === | === 查看当前目录的子目录 === | ||
ls -d */. 或 echo */. | ls -d */. 或 echo */. | ||
=== 将当前目录下最近30天访问过的文件移动到上级back目录 === | === 将当前目录下最近30天访问过的文件移动到上级back目录 === | ||
find . -type f -atime -30 -exec mv {} ../back \; | find . -type f -atime -30 -exec mv {} ../back \; | ||
=== 显示系统服务器一小时以内的包含 xxxx 的所有邮件 === | === 显示系统服务器一小时以内的包含 xxxx 的所有邮件 === | ||
find /home/ -path "*Maildir*" -type f -mmin -60|xargs -i grep -l xxxx '{}' | find /home/ -path "*Maildir*" -type f -mmin -60|xargs -i grep -l xxxx '{}' | ||
=== 将当前目录下最近2小时到8小时之内的文件显示出来 === | === 将当前目录下最近2小时到8小时之内的文件显示出来 === | ||
find . -mmin +120 -mmin -480 -exec more {} \; | find . -mmin +120 -mmin -480 -exec more {} \; | ||
=== 删除修改时间在30天之前的所有文件 === | === 删除修改时间在30天之前的所有文件 === | ||
find . -type f -mtime +30 -mtime -3600 -exec rm {} \; | find . -type f -mtime +30 -mtime -3600 -exec rm {} \; | ||
=== 删除创建时间在30天之前的所有文件 === | === 删除创建时间在30天之前的所有文件 === | ||
find . -type f -ctime +30 -ctime -3600 -exec rm {} \; | find . -type f -ctime +30 -ctime -3600 -exec rm {} \; | ||
=== 查找guest用户的以avi或者rm结尾的文件并删除掉 === | === 查找guest用户的以avi或者rm结尾的文件并删除掉 === | ||
find . -name '*.avi' -o -name '*.rm' -user 'guest' -exec rm {} \; | find . -name '*.avi' -o -name '*.rm' -user 'guest' -exec rm {} \; | ||
=== 查找不以java和xml结尾,并7天没有使用的文件删除掉 === | === 查找不以java和xml结尾,并7天没有使用的文件删除掉 === | ||
find . ! -name *.java ! -name ‘*.xml’ -atime +7 -exec rm {} \; | find . ! -name *.java ! -name ‘*.xml’ -atime +7 -exec rm {} \; | ||
=== 删除当前目录里面所有的 .svn 目录 === | === 删除当前目录里面所有的 .svn 目录 === | ||
find . -name .svn -type d -exec rm -fr {} \; | find . -name .svn -type d -exec rm -fr {} \; | ||
=== 删除当前目录所有以“~”结尾的临时文件 === | === 删除当前目录所有以“~”结尾的临时文件 === | ||
find . -name "*~" -exec rm {} \; | find . -name "*~" -exec rm {} \; | ||
=== 统计当前文件个数 === | === 统计当前文件个数 === | ||
ls /usr/bin|wc -w | ls /usr/bin|wc -w | ||
=== 统计当前目录下所有jpg文件的尺寸 === | |||
find . -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}' | find . -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}' | ||
=== 统计当前目录个数 === | === 统计当前目录个数 === | ||
ls -l /usr/bin|grep ^d|wc -l | ls -l /usr/bin|grep ^d|wc -l | ||
=== 显示当前目录下2006-01-01的文件名 === | === 显示当前目录下2006-01-01的文件名 === | ||
ls -l |grep 2006-01-01 |awk '{print $8}' | 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/* | sudo rsync -Pa / /media/disk1 --exclude=/media/* --exclude=/home/* --exclude=/sys/* --exclude=/tmp/* --exclude=/proc/* --exclude=/mnt/* | ||
=== 使用ssh方式同步远程数据到本地目录 === | === 使用ssh方式同步远程数据到本地目录 === | ||
rsync -Pa -I --size-only --delete --timeout=300 Remote_IP:/home/ubuntu/back /backup | rsync -Pa -I --size-only --delete --timeout=300 Remote_IP:/home/ubuntu/back /backup | ||
=== 使用ftp方式同步远程数据到本地目录 === | === 使用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;" | 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" | cat filename | tr -d "^M" > newfile; | ||
或者 | 或者 | ||
sed -e "s/^M//g" filename | sed -e "s/^M//g" filename > newfile; | ||
=== 转换bin/cue到iso文件 === | |||
#sudo apt-get install bchunk | #sudo apt-get install bchunk | ||
bchunk image.bin image.cue image | bchunk image.bin image.cue image | ||
=== 转换目录到iso文件 === | |||
mkisofs dirname -o isofile.iso | mkisofs dirname -o isofile.iso | ||
=== 转换CD到iso文件 === | |||
dd if=/dev/cdrom of=isofile.iso | dd if=/dev/cdrom of=isofile.iso | ||
== 影像 == | |||
=== 批量将rmvb转为avi === | |||
#ipod touch可用 | #ipod touch可用 | ||
for i in *; do mencoder -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi $i -o `echo $i | sed -e 's/rmvb$/avi/'`; done | for i in *; do mencoder -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi $i -o `echo $i | sed -e 's/rmvb$/avi/'`; done | ||
=== ape 转换为 flac === | |||
#sudo apt-get install flac shntool iconv | #sudo apt-get install flac shntool iconv | ||
iconv -f GB2312 -t UTF-8 example.cue -o example_UTF-8.cue | 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 | shntool split -t "%n.%p-%t" -f example_UTF-8.cue -o flac example.ape -d flacOutputDir | ||
=== ape 转换为 mp3 === | |||
#sudo apt-get install flac shntool lame iconv | #sudo apt-get install flac shntool lame iconv | ||
iconv -f GB2312 -t UTF-8 example.cue -o example_UTF-8.cue | 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 | 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 | ||
=== 批量将svg转为png === | |||
for i in *; do inkscape $i --export-png=`echo $i | sed -e 's/svg$/png/'`; done | for i in *; do inkscape $i --export-png=`echo $i | sed -e 's/svg$/png/'`; done | ||
=== 批量缩小图片到30% === | |||
for i in *; do convert -resize 30%x30% $1 sm-$1; done | for i in *; do convert -resize 30%x30% $1 sm-$1; done | ||
=== 批量转换jpg到png === | |||
for i in *; do convert $i `echo $i | sed -e 's/jpg$/png/'`; done | for i in *; do convert $i `echo $i | sed -e 's/jpg$/png/'`; done | ||
=== 获取jpg的扩展信息(Exif) === | |||
identify -verbose xxx.jpg | identify -verbose xxx.jpg | ||
== 压缩 == | == 压缩 == | ||
=== 增加 7Z 压缩软件 === | |||
#支持 7Z,ZIP,Zip64,CAB,RAR,ARJ,GZIP,BZIP2,TAR,CPIO,RPM,ISO,DEB 压缩文件格式 | #支持 7Z,ZIP,Zip64,CAB,RAR,ARJ,GZIP,BZIP2,TAR,CPIO,RPM,ISO,DEB 压缩文件格式 | ||
sudo apt-get install p7zip p7zip-full p7zip-rar | sudo apt-get install p7zip p7zip-full p7zip-rar | ||
=== 增加 rar 软件压缩和解压缩支持 === | === 增加 rar 软件压缩和解压缩支持 === | ||
sudo apt-get install rar unrar | sudo apt-get install rar unrar | ||
=== 解压缩 xxx.tar.gz === | === 解压缩 xxx.tar.gz === | ||
tar -zxvf xxx.tar.gz | tar -zxvf xxx.tar.gz | ||
=== 解压缩 xxx.tar.bz2 === | === 解压缩 xxx.tar.bz2 === | ||
tar -jxvf xxx.tar.bz2 | tar -jxvf xxx.tar.bz2 | ||
=== 压缩aaa bbb目录为xxx.tar.gz === | === 压缩aaa bbb目录为xxx.tar.gz === | ||
tar -zcvf xxx.tar.gz aaa bbb | tar -zcvf xxx.tar.gz aaa bbb | ||
=== 压缩aaa bbb目录为xxx.tar.bz2 === | === 压缩aaa bbb目录为xxx.tar.bz2 === | ||
tar -jcvf xxx.tar.bz2 aaa bbb | tar -jcvf xxx.tar.bz2 aaa bbb | ||
=== 增加 lha 支持 === | |||
sudo apt-get install lha | sudo apt-get install lha | ||
=== 增加解 cab 文件支持 === | |||
sudo apt-get install cabextract | sudo apt-get install cabextract | ||
== Nautilus == | == Nautilus == | ||
=== 显示隐藏文件 === | === 显示隐藏文件 === | ||
Ctrl+h | Ctrl+h | ||
=== 显示地址栏 === | === 显示地址栏 === | ||
Ctrl+l | Ctrl+l | ||
=== 特殊 URI 地址 === | === 特殊 URI 地址 === | ||
* computer:/// - 全部挂载的设备和网络 | * computer:/// - 全部挂载的设备和网络 | ||
第897行: | 第1,157行: | ||
* fonts:/// - 字体文件夹,可将字体文件拖到此处以完成安装 | * fonts:/// - 字体文件夹,可将字体文件拖到此处以完成安装 | ||
* themes:/// - 系统主题文件夹 | * themes:/// - 系统主题文件夹 | ||
=== 查看已安装字体 === | === 查看已安装字体 === | ||
在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts | 在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts | ||
<br> | |||
== 日期和时间 == | |||
=== 显示日历 === | |||
=== 显示日历 === | |||
cal # 显示当月日历 | cal # 显示当月日历 | ||
cal 2 2007 # 显示2007年2月的日历 | cal 2 2007 # 显示2007年2月的日历 | ||
=== 设置日期 === | === 设置日期 === | ||
date -s mm/dd/yy | date -s mm/dd/yy | ||
=== 设置时间 === | === 设置时间 === | ||
date -s HH:MM | date -s HH:MM | ||
=== 将时间写入CMOS === | === 将时间写入CMOS === | ||
hwclock --systohc | hwclock --systohc | ||
=== 查看CMOS时间 === | |||
hwclock --show | hwclock --show | ||
=== 读取CMOS时间 === | === 读取CMOS时间 === | ||
hwclock --hctosys | hwclock --hctosys | ||
=== 从服务器上同步时间 === | |||
sudo ntpdate ntp.ubuntu.com | sudo ntpdate ntp.ubuntu.com | ||
sudo ntpdate time.nist.gov | sudo ntpdate time.nist.gov | ||
=== 设置电脑的时区为上海 === | |||
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime | sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime | ||
=== XP 和 Ubuntu 相差了 8 小时的时差 === | |||
#关闭UTC,将当前时间写入CMOS。 | #关闭UTC,将当前时间写入CMOS。 | ||
sudo sed -ie 's/UTC=yes/UTC=no/g' /etc/default/rcS | sudo sed -ie 's/UTC=yes/UTC=no/g' /etc/default/rcS | ||
sudo hwclock --systohc | sudo hwclock --systohc | ||
== 工作区 == | == 工作区 == | ||
=== 不同工作区间切换 === | === 不同工作区间切换 === | ||
Ctrl + ALT + ← | Ctrl + ALT + ← | ||
Ctrl + ALT + → | Ctrl + ALT + → | ||
或者,将滚轮鼠标放在工作区图标上滚动 | 或者,将滚轮鼠标放在工作区图标上滚动 | ||
== 控制台 == | == 控制台 == | ||
=== 指定控制台切换 === | === 指定控制台切换 === | ||
Ctrl + ALT + Fn(n:1~7) | Ctrl + ALT + Fn(n:1~7) | ||
=== 控制台下滚屏 === | === 控制台下滚屏 === | ||
SHIFT + pageUp/pageDown | SHIFT + pageUp/pageDown | ||
=== 控制台抓图 === | === 控制台抓图 === | ||
setterm -dump n(n:1~7) | setterm -dump n(n:1~7) | ||
== 数据库 == | == 数据库 == | ||
=== mysql的数据库存放在地方 === | === mysql的数据库存放在地方 === | ||
/var/lib/mysql | /var/lib/mysql | ||
=== 从mysql中导出和导入数据 === | === 从mysql中导出和导入数据 === | ||
mysqldump 数据库名 > 文件名 #导出数据库 | mysqldump 数据库名 > 文件名 #导出数据库 | ||
mysqladmin create 数据库名 #建立数据库 | mysqladmin create 数据库名 #建立数据库 | ||
mysql 数据库名 < 文件名 #导入数据库 | mysql 数据库名 < 文件名 #导入数据库 | ||
=== 忘了mysql的root口令怎么办 === | === 忘了mysql的root口令怎么办 === | ||
sudo /etc/init.d/mysql stop | sudo /etc/init.d/mysql stop | ||
第982行: | 第1,263行: | ||
sudo mysqladmin -u user password 'newpassword | sudo mysqladmin -u user password 'newpassword | ||
sudo mysqladmin flush-privileges | sudo mysqladmin flush-privileges | ||
=== 修改mysql的root口令 === | === 修改mysql的root口令 === | ||
sudo mysqladmin -u root -p password '你的新密码' | sudo mysqladmin -u root -p password '你的新密码' | ||
== 控制 == | == 控制 == | ||
=== 如何使用命令关闭显示器 === | === 如何使用命令关闭显示器 === | ||
xset dpms force off | xset dpms force off | ||
=== 设置CPU的频率 === | |||
sudo apt-get install cpufrequtils | sudo apt-get install cpufrequtils | ||
#查看cpu当前频率信息 | #查看cpu当前频率信息 | ||
第999行: | 第1,284行: | ||
设置模式,对应于{最省电(最低频率),用户控制,最高或最低,正常,最大性能} | 设置模式,对应于{最省电(最低频率),用户控制,最高或最低,正常,最大性能} | ||
cpufreq-set -g {powersave, userspace, ondemand, conservative, performance} | cpufreq-set -g {powersave, userspace, ondemand, conservative, performance} | ||
=== 命令关机 === | === 命令关机 === | ||
第1,006行: | 第1,292行: | ||
sudo shutdown -h 23:00 #晚上11点自动关机 | sudo shutdown -h 23:00 #晚上11点自动关机 | ||
sudo shutdown -h +60 #60分钟后关机 | sudo shutdown -h +60 #60分钟后关机 | ||
=== 命令重启电脑 === | |||
sudo reboot | sudo reboot | ||
sudo shutdown -r now | sudo shutdown -r now | ||
=== 如何使用命令关闭笔记本的触摸板 === | === 如何使用命令关闭笔记本的触摸板 === | ||
synclient touchpadoff=1 | synclient touchpadoff=1 | ||
那么开启触摸板就是: | 那么开启触摸板就是: | ||
synclient touchpadoff=0 | synclient touchpadoff=0 | ||
== 统计 == | == 统计 == | ||
=== 统计最常用的10条命令 === | === 统计最常用的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 | 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 | awk '{arr[$1]+=1 }END{for(i in arr){print arr[i]"\t"i}}' FILE_NAME | sort -rn | ||
=== 统计80端口的连接个数并按照从大到小排列 === | === 统计80端口的连接个数并按照从大到小排列 === | ||
netstat -na|grep :80|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n | netstat -na|grep :80|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n | ||
== 其它 == | |||
== | === 把终端加到右键菜单 === | ||
sudo apt-get install nautilus-open-terminal | sudo apt-get install nautilus-open-terminal | ||
=== 如何删除Totem电影播放机的播放历史记录 === | === 如何删除Totem电影播放机的播放历史记录 === | ||
rm ~/.recently-used | rm ~/.recently-used | ||
=== 清除桌面挂载硬盘图标 === | |||
gconf-editor | gconf-editor | ||
#左边选择: apps — | #左边选择: apps —> nautilus —> desktop ,右边的 volumes_visible 不要勾选。 | ||
=== 如何更换gnome程序的快捷键 === | === 如何更换gnome程序的快捷键 === | ||
点击菜单,鼠标停留在某条菜单上,键盘输入任意你所需要的键,可以是组合键,会立即生效; | 点击菜单,鼠标停留在某条菜单上,键盘输入任意你所需要的键,可以是组合键,会立即生效; | ||
如果要清除该快捷键,请使用backspace | 如果要清除该快捷键,请使用backspace | ||
=== 如何配置Emacs === | === 如何配置Emacs === | ||
打开新得力或者命令行,查找emacs, 选择你想要的版本,比如emacs22或者emacs21. | 打开新得力或者命令行,查找emacs, 选择你想要的版本,比如emacs22或者emacs21. | ||
之后的配置参考[http://forum.ubuntu.com.cn/viewtopic.php?t=13560 <span class="postdetails">Emacs 常见问题及其解决方法</span>] | 之后的配置参考[http://forum.ubuntu.com.cn/viewtopic.php?t=13560 <span class="postdetails">Emacs 常见问题及其解决方法</span>] | ||
=== vim 如何显示彩色字符 === | === vim 如何显示彩色字符 === | ||
sudo cp /usr/share/vim/vimcurrent/vimrc_example.vim /usr/share/vim/vimrc | sudo cp /usr/share/vim/vimcurrent/vimrc_example.vim /usr/share/vim/vimrc | ||
=== 让 vim 直接支持编辑 .gz 文件 === | === 让 vim 直接支持编辑 .gz 文件 === | ||
sudo apt-get install vim-full | sudo apt-get install vim-full | ||
=== man 如何显示彩色字符 === | === man 如何显示彩色字符 === | ||
export LESS_TERMCAP_mb=$'\E[01;31m' | export LESS_TERMCAP_mb=$'\E[01;31m' | ||
第1,072行: | 第1,373行: | ||
export LESS_TERMCAP_ue=$'\E[0m' | export LESS_TERMCAP_ue=$'\E[0m' | ||
export LESS_TERMCAP_us=$'\E[01;32m' | export LESS_TERMCAP_us=$'\E[01;32m' | ||
=== 解决vim中文编码问题,在~/.vimrc中加入 === | === 解决vim中文编码问题,在~/.vimrc中加入 === | ||
let &termencoding=&encoding | let &termencoding=&encoding | ||
set fileencodings=utf-8,gbk,ucs-bom,cp936 | set fileencodings=utf-8,gbk,ucs-bom,cp936 | ||
=== vim 如何显示行号,在~/.vimrc中加入 === | === vim 如何显示行号,在~/.vimrc中加入 === | ||
set number | set number | ||
如果没有~/.vimrc文件,则可以在/etc/vim/vimrc中加入 | 如果没有~/.vimrc文件,则可以在/etc/vim/vimrc中加入 | ||
set number | set number | ||
=== vim配色方案 (~/.vimrc) <br> === | === vim配色方案 (~/.vimrc) <br> === | ||
<pre>colorscheme scheme | <pre>colorscheme scheme | ||
可用的 scheme 在 /usr/share/vim/vim71/colors/ | 可用的 scheme 在 /usr/share/vim/vim71/colors/ | ||
</pre> | </pre> | ||
=== 如何在命令行删除在会话设置的启动程序 === | === 如何在命令行删除在会话设置的启动程序 === | ||
cd ~/.config/autostart | cd ~/.config/autostart | ||
rm 需要删除启动程序 | rm 需要删除启动程序 | ||
=== 如何提高wine的反应速度 === | === 如何提高wine的反应速度 === | ||
sudo sed -ie '/GBK/,/^}/d' /usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE | sudo sed -ie '/GBK/,/^}/d' /usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE | ||
<br> | <br> | ||
=== 如何命令行刻录 === | === 如何命令行刻录 === | ||
mkisofs -o test.iso -Jrv -V test_disk /home/carla/ | mkisofs -o test.iso -Jrv -V test_disk /home/carla/ | ||
第1,108行: | 第1,415行: | ||
1,1,0 101) 'HL-DT-ST' 'CD-RW GCE-8481B ' '1.04' Removable CD-ROM | 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 | cdrecord -v -eject speed=8 dev=1,1,0 test.iso | ||
http://www.ibm.com/developerworks/cn/linux/l-cdburn/index.html<br> | http://www.ibm.com/developerworks/cn/linux/l-cdburn/index.html<br> | ||
=== 延迟抓图 === | === 延迟抓图 === | ||
gnome-screenshot -d 10 #延迟10秒抓图 | gnome-screenshot -d 10 #延迟10秒抓图 | ||
gnome-screenshot -w -d 5 #延迟5秒抓当前激活窗口 | gnome-screenshot -w -d 5 #延迟5秒抓当前激活窗口 | ||
=== 回收站在哪里 === | |||
Ubuntu8.04 Gnome 2.22.2 以后在 $HOME/.local/share/Trash/ | Ubuntu8.04 Gnome 2.22.2 以后在 $HOME/.local/share/Trash/ | ||
Ubuntu8.04 之前在 $HOME/.Trash/ | Ubuntu8.04 之前在 $HOME/.Trash/ | ||
=== 默认打开方式的配置文件在哪里 === | |||
=== 默认打开方式的配置文件在哪里 === | |||
#全局 | #全局 | ||
/etc/gnome/defaults.list | /etc/gnome/defaults.list | ||
#个人 | #个人 | ||
~/.local/share/applications/mimeapps.list | ~/.local/share/applications/mimeapps.list |
2008年10月11日 (六) 16:14的版本
Ubuntu 命令技巧
安装升级
查看软件xxx安装内容
dpkg -L xxx
查找软件库中的软件
apt-cache search 正则表达式
aptitude search 软件包
查找文件属于哪个包
dpkg -S filename apt-file search filename
查询软件xxx依赖哪些包
apt-cache depends xxx
查询软件xxx被哪些包依赖
apt-cache rdepends xxx
增加一个光盘源
sudo apt-cdrom add
系统升级
sudo apt-get update sudo 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 < ~/somefile sudo dselect
清理旧版本的软件缓存
sudo apt-get autoclean
清理所有软件缓存
sudo apt-get clean
删除系统不再使用的孤立软件
sudo apt-get autoremove
查看包在服务器上面的地址
apt-get -qq --print-uris install ssh | cut -d\' -f2
系统
查看内核
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
显示当前内存大小
free -m |grep "Mem" | awk '{print $2}'
显示系统运行时间
$ uptime 11:47:04 up 85 days, 2:10, 1 user, load average: 2.40, 2.18, 2.34
硬盘
查看硬盘的分区
sudo fdisk -l
硬盘分区
#危险!小心操作。 sudo fdisk /dev/sda
硬盘格式化
#危险!将第一个分区格式化为 ext3 分区, mkfs.reiserfs mkfs.xfs mkfs.vfat sudo mkfs.ext3 /dev/sda1
硬盘检查
#危险!检查第一个分区,请不要检查已经挂载的分区,否则容易丢失和损坏数据 sudo fsck /dev/sda1
分区挂载
sudo mount -t 文件系统类型 设备路经 访问路经 #常用文件类型如下: iso9660 光驱文件系统, vfat fat/fat32分区, ntfs ntfs分区, smbfs windows网络共享目录, reiserfs、ext3、xfs Linux分区 #如果中文名无法显示尝试在最後增加 -o nls=utf8 或 -o iocharset=utf8 #如果需要挂载後,普通用户也可以使用,在 -o 的参数後面增加 ,umask=022 如:-o nls=utf8,umask=022
分区卸载
sudo umount 目录名或设备名
只读挂载ntfs分区
sudo mount -t ntfs -o nls=utf8,umask=0 /dev/sdb1 /mnt/c
可写挂载ntfs分区
sudo mount -t ntfs-3g -o locale=zh_CN.utf8,umask=0 /dev/sdb1 /mnt/c
挂载fat32分区
sudo mount -t vfat -o iocharset=utf8,umask=0 /dev/sda1 /mnt/c
挂载共享文件
sudo mount -t smbfs -o username=xxx,password=xxx,iocharset=utf8 //192.168.1.1/share /mnt/share
挂载ISO文件
sudo mount -t iso9660 -o loop,utf8 xxx.iso /mnt/iso
查看IDE硬盘信息
sudo hdparm -i /dev/hda
查看STAT硬盘信息
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
查看硬盘当前读写情况
#每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
动态显示进程执行情况
top top指令运行时输入H或?打开帮助窗口,输入Q退出指令。
查看当前有哪些进程
ps -AFL
统计程序的内存耗用
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
显示开启文件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 4096
清除僵死进程
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | sudo kill -9
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.123cha.com|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\}'
查看当前监听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_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 #然后启动网卡
对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: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
统计当前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
查看域名的注册备案情况
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.xxx.com
安全
检查本地是否存在安全隐患
sudo apt-get install rkhunter 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
服务
添加一个服务
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 用户名
如何切换到root帐号
sudo -Hs
设置
配置默认Java使用哪个
sudo update-alternatives --config java
给apt设置代理
export http_proxy=http://xx.xx.xx.xx:xxx
修改系统登录信息
sudo vim /etc/motd
使用eclipse等其他自带java编译器的软件,换回sun的编译器方法
对于Java JDK6 (就是1.6,sun缩短Java的版本名字了):
sudo update-java-alternatives -s java-6-sun
对于Java JDK1.5
sudo update-java-alternatives -s java-1.5.0-sun
中文
切换输入法引擎
im-switch -c
转换文件名由GBK为UTF8
sudo apt-get install convmv convmv -r -f cp936 -t utf8 --notest --nosmart *
批量转换src目录下的所有文件内容由GBK到UTF8
find src -type d -exec mkdir -p utf8/{} \; find src -type f -exec iconv -f GBK -t UTF-8 {} -o utf8/{} \; mv utf8/* src rm -fr utf8
转换文件内容由GBK到UTF8
iconv -f gbk -t utf8 $i > newfile
转换 mp3 标签编码
sudo apt-get install python-mutagen find . -iname '*.mp3' -execdir mid3iconv -e GBK {} \;
控制台下显示中文
sudo apt-get install zhcon 使用时,输入zhcon即可
更具体的输入:zhcon --utf8 --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 的安装和中文设置
sudo apt-get install openjdk-6-jdk openjdk-6-doc openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib sudo apt-get remove ttf-kochi-gothic ttf-kochi-mincho ttf-unfonts ttf-unfonts-core sudo mkdir -p /usr/lib/jvm/java-6-openjdk/jre/lib/fonts/fallback sudo ln -s /usr/share/fonts/truetype/arphic/uming.ttc /usr/lib/jvm/java-6-openjdk/jre/lib/fonts/fallback
PDF 文件乱码
sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional poppler-data
文件管理
一屏查看文件内容
cat 文件名
分页查看文件内容
more 文件名
可控分页查看文件内容
less 文件名
带行号显示文件的内容
nl 文件名
根据字符串匹配来查看文件部分内容
grep 字符串 文件名
显示包含或者不包含字符串的文件名
grep -l -r 字符串 路径 #显示内容包含字符串的文件名 grep -L -r 字符串 路径 #显示内容不包含字符串的文件名
快速查找某个文件
whereis filename find 目录 -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 xxx man -k xxx
通过ssh传输文件
scp -rp /path/filename username@remoteIP:/path #将本地文件拷贝到服务器上 scp -rp username@remoteIP:/path/filename /path #将远程文件从服务器下载到本地
tar cvzf - /path/ | ssh username@remoteip "cd /some/path/; cat -> path.tar.gz" #压缩传输 tar cvzf - /path/ | ssh username@remoteip "cd /some/path/; tar xvzf -" #压缩传输一个目录并解压
把所有文件的后辍由rm改为rmvb
rename 's/.rm$/.rmvb/' *
把所有文件名中的大写改为小写
rename 'tr/A-Z/a-z/' *
删除特殊文件名的文件,如文件名:--help.txt
rm -- --help.txt 或者 rm ./--help.txt
查看当前目录的子目录
ls -d */. 或 echo */.
将当前目录下最近30天访问过的文件移动到上级back目录
find . -type f -atime -30 -exec mv {} ../back \;
显示系统服务器一小时以内的包含 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
统计当前目录下所有jpg文件的尺寸
find . -name *.jpg -exec wc -c {} \;|awk '{print $1}'|awk '{a+=$1}END{print a}'
统计当前目录个数
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;"
去掉文件中的^M
#注意不要使用同样的文件名,会清空掉原文件 cat filename | tr -d "^M" > newfile; 或者 sed -e "s/^M//g" filename > newfile;
转换bin/cue到iso文件
#sudo apt-get install bchunk bchunk image.bin image.cue image
转换目录到iso文件
mkisofs dirname -o isofile.iso
转换CD到iso文件
dd if=/dev/cdrom of=isofile.iso
影像
批量将rmvb转为avi
#ipod touch可用 for i in *; do mencoder -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi $i -o `echo $i | sed -e 's/rmvb$/avi/'`; done
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 转换为 mp3
#sudo apt-get install flac shntool lame 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 'cust ext=mp3 lame --r3mix -b 320 --quiet - %f' example.ape -d mp3OutputDir
批量将svg转为png
for i in *; do inkscape $i --export-png=`echo $i | sed -e 's/svg$/png/'`; done
批量缩小图片到30%
for i in *; do convert -resize 30%x30% $1 sm-$1; done
批量转换jpg到png
for i in *; do convert $i `echo $i | sed -e 's/jpg$/png/'`; done
获取jpg的扩展信息(Exif)
identify -verbose xxx.jpg
压缩
增加 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 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:/// - 系统主题文件夹
查看已安装字体
在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)
数据库
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 '你的新密码'
控制
如何使用命令关闭显示器
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
如何使用命令关闭笔记本的触摸板
synclient touchpadoff=1 那么开启触摸板就是: synclient touchpadoff=0
统计
统计最常用的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
其它
把终端加到右键菜单
sudo apt-get install nautilus-open-terminal
如何删除Totem电影播放机的播放历史记录
rm ~/.recently-used
清除桌面挂载硬盘图标
gconf-editor #左边选择: apps —> nautilus —> desktop ,右边的 volumes_visible 不要勾选。
如何更换gnome程序的快捷键
点击菜单,鼠标停留在某条菜单上,键盘输入任意你所需要的键,可以是组合键,会立即生效; 如果要清除该快捷键,请使用backspace
如何配置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
man 如何显示彩色字符
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'
解决vim中文编码问题,在~/.vimrc中加入
let &termencoding=&encoding set fileencodings=utf-8,gbk,ucs-bom,cp936
vim 如何显示行号,在~/.vimrc中加入
set number
如果没有~/.vimrc文件,则可以在/etc/vim/vimrc中加入
set number
vim配色方案 (~/.vimrc)
colorscheme scheme 可用的 scheme 在 /usr/share/vim/vim71/colors/
如何在命令行删除在会话设置的启动程序
cd ~/.config/autostart rm 需要删除启动程序
如何提高wine的反应速度
sudo sed -ie '/GBK/,/^}/d' /usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE
如何命令行刻录
mkisofs -o test.iso -Jrv -V test_disk /home/carla/ cdrecord -scanbus scsibus1: 1,1,0 101) 'HL-DT-ST' 'CD-RW GCE-8481B ' '1.04' Removable CD-ROM cdrecord -v -eject speed=8 dev=1,1,0 test.iso
http://www.ibm.com/developerworks/cn/linux/l-cdburn/index.html
延迟抓图
gnome-screenshot -d 10 #延迟10秒抓图 gnome-screenshot -w -d 5 #延迟5秒抓当前激活窗口
回收站在哪里
Ubuntu8.04 Gnome 2.22.2 以后在 $HOME/.local/share/Trash/ Ubuntu8.04 之前在 $HOME/.Trash/
默认打开方式的配置文件在哪里
#全局 /etc/gnome/defaults.list #个人 ~/.local/share/applications/mimeapps.list