转载 Ubuntu 命令技巧 1
原文地址:Ubuntu 命令技巧 1 作者:李素校下面的命令大都需要在控制台/终端/shell 下输入。
控制台,终端,和 shell 意味着同样一件事-一个命令行界面,他可以用来控制系统。
打开一个控制台:
应用程序--附件--终端
任何一个使用"sudo"作为前缀的命令都需要拥有管理员(或 root)访问权限。所以你会被提示输入你自己的密码。
安装升级
查看软件 xxx 安装内容
dpkg-L xxx
查找软件库中的软件
apt-cache search 正则表达式或 aptitude search 软件包
显示系统安装包的统计信息
apt-cache stats
显示系统全部可用包的名称
apt-cache pkgnames
显示包的信息
apt-cache show k3b
查找文件属于哪个包
apt-
查看已经安装了哪些包
dpkg-l
查询软件 xxx 依赖哪些包
apt-cache depends xxx
查询软件 xxx 被哪些包依赖
apt-cache rdepends xxx
增加一个光盘源
sudo apt-cdrom add
系统更新
sudo apt-get update(这一步更新包列表)sudo apt-get dist-upgrade(这一步安装所有可用更新)或者 sudo apt-get upgrade(这一步安装应用程序更新,不安装新内核等)
清除所有已删除包的残馀配置文件
dpkg-l|grep^rc|awk"{print}"|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 alist of dpkg debug flag values;
Type dpkg--force-help for alist 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 alot 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~/some dselect
清理旧版本的软件缓存
sudo apt-get autoclean
清理所有软件缓存
sudo apt-get clean
删除系统不再使用的孤立软件
sudo apt-get autoremove
查看包在服务器上面的地址
apt-get-qq--print-uris install ssh|cut-d"-f2
彻底删除 Gnome apt-get--purge remove liborbit2
彻底删除 KDE apt-get--purge remove libqt3-mt libqtcore4
一键安装 LAMP 服务
sudo tasksel install lamp-server
删除旧内核
sudo aptitude purge~ilinux-image-.*(!`uname-r`)
导入 ppa 源的 key 值
#W:GPG 签名验证错误:jaunty Release:由于没有公钥,下列签名无法进行验证:NO_PUBKEY 5126890 CDCC7AFE0 sudo apt-key adv--recv-keys--keyserver keyserver.ubuntu.com 5126890 CDCC7AFE0#5126890 CDCC7AFE0 替换为你需要导入的 Key 值
增加一个 ppa 源
sudo add-apt-repository ppa:user/ppa-name#使用 ppa 的地址替换ppa:user/ppa-name
系统升级
这里指的是版本间的升级,例如 9.04=10.04。使用该升级方式通常需要使能 backports 源。sudo apt-get update sudo apt-get install update-manager-core sudo do-release-upgrade
系统
查看内核
uname-a
查看系统是 32 位还是 64 位
#查看 long 的位数,返回 32 或 64 getconf LONG_BIT#查看文件信息,包含 32-bit 就是 32 位,包含 64-bit 就是 64 位
查看 Ubuntu 版本
cat/etc/issue 或 cat/etc/lsb-release 或 lsb_release-dsc
查看内核加载的模块
lsmod
查看 PCI 设备
lspci
查看 USB 设备
lsusb#加参数-v 可以显示 USB 设备的描述表(descriptors)lsusb-v
查看网卡状态
sudo apt-get install ethtool sudo ethtool eth0
激活网卡的 Wake-on-LAN sudo apt-get install wakeonlan 或 sudo ethtool-s eth0 wol g
查看 CPU 信息
cat/proc/cpuinfo
显示当前硬件信息
sudo lshw
获取 CPU 序列号或者主板序列号
#CPU ID sudo dmidecode-t 4|grep ID#Serial Number sudo dmidecode|grep Serial#CPU sudo dmidecode-t 4#BIOS sudo dmidecode-t 0#主板:sudo dmidecode-t 2#OEM:sudo dmidecode-t 11
显示当前内存大小
free-m|grep"Mem"|awk"{print}"
查看硬盘温度
sudo apt-get install hddtemp sudo hddtemp/dev/sda
显示系统运行时间
$uptime
查看系统限制
$ulimit-a
查看内核限制
$ipcs-l
硬盘
查看硬盘的分区
sudo fdisk-l
硬盘分区
#危险!小心操作。sudo fdisk/dev/sda
硬盘格式化
#危险!将第一个分区格式化为 ext3 分区,mkfs.reiserfs mkfs.xfs mkfs.vfat sudo mkfs.ext3/dev/sda1
硬盘检查
#危险!检查第一个分区,请不要检查已经挂载的分区,否则容易丢失和损坏数据 sudo fsck/dev/sda1
分区挂载
sudo mount-t 文件系统类型设备路经访问路经#常用文件类型如下:iso9660 光驱文件系统,vfat fat/fat32 分区,ntfs ntfs 分区,smbfs windows
网络共享目录,reiserfs、ext3、xfs Linux 分区#如果中文名无法显示尝试在最后增加-o nls=utf8 或-o iocharset=utf8#如果需要挂载后,普通用户也可以使用,在-o 的参数后面增加,umask=022 如:-o nls=utf8,umask=022
分区卸载
sudo umount 目录名或设备名
只读挂载 ntfs 分区
sudo mount-t ntfs-o nls=utf8,umask=0/dev/sdb1/mnt/c
可写挂载 ntfs 分区
sudo mount-t ntfs-3g-o locale=zh_CN.utf8,umask=0/dev/sdb1/mnt/c
挂载 fat32 分区
sudo mount-t vfat-o iocharset=utf8,umask=0/dev/sda1/mnt/c
挂载共享文件
sudo mount-t smbfs-o username=xxx,password=xxx,iocharset=utf8//192.168.1.1/share/mnt/share
挂载 ISO 文件
sudo mount-t iso9660-o loop,utf8 xxx.iso/mnt/iso
查看 IDE 硬盘信息
sudo hdparm-i/dev/hda
查看软 raid 阵列信息
cat/proc/mdstat
参看硬 raid 阵列信息
dmesg|grep-i raid cat/proc/scsi/scsi
查看 SATA 硬盘信息
sudo hdparm-I/dev/sda 或 sudo apt-get install blktool sudo blktool/dev/sda id
查看硬盘剩余空间
df 用法:df[选项].[文件].显示每个文件所在的文件系统的信息,默认是显示所有文件系统。
长选项必须用的参数在使用短选项时也是必需的。-a,--all 包括大小为 0个块的文件系统-B,--block-size=大小块以指定大小的字节为单位-h,--human-readable 以容易理解的格式印出文件系统大小(例如 1K 234M 2G)-H,--si 类似-h,但取 1000 的次方而不是 1024-i,--inodes 显示 inode 信息而非块使用量-k即--block-size=1K-l,--local 只显示本机的文件系统--no-sync 取得使用量数据前不进行同步动作(默认)-P,--portability 使用 POSIX 兼容的输出格式--sync 取得使用量数据前先进行同步动作-t,--type=类型只印出指定文件系统为指定类型的信息-T,--print-type 印出文件系统类型-x,--exclude-type=类型只印出文件系统不是指定类型信息-v(忽略)--help 显示此帮助信息并离开--version 显示版本信息并离开
查看目录占用空间
du-hs 目录名
优盘没法卸载
sync fuser-km/media/usbdisk
使用文件来增加交换空间
#创建一个 512M 的交换文件/s sudo dd if=/dev/zero of=/s bs=1M count=512 sudo mks sudo s vim/etc/fstab#加到 fstab 文件中让系统引导时自动启动/s s defaults 00
查看硬盘当前读写情况
#首先安装 sysstat 包 sudo apt-get install sysstat#每 2 秒刷新一次sudo iostat-x 2
进程
查看当前的内存使用情况
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
连续监视内存使用情况
watch-d free#使用 Ctrl+c 退出
动态显示进程执行情况
top top 指令运行时输入 H 或?打开帮助窗口,输入 Q 退出指令。
查看当前有哪些进程
ps-AFL
查看目前登入用户运行的程序
w
查看当前用户程序实际内存占用,并排序
ps-u$USER-o pid,rss,cmd--sort-rss
统计程序的内存耗用
ps-eo fname,rss|awk"{arr[]+=}END{for(i in arr){print i,arr[i]}}"|sort-k2-nr
按内存从大到小排列进程
ps-eo"%C:%p:%z:%a"|sort-k5-nr
按 cpu 利用率从大到小排列进程
ps-eo"%C:%p:%z:%a"|sort-nr
查看当前进程树
pstree
中止一个进程
kill 进程号(就是 ps-A 中的第一列的数字)或者 killall 进程名
强制中止一个进程(在上面进程中止不成功的时候使用)
kill-9 进程号或者 killall-9 进程名
图形方式中止一个程序
xkill 出现骷髅标志的鼠标,点击需要中止的程序即可
查看进程打开的文件
lsof-p 进程的 pid
显示开启文件 abc.txt 的进程
lsof abc.txt
显示 22 端口现在运行什么程序
lsof-i:22
显示 nsd 进程现在打开的文件
lsof-c nsd
在后台运行程序,退出登录后,并不结束程序
nohup 程序&#查看中间运行情况 tail nohup
在后台运行交互式程序,退出登录后,并不结束程序
sudo apt-get install screen screen vim a.txt#直接退出后使用screen-ls#1656.pts-0.ubuntu(Detached)screen-r 1656#恢复#热键,同时按下 Ctrl 和 a 键结束后,再按下功能键 C-a?#显示所有键绑定信息 C-a w#显示所有窗口列表 C-a C-a#切换到之前显示的窗口 C-a c#创建一个新的运行 shell 的窗口并切换到该窗口 C-a n#切换到下一个窗口 C-a p#切换到前一个窗口(与 C-a n 相对)C-a 0.9#切换到窗口 0.9 C-a a#发送 C-a 到当前窗口 C-a d#暂时断开 screen 会话 C-a k#杀掉当前窗口
详细显示程序的运行信息
strace-f-F-o out
增加系统最大打开文件个数
echo 4096/proc/sys/fs/或者 ulimit-n 4096
清除僵尸进程
ps-eal|awk"{if(=="Z"){print}}"|xargs sudo kill-9
将大于 120M 内存的 php-cgi 都杀掉
ps-eo pid,fname,rss|grep php-cgi|grep-v grep|awk"{if(=120000)print}"|xargs sudo kill-9 Linux 系统中如何限制用户进程 CPU 占用率
renice+10`ps aux|awk"{if( 0.8&&id-u 500)print}"`#或直接编辑/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
如何设置动态域名
#首先去申请一个动态域名#然后修改/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(,x,":");print x[2]}"
查看当前外网的 IP 地址
w3m-no-cookie-dump "[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
查看当前网卡的物理地址
ifconfig eth0|head-1|awk"{print}"
同一个网卡增加第二个 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 ifco nfig 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}"|awk-F:"{print}"|sort|uniq-c|sort-r-n netstat-na|grep SYN|awk"{print}"|awk-F:"{print}"|sort|uniq-c|sort-r-n netstat-ntu|awk"{print}"|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"."".""."}"|sort|uniq-c|sort-nr|awk" 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·-r:在本机建立服务器端目录结构;·-p:下载显示HTML 文件的所有图片;·-np:只下载目标站点指定目录及其子目录的内容;·-k:转换非相对链接为相对链接。
如何多线程下载
sudo apt-get install axel axel-n 5 或者 lftp-c"pget-n 5"
如何查看 HTTP 头
w3m-dump_head 或 curl--head 快速使用 http 方式共享目录
#进入需要共享的目录后运行:python-m SimpleHTTPServer#其它电脑使用来访问#自定义端口为 8080:python-m SimpleHTTPServer 8080 SSH 远程端口转发
ssh-v-CNgD 7070 username@sshhostipaddress
监控网络所有的 tcp 数据
sudo apt-get install snort#安装 snort 入侵检测程序 sudo snort-vde iptables
防止外网用内网 IP 欺骗
#eth0 为外网网卡 sudo iptables-t nat-A PREROUTING-i eth0-s 10.0.0.0/8-j DROP sudo iptables-t nat-A PREROUTING-i eth0-s 172.16.0.0/12-j DROP sudo iptables-t nat-A PREROUTING-i eth0-s 192.168.0.0/16-j DROP
查看 nat 规则
sudo iptables-t nat-L
查看 filter 规则
sudo iptables-L-n
取消 nat 规则
sudo iptables-t nat-F
取消 filter 规则
sudo iptables-F
阻止一个 IP 连接本机
#规则位于最后 sudo iptables-t filter-A INPUT-s 192.168.1.125-i eth0-j DROP
关闭 1234 端口
sudo iptables-A OUTPUT-p tcp--dport 1234-j DROP
开启 80 端口
sudo iptables-A INPUT-p tcp--dport 80-j ACCEPT
禁止一个 IP 或者一个 IP 段访问服务器端口服务
#80 端口,规则插入到前面 sudo iptables-t filter-I INPUT-s 192.168.2.0/24-p tcp--dport http-j DROP#21 端口,规则插入到前面 sudo iptables-t filter-I INPUT-s 192.168.1.23-p tcp--dport ftp-j DROP
安全
检查本地是否存在安全隐患
sudo apt-get install rkhunter sudo rkhunter--checkall
如何安装杀毒软件
sudo apt-get install clamav clamscan-r~/
Linux 下可以使用的商业杀毒软件
卡巴斯基(deb):avast!(免费/deb):小红伞(gz):BitDefender(比特梵德/run):申请比特梵德的 KEY:服务
添加一个服务
sudo update-rc.d 服务名 defaults 99
删除一个服务
sudo update-rc.d 服务名 remove
临时重启一个服务
/etc/init.d/服务名 restart
临时关闭一个服务
/etc/init.d/服务名 stop
临时启动一个服务
/etc/init.d/服务名 start
用户管理
增加用户
sudo adduser 用户名
删除用户
sudo deluser 用户名
修改当前用户的密码
passwd
修改用户密码
sudo passwd 用户名
修改用户资料
sudo chfn userid
如何禁用/启用某个帐户
sudo usermod-L 用户名#锁定用户 sudo usermod-U 用户名#解锁或 sudo passwd-l 用户名#锁定用户 sudo passwd-u 用户名#解锁
增加用户到 admin 组,让其有 sudo 权限
sudo usermod-G admin-a 用户名
如何切换到其他帐号(需要该用户的密码)
su 用户名
如何切换到 root 帐号
sudo-s sudo-i sudo su
设置
配置默认 Java 使用哪个
sudo update-alternatives--config java
给 apt 设置代理
export http_proxy=修改系统登录信息
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 MSN 空间完美搬家到新浪博客!
特别声明:
1 :资料来源于互联网,版权归属原作者 2 :资料内容属于网络意见,与本账号立场无关 3 :如有侵权,请告知,立即删除。
上一篇:幼儿园预防流感通知及告家长书
上一篇:给导师写道歉信怎么写