欢迎来到福编程网,本站提供各种互联网专业知识!

Ubuntu 命令技巧大全整理

发布时间:2016-08-29 作者:佚名 来源:互联网
从Ubuntu官方摘录的命令技巧,特分享下方便学习Ubuntu的朋友

目录

1 前言 2 安装升级 2.1 查看软件xxx安装内容 2.2 查找软件库中的软件 2.3 显示系统安装包的统计信息 2.4 显示系统全部可用包的名称 2.5 显示包的信息 2.6 查找文件属于哪个包 2.7 查看已经安装了哪些包 2.8 查询软件xxx依赖哪些包 2.9 查询软件xxx被哪些包依赖 2.10 增加一个光盘源 2.11 系统更新 2.12 清除所有已删除包的残馀配置文件 2.13 编译时缺少h文件的自动处理 2.14 查看安装软件时下载包的临时存放目录 2.15 备份当前系统安装的所有包的列表 2.16 从上面备份的安装包的列表文件恢复所有包 2.17 清理旧版本的软件缓存 2.18 清理所有软件缓存 2.19 删除系统不再使用的孤立软件 2.20 查看包在服务器上面的地址 2.21 彻底删除Gnome 2.22 彻底删除KDE 2.23 一键安装 LAMP 服务 2.24 删除旧内核 2.25 导入ppa源的key值 2.26 增加一个ppa源 2.27 系统升级 3 系统 3.1 查看内核 3.2 查看系统是32位还是64位 3.3 查看Ubuntu版本 3.4 查看内核加载的模块 3.5 查看PCI设备 3.6 查看USB设备 3.7 查看网卡状态 3.8 激活网卡的 Wake-on-LAN 3.9 查看CPU信息 3.10 显示当前硬件信息 3.11 查看内存型号 3.12 获取CPU序列号或者主板序列号 3.13 显示当前内存大小 3.14 查看硬盘温度 3.15 显示系统运行时间 3.16 查看系统限制 3.17 查看内核限制 3.18 查看当前屏幕分辨率 4 硬盘 4.1 查看硬盘的分区 4.2 硬盘分区 4.3 硬盘格式化 4.4 硬盘检查 4.5 硬盘坏道检测 4.6 分区挂载 4.7 分区卸载 4.8 只读挂载ntfs分区 4.9 可写挂载ntfs分区 4.10 挂载fat32分区 4.11 挂载共享文件 4.12 挂载ISO文件 4.13 查看IDE硬盘信息 4.14 查看软raid阵列信息 4.15 参看硬raid阵列信息 4.16 查看SATA硬盘信息 4.17 查看硬盘剩余空间 4.18 查看目录占用空间 4.19 闪盘没法卸载 4.20 使用文件来增加交换空间 4.21 查看硬盘当前读写情况 4.22 测试硬盘的实际写入速度 5 进程 5.1 查看当前的内存使用情况 5.2 连续监视内存使用情况 5.3 动态显示进程执行情况 5.4 查看当前有哪些进程 5.5 查看进程的启动时间 5.6 查看目前登入用户运行的程序 5.7 查看当前用户程序实际内存占用,并排序 5.8 统计程序的内存耗用 5.9 按内存从大到小排列进程 5.10 按cpu利用率从大到小排列进程 5.11 查看当前进程树 5.12 中止一个进程 5.13 强制中止一个进程(在上面进程中止不成功的时候使用) 5.14 图形方式中止一个程序 5.15 查看进程打开的文件 5.16 显示开启文件abc.txt的进程 5.17 显示22端口现在运行什么程序 5.18 显示nsd进程现在打开的文件 5.19 在后台运行程序,退出登录后,并不结束程序 5.20 在后台运行交互式程序,退出登录后,并不结束程序 5.21 在后台运行交互式程序,退出登录后,并不结束程序 5.22 详细显示程序的运行信息 5.23 增加系统最大打开文件个数 5.24 清除僵尸进程 5.25 将大于120M内存的php-cgi都杀掉 5.26 Linux系统中如何限制用户进程CPU占用率 6 ADSL 6.1 配置 ADSL 6.2 ADSL手工拨号 6.3 激活 ADSL 6.4 断开 ADSL 6.5 查看拨号日志 6.6 如何设置动态域名 7 网络 7.1 根据IP查网卡地址 7.2 根据IP查电脑名 7.3 查看当前IP地址 7.4 查看当前外网的IP地址 7.5 查看当前监听80端口的程序 7.6 查看当前网卡的物理地址 7.7 同一个网卡增加第二个IP地址 7.8 立即让网络支持nat 7.9 查看路由信息 7.10 手工增加一条路由 7.11 手工删除一条路由 7.12 修改网卡MAC地址的方法 7.13 统计当前IP连接的个数 7.14 统计当前所有IP包的状态 7.15 统计当前20000个IP包中大于100个IP包的IP地址 7.16 屏蔽IPV6 7.17 察看当前网络连接状况以及程序 7.18 查看网络连接状态 7.19 查看当前系统所有的监听端口 7.20 查看网络的当前流量 7.21 查看域名的注册备案情况 7.22 查看到某一个域名的路由情况 7.23 重新从服务器获得IP地址 7.24 从当前页面开始镜像整个网站到本地 7.25 如何多线程下载 7.26 如何查看HTTP头 7.27 快速使用http方式共享目录 7.28 SSH 远程端口转发 7.29 监控网络所有的tcp数据 7.30 监控TCP/UDP连接的流量 7.31 扫描某个IP的端口 8 iptables 8.1 防止外网用内网IP欺骗 8.2 查看nat规则 8.3 查看filter规则 8.4 取消nat规则 8.5 取消filter规则 8.6 阻止一个IP连接本机 8.7 关闭 1234 端口 8.8 开启 80 端口 8.9 限制访问80端口的外部IP最大只有50个并发 8.10 禁止一个IP或者一个IP段访问服务器端口服务 9 安全 9.1 检查本地是否存在安全隐患 9.2 如何安装杀毒软件 9.3 Linux下可以使用的商业杀毒软件 9.4 防止服务器被暴力破解ssh密码 9.5 查看系统的登录情况 9.6 查看所有帐号的登录情况 10 服务 10.1 添加一个服务 10.2 删除一个服务 10.3 临时重启一个服务 10.4 临时关闭一个服务 10.5 临时启动一个服务 11 用户管理 11.1 增加用户 11.2 删除用户 11.3 修改当前用户的密码 11.4 修改用户密码 11.5 修改用户资料 11.6 如何禁用/启用某个帐户 11.7 增加用户到admin组,让其有sudo权限 11.8 如何切换到其他帐号(需要该用户的密码) 11.9 如何切换到root帐号 12 设置 12.1 配置默认Java环境 12.2 设置系统http代理 12.3 设置系统https代理 12.4 修改系统登录信息 12.5 使用eclipse等其他自带java编译器的软件,换回sun的编译器方法 13 中文 13.1 切换输入法引擎 13.2 察看文件编码 13.3 转换文件名由GBK为UTF8 13.4 批量转换src目录下的所有文件内容由GBK到UTF8 13.5 转换文件内容由GBK到UTF8 13.6 批量转换文件内容由GBK到UTF8 13.7 转换 mp3 标签编码 13.8 控制台下显示中文 13.9 lftp 登录远程Windows中文FTP 13.10 java6 的安装和中文设置 13.11 openjdk6 的安装和中文设置 13.12 程序显示有些字大,有些小 13.13 PDF 文件乱码 13.14 Flash中文乱码 13.15 增加农历 13.16 unzip 中文文件名乱码 13.17 ibus跟随 14 文件管理 14.1 一屏查看文件内容 14.2 不显示以#开头的行 14.3 分页查看文件内容 14.4 可控分页查看文件内容 14.5 带行号显示文件的内容 14.6 去除文件中的行号 14.7 删除文件中的重复行 14.8 根据字符串匹配来查看文件部分内容 14.9 显示包含或者不包含字符串的文件名 14.10 快速查找某个文件 14.11 创建两个空文件 14.12 递归式创建一些嵌套目录 14.13 递归式删除嵌套目录 14.14 回当前用户的宿主目录 14.15 回到上一次的目录 14.16 查看当前所在目录的绝对路经 14.17 获得文件的后缀名 14.18 去除文件的后缀名 14.19 列出当前目录下的所有文件,包括以.开头的隐含文件 14.20 移动路径下的文件并改名 14.21 复制文件或者目录 14.22 查看文件类型 14.23 查看文件的时间 14.24 对比两个文件之间的差异 14.25 显示xxx文件倒数6行的内容 14.26 让tail不停地读取最新的内容 14.27 查看文件中间的第五行(含)到第10行(含)的内容 14.28 查找关于xxx的命令 14.29 通过ssh传输文件 14.30 把所有文件的后辍由rm改为rmvb 14.31 把所有文件名中的大写改为小写 14.32 删除特殊文件名的文件,如文件名:--help.txt 14.33 查看当前目录的子目录 14.34 将当前目录下最近30天访问过的文件移动到上级back目录 14.35 查找当前目录下最近30天访问过的文件打包备份 14.36 显示系统服务器一小时以内的包含 xxxx 的所有邮件 14.37 将当前目录下最近2小时到8小时之内的文件显示出来 14.38 删除修改时间在30天之前的所有文件 14.39 删除访问时间在30天之前的所有文件 14.40 查找guest用户的以avi或者rm结尾的文件并删除掉 14.41 查找不以java和xml结尾,并7天没有使用的文件删除掉 14.42 查找目录下所有有包含abcd文字的文本文件,并替换为xyz 14.43 删除当前目录里面所有的 .svn 目录 14.44 删除当前目录所有以“~”结尾的临时文件 14.45 统计当前文件个数 14.46 统计当前目录下所有jpg文件的尺寸 14.47 统计当前目录个数 14.48 统计当前目录下占空间最大的前10名文件或目录 14.49 显示当前目录下2006-01-01的文件名 14.50 备份当前系统到另外一个硬盘 14.51 使用ssh方式同步远程数据到本地目录 14.52 使用ftp方式同步远程数据到本地目录 14.53 去掉文件中的^M 14.54 转换Dos文本文件到Unix文本文件 14.55 转换bin/cue到iso文件 14.56 转换目录到iso文件 14.57 转换CD到iso文件 14.58 将一个文件作为附件发到邮箱 14.59 合并多个pdf文件到一个pdf文件 14.60 比较两个目录里面的文件是否有相同 15 影像 15.1 播放swf文件 15.2 如何保存串流视频(mms/rtsp) 15.3 批量将rmvb转为avi 15.4 批量将DVD转为avi 15.5 批量将任何格式的电影转为ogv 15.6 批量将rmvb格式的电影转为ogv 15.7 利用gst来转换任意电影为ogv 15.8 批量转换任意文件为ipod touch使用的mp4 15.9 转换任意格式的视频到H264 15.10 压制DVD到H264,支持ipod 15.11 图形界面为ipod touch转mp4的方法 15.12 mencoder/mplayer 反拉丝参数 15.13 合并多个 rm 文件为一个 avi 文件 15.14 合并视频到一个文件 15.15 CD 抓轨为 mp3 (有损) 15.16 CD 抓轨为 Flac (无损) 15.17 ape 转换为 flac 15.18 ape/flac 转换为 mp3 15.19 批量将 ape 转为 mp3 15.20 批量将 ape 转为 m4a 15.21 批量将 ape 转为 aac 15.22 批量将 flac 转为 mp3 15.23 批量将svg转为png 15.24 批量转换格式到mp3 15.25 批量缩小图片到30% 15.26 批量转换jpg到png 15.27 将文字转为图片 15.28 如何压缩png图片 15.29 将多张图片合并到一个PDF文件 15.30 批量把pdf转换为txt并格式化 15.31 转换 pdf 到 png 15.32 获取jpg的扩展信息(Exif) 15.33 获取视频文件 xxx.avi 的信息 15.34 查看MKV视频文件 xxx.mkv 的信息 15.35 抓取桌面操作的视频 15.36 命令行读出文本 15.37 命令行抓屏 16 压缩 16.1 增加 7Z 压缩软件 16.2 增加 rar 软件压缩和解压缩支持 16.3 增加 zip 格式压缩和解压缩支持 16.4 解压缩 xxx.tar.gz 16.5 解压缩 xxx.tar.bz2 16.6 压缩aaa bbb目录为xxx.tar.gz 16.7 压缩aaa bbb目录为xxx.tar.bz2 16.8 增加 lha 支持 16.9 增加解 cab 文件支持 17 Nautilus 17.1 显示隐藏文件 17.2 显示地址栏 17.3 特殊 URI 地址 17.4 查看已安装字体 18 日期和时间 18.1 显示日历 18.2 设置日期 18.3 设置时间 18.4 将时间写入CMOS 18.5 查看CMOS时间 18.6 读取CMOS时间 18.7 从服务器上同步时间 18.8 设置电脑的时区为上海 18.9 XP 和 Ubuntu 相差了 8 小时的时差 19 工作区 19.1 不同工作区间切换 20 控制台 20.1 指定控制台切换 20.2 控制台下滚屏 20.3 控制台抓图 21 数据库 21.1 mysql的数据库存放路径 21.2 从mysql中导出和导入数据 21.3 忘了mysql的root口令怎么办 21.4 修改mysql的root口令 21.5 如何优化mysql 21.6 mysql命令行中文显示?号 21.7 常用mysql管理语句 21.8 mysql的自动备份 22 控制 22.1 如何使用命令关闭显示器 22.2 设置CPU的频率 22.3 命令关机 22.4 定时关机 22.5 命令重启电脑 22.6 如何修改ssh登录提示 22.7 如何关闭ssh登录提示 22.8 如何使用命令关闭笔记本的触摸板 22.9 从命令行通知桌面消息 23 统计 23.1 统计最常用的10条命令 23.2 统计每个单词的出现频率,并排序 23.3 统计80端口的连接个数并按照从大到小排列 24 编辑器 24.1 vim中删除技巧 24.2 如何配置Emacs 24.3 vim 如何显示彩色字符 24.4 让 vim 直接支持编辑 .gz 文件 24.5 vim 如何显示行号,在~/.vimrc中加入 24.6 vim配色方案 (~/.vimrc) 24.7 解决vim中文编码问题,在~/.vimrc中加入 24.8 gedit中文乱码的解决 25 编译和打包 25.1 安装通用编译环境 25.2 通用的编译安装步骤 25.3 如何编译安装软件 kate 25.4 获得源代码包 25.5 解压缩还原源代码包 25.6 安装编译打包环境 25.7 重新编译并打包Debian化的源码 25.8 获得源码并重新打包 25.9 给源代码打补丁 25.10 安装 gtk+ 编译环境 26 其它 26.1 把终端加到右键菜单 26.2 如何删除Totem电影播放机的播放历史记录 26.3 清除桌面挂载硬盘图标 26.4 如何更换gnome程序的快捷键 26.5 基于 OpenVZ 的 VPS 支持 OpenVPN 对外访问设置 26.6 GNOME登录时自动运行程序 26.7 man 如何显示彩色字符 26.8 如何在命令行删除在会话设置的启动程序 26.9 如何提高wine的反应速度 26.10 如何命令行刻录 26.11 延迟抓图 26.12 回收站在哪里 26.13 强制清空回收站 26.14 默认打开方式的配置文件在哪里 26.15 Firefox 的缓存目录在哪里 26.16 查看samba的用户 26.17 增加一个用户到samba 26.18 从samba账户中删除一个用户 26.19 显示samba账户信息 26.20 测试samba账户是否正常 26.21 samba的数据库存在哪里 26.22 samba用户Windows下无法登录 26.23 Pidgin 的聊天记录在哪里 26.24 安装PDF打印机 26.25 nvidia快速重设显示设置及配置多显示器 26.26 kacpid进程大量占用CPU 26.27 替换上一条命令中的一个短语 26.28 AMD64位系统安装免费的杀毒软件 avast! 26.29 应用合适的字体显示尺寸

前言

下面的命令大都需要在 控制台 / 终端 / 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 install ssh | 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`)

导入ppa源的key值

#W: GPG签名验证错误: http://ppa.launchpad.net jaunty Release: 由于没有公钥,下列签名无法进行验证: NO_PUBKEY 5126890CDCC7AFE0
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 5126890CDCC7AFE0 #5126890CDCC7AFE0替换为你需要导入的Key值

增加一个ppa源

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

系统升级

这里指的是版本间的升级,例如 9.04=>10.04。 使用该升级方式通常需要使用 backports 源。
sudo apt-get update
sudo apt-get install update-manager-core
sudo do-release-upgrade

系统

查看内核

uname -a

查看系统是32位还是64位

#查看long的位数,返回32或64
getconf LONG_BIT
#查看文件信息,包含32-bit就是32位,包含64-bit就是64位
file /sbin/init

或者使用

uname -m

查看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

查看内存型号

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

硬盘

查看硬盘的分区

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 [选项]... [文件]...显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。

长选项必须用的参数在使用短选项时也是必需的。
  -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/闪盘卷标

使用文件来增加交换空间

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

usage: free [-b|-k|-m|-g] [-l] [-o] [-t] [-s delay] [-c count] [-V]

  -b,-k,-m,-g show output in bytes, KB, MB, or GB
  -l show detailed low and high memory statistics
  -o use old format (no -/+buffers/cache line)
  -t display total for RAM + swap
  -s update every [delay] seconds
  -c update [count] times
  -V display version information and exit

连续监视内存使用情况

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

动态显示进程执行情况

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

查看当前有哪些进程

ps -AFL

查看进程的启动时间

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

按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

显示开启文件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 

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

#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:password@members.3322.org/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
&middot; -r:在本机建立服务器端目录结构;
&middot; -p: 下载显示HTML文件的所有图片;
&middot; -np:只下载目标站点指定目录及其子目录的内容;
&middot; -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 username@sshhostipaddress

监控网络所有的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

服务

添加一个服务

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

设置系统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

中文

相关推荐