ubuntu 查看内存命令

时间:2024.4.27

ubuntu 查看内存命令

分类: linux 2012-05-12 16:37 2304人阅读 评论(0) 收藏 举报 ubuntulinuxcachebyte文档

Linux中使用free可以查看系统内存使用状态, 默认单位为KB为单位,在此我以MB为单位说明

lostman@lostman-MS-6702E:~/桌面$ free -m

total used free shared buffers cached Mem: 496 457 38 0 8 104 -/+ buffers/cache: 344 151

Swap: 510 156 354

就可以查看当前内存的使用, 第二行的-/+buffers/cache是当前实际被使用的内存和空闲内存空间,具体解释如下:

mem 行显示了从系统角度看来内存使用的情况, total是系统可用的内存大小, 数量上等于系统物理内存减去内核保留的内存. buffers和cached是系统用做缓冲的内存. buffers与某个块设备关联, 包含了文件系统元数据, 并且跟踪了块的变化. cache只包含了文件本身.

-/+ buffers/cache行则从用户角度显示内存信息, 可用内存从数量上等于mem行used列值减去buffers和cached内存的大小. 因为buffers和cached是操作系统为加快系统运行而设置的, 当用户需要时, 可以只接为用户使用.

top和vmstat也显示了系统内存的信息, 和free的显示结果类似.

free命令详解:

功能说明:显示内存状态。

语 法: free [-bkmotV][-s ]

补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文档内存,共享内存区段,连同系统核心使用的缓冲区等。

参 数:

-b 以Byte为单位显示内存使用情况。

-k 以KB为单位显示内存使用情况。

-m 以MB为单位显示内存使用情况。

-o 不显示缓冲区调节列。

-s 持续观察内存使用状况。

-t 显示内存总和列。

-V 显示版本信息。


第二篇:Ubuntu命令技巧


目录

?

o o 2.2 查找软件库中的软件 o o 2.4 显示系统全部可用包的名称 o 2.5 显示包的信息 o o 2.7 查看已经安装了哪些包 o o 2.9 查询软件xxx被哪些包依赖 o 2.10 增加一个光盘源 o o 2.12 清除所有已删除包的残馀配置文件 o o 2.14 查看安装软件时下载包的临时存放目录 o 2.15 备份当前系统安装的所有包的列表 o o 2.17 清理旧版本的软件缓存 o o 2.19 删除系统不再使用的孤立软件 o 2.20 查看包在服务器上面的地址 o 2.21 彻底删除Gnome o 2.22 彻底删除KDE o o 2.24 删除旧内核 o 2.25 导入ppa源的key值 o 2.26 增加一个ppa源 o 2.27 系统升级 ?

o 3.1 查看内核 o 3.2 查看系统是32位还是64位 o 3.3 查看Ubuntu版本 o 3.4 查看内核加载的模块 o o 3.6 查看USB设备 o o 3.8 激活网卡的 Wake-on-LAN o 3.9 查看CPU信息 o o 3.11 获取CPU序列号或者主板序列号 ?

3.12 显示当前内存大小 o o 3.14 显示系统运行时间 o o 3.16 查看内核限制 o 3.17 查看当前屏幕分辨率 ?

o 4.1 查看硬盘的分区 o o 4.3 硬盘格式化 o 4.4 硬盘检查 o o 4.6 分区卸载 o o 4.8 可写挂载ntfs分区 o 4.9 挂载fat32分区 o o 4.11 挂载ISO文件 o o 4.13 查看软raid阵列信息 o 4.14 参看硬raid阵列信息 o o 4.16 查看硬盘剩余空间 o o 4.18 优盘没法卸载 o 4.19 使用文件来增加交换空间 o ?

o o 5.2 连续监视内存使用情况 o 5.3 动态显示进程执行情况 o o 5.5 查看目前登入用户运行的程序 o o 5.7 统计程序的内存耗用 o 5.8 按内存从大到小排列进程 o o 5.10 查看当前进程树 o o 5.12 强制中止一个进程(在上面进程中止不成功的时候使用) o 5.13 图形方式中止一个程序 o o 5.15 显示开启文件abc.txt的进程 o o

5.17 显示nsd进程现在打开的文件 o o 5.19 在后台运行交互式程序,退出登录后,并不结束程序 o o 5.21 增加系统最大打开文件个数 o 5.22 清除僵尸进程

o o 5.24 Linux系统中如何限制用户进程CPU占用率 ?

o 6.1 配置 ADSL

o 6.2 ADSL手工拨号

o

o 6.4 断开 ADSL

o

o 6.6 如何设置动态域名 ?

o o 7.2 根据IP查电脑名 o o 7.4 查看当前外网的IP地址 o 7.5 查看当前监听80端口的程序 o o 7.7 同一个网卡增加第二个IP地址 o o 7.9 查看路由信息

o 7.10 手工增加一条路由 o o 7.12 修改网卡MAC地址的方法 o o 7.14 统计当前所有IP包的状态 o 7.15 统计当前20000个IP包中大于100个IP包的IP地址 o

o 7.17 察看当前网络连接状况以及程序 o o 7.19 查看当前系统所有的监听端口 o 7.20 查看网络的当前流量 o o 7.22 查看到某一个域名的路由情况 o o 7.24 从当前页面开始镜像整个网站到本地 o 7.25 如何多线程下载 o o 7.27 快速使用http方式共享目录 o o

? ? ? ? ? ? 7.29 监控网络所有的tcp数据 o 8.1 防止外网用内网IP欺骗 o o 8.3 查看filter规则 o 8.4 取消nat规则 o o 8.6 阻止一个IP连接本机 o o 8.8 开启 80 端口 o 8.9 禁止一个IP或者一个IP段访问服务器端口服务 o 9.1 检查本地是否存在安全隐患 o o 9.3 Linux下可以使用的商业杀毒软件 o o 10.2 删除一个服务 o o 10.4 临时关闭一个服务 o 10.5 临时启动一个服务 o 11.1 增加用户 o o 11.3 修改当前用户的密码 o 11.4 修改用户密码 o o 11.6 如何禁用/启用某个帐户 o o 11.8 如何切换到其他帐号(需要该用户的密码) o 11.9 如何切换到root帐号 o 12.1 配置默认Java使用哪个 o o 12.3 修改系统登录信息 o 12.4 使用eclipse等其他自带java编译器的软件,换回sun的编译器方法

o o 13.2 转换文件名由GBK为UTF8 o 13.3 批量转换src目录下的所有文件内容由GBK到UTF8 o o 13.5 批量转换文件内容由GBK到UTF8 o o

13.7 控制台下显示中文 o o 13.9 java6 的安装和中文设置 o o 13.11 程序显示有些字大,有些小 o 13.12 PDF 文件乱码 o o 13.14 增加农历 o o 13.16 ibus跟随 ?

o o 14.2 不显示以#开头的行 o o 14.4 可控分页查看文件内容 o 14.5 带行号显示文件的内容 o o 14.7 删除文件中的重复行 o o 14.9 显示包含或者不包含字符串的文件名 o 14.10 快速查找某个文件 o o 14.12 递归式创建一些嵌套目录 o o 14.14 回当前用户的宿主目录 o 14.15 回到上一次的目录 o o 14.17 获得文件的后缀名 o o 14.19 列出当前目录下的所有文件,包括以.开头的隐含文件 o 14.20 移动路径下的文件并改名 o o 14.22 查看文件类型 o o 14.24 显示xxx文件倒数6行的内容 o 14.25 让tail不停地读取最新的内容 o o 14.27 查找关于xxx的命令 o o 14.29 把所有文件的后辍由rm改为rmvb o 14.30 把所有文件名中的大写改为小写 o o 14.32 查看当前目录的子目录 o o

14.34 查找当前目录下最近30天访问过的文件打包备份 o o 14.36 将当前目录下最近2小时到8小时之内的文件显示出来 o o 14.38 删除创建时间在30天之前的所有文件 o 14.39 查找guest用户的以avi或者rm结尾的文件并删除掉 o o 14.41 查找目录下所有有包含abcd文字的文本文件,并替换为xyz o o 14.43 删除当前目录所有以“~”结尾的临时文件 o 14.44 统计当前文件个数

o o 14.46 统计当前目录个数

o o 14.48 显示当前目录下2006-01-01的文件名 o 14.49 备份当前系统到另外一个硬盘

o o 14.51 使用ftp方式同步远程数据到本地目录 o

o 14.53 转换Dos文本文件到Unix文本文件 o 14.54 转换bin/cue到iso文件

o

o 14.56 转换CD到iso文件

o

o 14.58 合并多个pdf文件到一个pdf文件 ?

o

o 15.2 如何保存串流视频(mms/rtsp)

o

o 15.4 批量将DVD转为avi

o 15.5 批量将任何格式的电影转为ogv

o

o 15.7 利用gst来转换任意电影为ogv

o o 15.9 转换任意格式的视频到H264

o 15.10 压制DVD到H264,支持ipod

o o 15.12 mencoder/mplayer 反拉丝参数

o o 15.14 CD 抓轨为 mp3 (有损)

o 15.15 CD 抓轨为 Flac (无损)

o

o 15.17 ape/flac 转换为 mp3

o o

? ? ? ? ? 15.19 批量将 flac 转为 mp3 o o 15.21 批量转换格式到mp3 o o 15.23 批量转换jpg到png o 15.24 如何压缩png图片 o o 15.26 批量把pdf转换为txt并格式化 o o 15.28 获取jpg的扩展信息(Exif) o 15.29 获取视频文件 xxx.avi 的信息 o o 15.31 抓取桌面操作的视频 o o 15.33 命令行抓屏 o o 16.2 增加 rar 软件压缩和解压缩支持 o o 16.4 解压缩 xxx.tar.gz o 16.5 解压缩 xxx.tar.bz2 o o 16.7 压缩aaa bbb目录为xxx.tar.bz2 o o 16.9 增加解 cab 文件支持 o o 17.2 显示地址栏 o o 17.4 查看已安装字体 o o 18.2 设置日期 o o 18.4 将时间写入CMOS o 18.5 查看CMOS时间 o o 18.7 从服务器上同步时间 o o 18.9 XP 和 Ubuntu 相差了 8 小时的时差 o

o o

? ? ? ? ? ? 20.2 控制台下滚屏 o o o 21.2 从mysql中导出和导入数据 o 21.3 忘了mysql的root口令怎么办 o o 21.5 如何优化mysql o o 21.7 常用mysql管理语句 o o 22.2 设置CPU的频率 o o 22.4 定时关机 o 22.5 命令重启电脑 o o 22.7 如何关闭ssh登录提示 o o 22.9 从命令行通知桌面消息 o o 23.2 统计每个单词的出现频率,并排序 o o 24.1 vim中删除技巧 o o 24.3 vim 如何显示彩色字符 o o 24.5 vim 如何显示行号,在~/.vimrc中加入 o 24.6 vim配色方案 (~/.vimrc) o o 24.8 gedit中文乱码的解决 o 25.1 安装通用编译环境 o 25.2 通用的编译安装步骤 o o 25.4 获得源代码包 o o 25.6 安装编译打包环境 o 25.7 重新编译并打包Debian化的源码 o o 25.9 给源代码打补丁 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 26.1 把终端加到右键菜单 26.3 清除桌面挂载硬盘图标 26.5 基于 OpenVZ 的 VPS 支持 OpenVPN 对外访问设置 26.6 GNOME登录时自动运行程序 26.8 如何在命令行删除在会话设置的启动程序 26.10 如何命令行刻录 26.11 延迟抓图 26.13 强制清空回收站 26.15 Firefox 的缓存目录在哪里 26.16 查看samba的用户 26.18 从samba账户中删除一个用户 26.20 测试samba账户是否正常 26.21 samba的数据库存在哪里 26.23 Pidgin 的聊天记录在哪里 26.25 nvidia快速重设显示设置及配置多显示器 26.26 kacpid进程大量占用CPU 26.28 AMD64位系统安装免费的杀毒软件 avast!

Ubuntu命令技巧

前言

下面的命令大都需要在 控制台 / 终端 / shell 下输入。

控制台, 终端, 和 shell 意味着同样一件事 - 一个命令行界面, 他可以用来控制系统。

打开一个控制台:

应用程序 --> 附件 --> 终端

任何一个使用 'sudo' 作为前缀的命令都需要拥有管理员 (或 root) 访问权限。 所以你会被提示输入你自己的密码。

安装升级

查看软件xxx安装内容 dpkg -L xxx

查找软件库中的软件

apt-cache search 正则表达式 或

aptitude search 软件包

显示系统安装包的统计信息 apt-cache stats

显示系统全部可用包的名称 apt-cache pkgnames

显示包的信息

apt-cache show k3b

查找文件属于哪个包 apt-file search filename 查看已经安装了哪些包 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 $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

彻底删除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 5126890CDCC7AFE0 sudo apt-key adv --recv-keys --keyserver 5126890CDCC7AFE0 #5126890CDCC7AFE0替换为你需要导入的Key值 增加一个ppa源

sudo add-apt-repository ppa:user/ppa-name

#使用 ppa 的地址替换 ppa:user/ppa-name

系统升级

1. 这里指的是版本间的升级,例如 9.04=>10.04。

2. 使用该升级方式通常需要使能 backports 源。

sudo apt-get update

sudo apt-get install update-manager-core

sudo do-release-upgrade

系统

查看内核

uname -a

查看系统是32位还是64位 由于没

#查看long的位数,返回32或64

getconf LONG_BIT

#查看文件信息,包含32-bit就是32位,包含64-bit就是64位 file /sbin/init

查看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 $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 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的交换文件 /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

进程

查看当前的内存使用情况

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

查看目前登入用户运行的程序

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

查看当前进程树

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 outfile <cmd>

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

echo 4096 > /proc/sys/fs/file-max

#或者

ulimit -n 4096

清除僵尸进程

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

如何设置动态域名

#首先去 申请一个动态域名

#然後修改 /etc/ppp/ip-up 增加拨号时更新域名指令

sudo vim /etc/ppp/ip-up

#在最後增加如下行

w3m -no-cookie -dump

'http://username:password@/dyndns/update?system=dyndns&hostname='

网络

根据IP查网卡地址

arping IP地址

根据IP查电脑名

nmblookup -A IP地址

查看当前IP地址

ifconfig eth0 |awk '/inet/ {split($2,x,":");print x[2]}' 查看当前外网的IP地址

w3m -no-cookie -dump /ip2city.asp|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' w3m -no-cookie -dump |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}'

同一个网卡增加第二个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

· -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

或 curl --head

快速使用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

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): /productupdates?chapter=146274389

avast!(免费/deb): /eng/download-avast-for-linux-edition.html 小红伞(gz): /en/downloads/avira_antivir_professional.html BitDefender(比特梵德/run):/SMB/Workstation_Security_and_Management/BitDefender_Antivirus_Scanner_for_Unices/Unix/Current/EN_FR_BR_RO/Linux/

申请比特梵德的KEY:/site/Products/ScannerLicense/

服务

添加一个服务

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=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

批量转换文件内容由GBK到UTF8

for i in `find . *`; do if [ -f "$i" ]; then iconv -f gb2312 -t utf8 $i > "./converted/$i" fi ; done

转换 mp3 标签编码

sudo apt-get install python-mutagen

find . -iname '*.mp3' -execdir mid3iconv -e GBK {} \;

或者使用图形界面工具“小K”,具体请参考解决文件名mp3标签和文本文件内容的乱码问题

控制台下显示中文

sudo apt-get install zhcon

使用时,输入zhcon即可

更具体的输入:zhcon --utf8 --drv=vga

如果在/etc/zhcon.conf中指定了分辨率,可以去掉--drv=vga以指定的分辨率启动。

zhcon是个外挂的控制平台,也就是像US-DOS那样是额外安装的软件,装完后是需要驱动才能进去的,不然有可能死机; 当然驱动什么的在你sudo apt-get install zhcon的时候就已经安装了; 你所需要的是在进zhcon时要申明你所用的驱动,而zhcon在安装时,就装了3种驱动:vga,framebuffer,libggi,而我们一般都是用的第一种驱动,因为比较方便简单,而那2钟驱动.很麻烦,我也就没改过.好了说了这么多该告诉各位怎么进入zhcon了;运行时需输入:zhcon --utf8 --drv=vga

lftp 登录远程Windows中文FTP

lftp :~>set ftp:charset GBK

lftp :~>set file:charset UTF-8

java6 的安装和中文设置

#下面是ubuntu 10.04安装标准的sun-java,安装过程中需要使用tab键切换同意其授权协议

sudo add-apt-repository "deb / lucid partner"

sudo apt-get update

sudo apt-get install sun-java6-jdk sun-java6-plugin ttf-wqy-microhei

sudo apt-get remove ttf-kochi-gothic ttf-kochi-mincho ttf-unfonts ttf-unfonts-core

sudo mkdir -p /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback sudo ln -s /usr/share/fonts/truetype/arphic/wqy-microhei.ttc /usr/lib/jvm/java-6-sun/jre/lib/fonts/fallback

openjdk6 的安装和中文设置

sudo apt-get install openjdk-6-jdk ttf-wqy-microhei

#有两种解决办法,第一种关闭Java的AA

echo "export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on'" >> ~/.profile

#第二种直接修改Java字体配置

echo "allfonts.umingcn=WenQuanYi Microhei Hei" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties

echo "allfonts.uminghk=WenQuanYi Microhei Hei" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties

echo "allfonts.umingtw=WenQuanYi Microhei Hei" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties

echo "allfonts.wqy-zenhei=WenQuanYi Microhei Hei" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties

echo "allfonts.shanheisun=WenQuanYi Microhei Hei" | sudo tee -a /usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties

echo

"filename.WenQuanYi_Microhei_Hei=/usr/share/fonts/truetype/wqy/wqy-microhei.ttc" | sudo tee -a

/usr/lib/jvm/java-6-openjdk/jre/lib/fontconfig.properties

程序显示有些字大,有些小

sudo apt-get remove ttf-kochi-gothic ttf-kochi-mincho ttf-unfonts ttf-unfonts-core

PDF 文件乱码

sudo apt-get install xpdf-chinese-simplified xpdf-chinese-traditional poppler-data

Flash中文乱码

sudo gedit /etc/fonts/conf.d/49-sansserif.conf

将倒数第四行 <string>sans-serif</string>

改为 <string>sans</string>

保存即可,重启firefox

增加农历

sudo apt-get install lunar-applet

鼠标点击面板右键 -> 添加到面板 -> 农历日期

unzip 中文文件名乱码

sudo apt-get install p7zip-full

export LANG=zh_CN.GBK #临时在控制台修改环境为zh_CN.GBK,然后解压缩即可

7za e docs.zip

ibus跟随

安装ibus-gtk即可,最好另外安装:ibus-qt4

文件管理

一屏查看文件内容

cat 文件名

不显示以#开头的行

cat /etc/vsftpd.conf |grep -v ^#

分页查看文件内容

more 文件名

可控分页查看文件内容

less 文件名

带行号显示文件的内容

nl 文件名

cat -n 文件名

去除文件中的行号

cut -c 5- a.py

删除文件中的重复行

cat file.txt |sort -u

根据字符串匹配来查看文件部分内容

grep 字符串 文件名

显示包含或者不包含字符串的文件名

grep -l -r 字符串 路径 #显示内容包含字符串的文件名

grep -L -r 字符串 路径 #显示内容不包含字符串的文件名

find . -path './cache' -prune -o -name "*.php" -exec grep -l

"date_cache[$format]['lang']" {} \; #显示当前目录下不包含cache目录的所有含有“date_cache[$format]['lang']”字符串的php文件。

快速查找某个文件

whereis filename

find 目录 -name 文件名

locate 文件名 # 注意,为了得到更好的效果,运行前可以更新下数据库,运行 sudo updatedb 即可,但这个命令每隔一段时间会自动运行,所以不用太在意 创建两个空文件

touch file1 file2

递归式创建一些嵌套目录

mkdir -pv /tmp/xxs/dsd/efd

递归式删除嵌套目录

rm -fr /tmp/xxs

回当前用户的宿主目录

cd ~

# 或者更简单的

cd

回到上一次的目录

cd -

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

pwd

获得文件的后缀名

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

去除文件的后缀名

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

列出当前目录下的所有文件,包括以.开头的隐含文件 ls -a

移动路径下的文件并改名

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

复制文件或者目录

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

查看文件类型

file filename

对比两个文件之间的差异

diff file1 file2

显示xxx文件倒数6行的内容

tail -6 xxx

让tail不停地读取最新的内容

tail -10f /var/log/apache2/access.log

或者

tailf /var/log/apache2/access.log

查看文件中间的第五行(含)到第10行(含)的内容

sed -n '5,10p' /var/log/apache2/access.log

查找关于xxx的命令

apropos xxx

man -k xxx

通过ssh传输文件

scp -rp /path/filename 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 \;

查找当前目录下最近30天访问过的文件打包备份

find . -type f -atime -30 | xargs tar zcvpf backup.tar.gz

find . -type f -atime -30 -print -exec tar rvpf backup.tar {} \; 显示系统服务器一小时以内的包含 xxxx 的所有邮件

find /home/ -path "*Maildir*" -type f -mmin -60|xargs -i grep -l xxxx '{}'

将当前目录下最近2小时到8小时之内的文件显示出来

find . -mmin +120 -mmin -480 -exec more {} \;

删除修改时间在30天之前的所有文件

find . -type f -mtime +30 -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 {} \; 查找目录下所有有包含abcd文字的文本文件,并替换为xyz

grep -rIl "abcd" ./* --color=never | xargs sed -i "s/abcd/xyz/g" #注意grep的一个参数是大写的i,一个参数是小写的L

删除当前目录里面所有的 .svn 目录

find . -name .svn -type d -exec rm -fr {} \;

删除当前目录所有以“~”结尾的临时文件

find . -name "*~" -exec rm {} \;

统计当前文件个数

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

统计当前目录下占空间最大的前10名文件或目录

du -sm * | sort -nr | head -10

显示当前目录下2006-01-01的文件名

ls -l |grep 2006-01-01 |awk '{print $8}'

备份当前系统到另外一个硬盘

sudo rsync -Pa / /media/disk1 --exclude=/media/* --exclude=/home/* --exclude=/sys/* --exclude=/tmp/* --exclude=/proc/* --exclude=/mnt/* 使用ssh方式同步远程数据到本地目录

rsync -Pa -I --size-only --delete --timeout=300

Remote_IP:/home/ubuntu/back /backup

使用ftp方式同步远程数据到本地目录

lftp -c "open Remote_IP;user UserName Password;set cache:enable

false;set ftp:passive-mode false;set net:timeout 15;mirror -e -c /back /backup;"

去掉文件中的^M

#注意不要使用同样的文件名,会清空掉原文件

cat filename | tr -d "^M" > newfile;

或者

sed -e "s/^M//g" filename > newfile;

或者

ex "+:%s/[Ctrl+V][Enter]//g" "+:wq" filename #直接修改文件 转换Dos文本文件到Unix文本文件

tr -d '\15\32' < dosfile.txt > unixfile.txt #dos = > unix

awk '{ sub("\r$", ""); print }' dosfile.txt > unixfile.txt #dos = > unix awk 'sub("$", "\r")' unixfile.txt > dosfile.txt #unix = > dos

转换bin/cue到iso文件

#sudo apt-get install bchunk

bchunk image.bin image.cue image

转换目录到iso文件

mkisofs -o isofile.iso dirname

转换CD到iso文件

dd if=/dev/cdrom of=isofile.iso

将一个文件作为附件发到邮箱

#sudo apt-get install mailutils sharutils

uuencode xxx.tar.gz xxx.tar.gz |mail xxx@xxx.com

(echo "hello, please see attached file"; uuencode xxx.tar.gz xxx.tar.gz)| mail xxx@xxx.com

合并多个pdf文件到一个pdf文件

#apt-get install gs pdftk

gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=output.pdf -dBATCH input1.pdf input2.pdf

影像

播放swf文件

安装swf解码器

sudo apt-get install swfmill

如何保存串流视频(mms/rtsp)

mplayer -dumpfile dump.rm -dumpstream rstp://....

批量将rmvb转为avi

#ipod touch可用

for i in *.rmvb; do mencoder -vf harddup -oac mp3lame -lameopts vbr=3 -ovc xvid -xvidencopts fixed_quant=4 -of avi $i -o `echo $i | sed -e 's/rmvb$/avi/'`; done

批量将DVD转为avi

for i in *.VOB; do mencoder -oac mp3lame -lameopts aq=7:vbr=2:q=6 -srate 44100 -ovc xvid -xvidencopts fixed_quant=4 -of avi $i -o `echo $i | sed -e 's/VOB$/avi/'`; done

批量将任何格式的电影转为ogv

#sudo apt-get install ffmpeg2theora

#firefox3.5或chrome直接支持播放,无需安装任何解码器,注意不支持rmvb,rmvb会出现a/v不同步问题

for i in *; do ffmpeg2theora --optimize --deinterlace $i; done 批量将rmvb格式的电影转为ogv

#!/bin/bash

for i in *; do

mkfifo "/tmp/$i"

mencoder -quiet -vf harddup -ovc raw -oac pcm -o "/tmp/$i" "$i" & ffmpeg2theora --optimize --deinterlace "/tmp/$i" -o "`echo $i | sed 's/\(.*\)\..*$/\1/'`.ogv"

rm "/tmp/$i"

done

利用gst来转换任意电影为ogv

#!/bin/bash

for i in *; do

gst-launch-0.10 filesrc location="$i" ! decodebin name=demux \ { oggmux name=mux ! filesink location="`echo $i | sed

's/\(.*\)\..*$/\1/'`.ogv" } \

{ demux. ! queue ! audioconvert ! vorbisenc ! queue ! mux. } \

{ demux. ! queue ! ffmpegcolorspace ! videorate ! theoraenc ! mux. } done

批量转换任意文件为ipod touch使用的mp4

#!/bin/bash

#ubuntu10.04自带的mencoder由于版权问题,不支持h264编码,需要重新编译;也可以直接参考下面的压缩方法。

#sudo apt-get install mencoder mplayer

find . -name '*.avi' -o -name '*.rm' -o -name '*.rmvb' -o -name '*.wmv' -o \

-name '*.vob' -o -name '*.asf' -o -name '*.mpg' -o -name '*.ts' -o \

-name '*.flv' -o -name '*.mpeg' -o -name '*.ogv' -o -name '*.mov' -o \

-name '*.mkv' -o -name '*.dat' | while read i; do

basename=`echo $i | sed 's/\(.*\)\..*$/\1/'`

font="WenQuanYi Zen Hei"

if [ -f "${basename}.srt" ] ; then

cp "${basename}.srt" $$.srt

m0="-vf scale=480:-10,harddup -sub $$.srt -unicode -subcp GB18030 -subfont-text-scale 3";

else

m0="-vf scale=480:-10,harddup";

fi

x0="-lavfopts format=mp4 -faacopts mpeg=4:object=2:raw:br=160 -oac faac -ovc x264 -sws 9 -x264encopts

nocabac:level_idc=30:bframes=0:global_header:threads=auto:subq=5:frameref=6:partitions=all:trellis=1:chroma_me:me=umh:bitrate=500 -of lavf -ofps 24000/1001";

mencoder $m0 -fontconfig -font "${font}" $x0 -o "$$.mp4" "$i" mv "$$.mp4" "${basename}.mp4"

if [ -f "${basename}.mp4" ] ; then

rm "$i"

fi

done

转换任意格式的视频到H264

#!/bin/bash

#sudo apt-get install faac x264 gpac mplayer mencoder

basename=`echo $1 | sed 's/\(.*\)\..*$/\1/'`

#获得视频的长宽和帧数

mplayer -vo null -ao null -identify -frames 0 "$1" 2>/dev/null > video.info

FPS=`cat video.info | grep ID_VIDEO_FPS | cut -d = -f 2`

#FPS=23.976

W=`cat video.info | grep ID_VIDEO_WIDTH | cut -d = -f 2`

H=`cat video.info | grep ID_VIDEO_HEIGHT | cut -d = -f 2`

WIDTH=480

HEIGHT=`expr $WIDTH \* $H \/ $W`

echo $1 FPS=$FPS WIDTH=$WIDTH HEIGHT=$HEIGHT

mkfifo audio.wav video.yuv

faac -o audio.aac audio.wav &

mplayer -ao pcm:file=audio.wav:fast -vc null -vo null "$1" x264 --profile baseline --fps $FPS -o video.264 video.yuv

${WIDTH}x${HEIGHT} &

mencoder -vf scale=$WIDTH:$HEIGHT,harddup,pp=fd,format=i420 -nosound -ovc raw -of rawvideo -ofps $FPS -o video.yuv "$1"

MP4Box -new -add video.264 -add audio.aac -fps $FPS "$basename.mp4" rm video.info audio.aac video.264 audio.wav video.yuv

#使用方法将上面的脚本保存为 x264.sh , x264.sh xxx.avi 来进行转化。 压制DVD到H264,支持ipod

#sudo apt-get install faac x264 gpac mplayer

FPS=29.970

mkfifo audio.wav

cat VTS_01_1.VOB VTS_02_1.VOB VTS_02_2.VOB VTS_03_1.VOB VTS_04_1.VOB | mplayer -nocorrect-pts -vo null -vc null -ao pcm:file=audio.wav:fast - &

faac audio.wav -o audio.aac

mkfifo video.y4m

cat VTS_01_1.VOB VTS_02_1.VOB VTS_02_2.VOB VTS_03_1.VOB VTS_04_1.VOB | mplayer -vo yuv4mpeg:file=video.y4m -vf scale=480:-3,harddup,pp=fd -nosound - &

x264 --profile baseline --muxer mp4 --demuxer y4m video.y4m -o video.mp4 MP4Box -add video.mp4 -add audio.aac -fps $FPS video.mp4

图形界面为ipod touch转mp4的方法

先确保有zenity和memcoder

wget /~lily/toIpod -O

~/.gnome2/nautilus-scripts/toIpod && chmod +x

~/.gnome2/nautilus-scripts/toIpod

在nautilus里对视频文件点右键,选择"脚本"-"toIpod".

详情请查看出处。

mencoder/mplayer 反拉丝参数

-vf lavcdeint

合并多个 rm 文件为一个 avi 文件

mencoder -ovc lavc 1.rm -oac mp3lame -o 1.avi

mencoder -ovc lavc 2.rm -oac mp3lame -o 2.avi

mencoder -idx 1.avi -ovc copy -oac copy -o o1.avi

mencoder -idx 2.avi -ovc copy -oac copy -o o2.avi

cat o1.avi o2.avi | mencoder -noidx -ovc copy -oac copy -o output.avi - CD 抓轨为 mp3 (有损)

#sudo apt-get install abcde

abcde -o mp3 -b

CD 抓轨为 Flac (无损)

#sudo apt-get install abcde

abcde -o flac -b

ape 转换为 flac

#sudo apt-get install flac shntool iconv

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/flac 转换为 mp3

#sudo apt-get install flac shntool lame

#ape 需要安装 monkeys 包

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

批量将 ape 转为 mp3

for i in *.ape; do shnconv -i ape -o "cust ext=mp3 lame -b 320 - %f" "$i" -d mp3OutputDir; done

批量将 flac 转为 mp3

for i in *.flac; do shnconv -i flac -o "cust ext=mp3 lame -b 320 - %f" "$i" -d mp3OutputDir; done

批量将svg转为png

for i in *.svg; do inkscape $i --export-png=`echo $i | sed -e 's/svg$/png/'`; done

批量转换格式到mp3

#sudo apt-get install lame mplayer

for i in *; do base=${i%.*}; mplayer -quiet -vo null -vc dummy -af volume=0,resample=44100:0:1 -ao pcm:waveheader:file="$i.wav" "$i" ; lame -V0 -h -b 192 -vbr-new "$i.wav" "$base.mp3"; rm -f "$i.wav" ; done 批量缩小图片到30%

for i in *.jpg; do convert -resize 30%x30% "$i" "sm-$i"; done 批量转换jpg到png

for i in *.jpg; do convert $i `echo $i | sed -e 's/jpg$/png/'`; done

如何压缩png图片

#sudo apt-get install optipng

optipng -o7 old.png new.png

#或 sudo apt-get install pngcrush

#pngcrush -brute old.png new.png

将多张图片合并到一个PDF文件

convert *.jpg out.pdf

批量把pdf转换为txt并格式化

sudo apt-get install poppler-utils poppler-data

find ./ -name '*.txt' | while read i; do cat $i | awk '{if ($0 ~ "^space:”) {printf “\n”$0} else {printf $0}}’ | sed ‘/^space:*digit:*$/d’ | sed ’s/^space:\+/ /’ | sed ’s/"/”/g’ > “../txt/$i”; done 转换 pdf 到 png

#sudo apt-get install imagemagick

convert -density 196 FILENAME.pdf FILENAME.png

获取jpg的扩展信息(Exif)

identify -verbose xxx.jpg

获取视频文件 xxx.avi 的信息

mplayer -vo null -ao null -frames 0 -identify "xxx.avi" 2>/dev/null | sed -ne '/^ID_/ { s/[]()|&;<>`'"'"'\\!$" []/\\&/g;p }'

查看MKV视频文件 xxx.mkv 的信息

#sudo apt-get install mkvtoolnix

mkvinfo -v xxx.mkv

抓取桌面操作的视频

ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg 命令行读出文本

espeak -vzh "从前有座山"

命令行抓屏

scrot -s screenshot.png

压缩

增加 7Z 压缩软件

#支持 7Z,ZIP,Zip64,CAB,RAR,ARJ,GZIP,BZIP2,TAR,CPIO,RPM,ISO,DEB 压缩文件格式

sudo apt-get install p7zip p7zip-full p7zip-rar

增加 rar 软件压缩和解压缩支持

sudo apt-get install rar unrar

增加 zip 格式压缩和解压缩支持

sudo apt-get install zip unzip

解压缩 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:/// - 系统主题文件夹

查看已安装字体

fc-list

在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts (这个似乎不行)

日期和时间

显示日历

cal # 显示当月日历

cal 2 2007 # 显示20xx年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/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)

只是支持tty1-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 '你的新密码'

如何优化mysql

wget /MySQL/tuning-primer.sh chmod +x tuning-primer.sh

./tuning-primer.sh

mysql命令行中文显示?号

mysql> set names utf8;

常用mysql管理语句

show table status; #查询表状态

show full processlist; #查询mysql进程

alter table site_stats engine=MyISAM; #转换表为MyISAM类型,转表锁为行锁。

show variables; #查看mysql 变量

控制

如何使用命令关闭显示器

xset dpms force off

设置CPU的频率

sudo apt-get install cpufrequtils

#查看cpu当前频率信息

sudo cpufreq-info

设置模式,对应于{最省电(最低频率),用户控制,最高或最低,正常,最大性能}

cpufreq-set -g {powersave, userspace, ondemand, conservative, performance}

命令关机

sudo halt

sudo shutdown -h now #现在关机

定时关机

sudo shutdown -h 23:00 #晚上11点自动关机

sudo shutdown -h +60 #60分钟后关机

命令重启电脑

sudo reboot

sudo shutdown -r now

如何修改ssh登录提示

sudo gedit /etc/motd

如何关闭ssh登录提示

sudo gedit /etc/ssh/sshd_config 修改这一行为: PrintLastLog no 如何使用命令关闭笔记本的触摸板

synclient touchpadoff=1

那么开启触摸板就是:

synclient touchpadoff=0

从命令行通知桌面消息

#sudo apt-get install libnotify-bin

notify-send "hello world"

统计

统计最常用的10条命令

history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10

统计每个单词的出现频率,并排序

awk '{arr[$1]+=1 }END{for(i in arr){print arr[i]"\t"i}}' FILE_NAME | sort -rn

统计80端口的连接个数并按照从大到小排列

netstat -na|grep :80|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n

编辑器

vim中删除技巧

:%s/[Ctrl-v][Enter]//g 删除DOS方式的回车^M

:%s= *$== 删除行尾空白

:%!sort -u 删除重复行

:%s/^.{-}pdf/new.pdf/ 只是删除第一个pdf

:%s/// 删除多行注释

:g/^$/d 删除所有空行

:g!/^dd/d 删除不含字符串'dd'的行

:v/^dd/d 删除不含字符串'dd'的行

:g/str1/,/str2/d 删除所有第一个含str1到第一个含str2之间的行 :v/./.,/./-1join 压缩空行

:g/^$/,/./-j 压缩空行

ndw 或 ndW 删除光标处开始及其后的 n-1 个字符。

d0 删至行首。

d$ 删至行尾。

ndd 删除当前行及其后 n-1 行。

x 或 X 删除一个字符。

Ctrl+u 删除输入方式下所输入的文本。

D 删除到行尾

x,y 删除与复制包含高亮区

dl 删除当前字符(与x命令功能相同)

d0 删除到某一行的开始位置

d^ 删除到某一行的第一个字符位置(不包括空格或TAB字符)

dw 删除到某个单词的结尾位置

d3w 删除到第三个单词的结尾位置

db 删除到某个单词的开始位置

dW 删除到某个以空格作为分隔符的单词的结尾位置

dB 删除到某个以空格作为分隔符的单词的开始位置

d7B 删除到前面7个以空格作为分隔符的单词的开始位置

d) 删除到某个语句的结尾位置

d4) 删除到第四个语句的结尾位置

d( 删除到某个语句的开始位置

d) 删除到某个段落的结尾位置

d{ 删除到某个段落的开始位置

d7{ 删除到当前段落起始位置之前的第7个段落位置

dd 删除当前行

d/text 删除从文本中出现“text”中所指定字样的位置,一直向前直到下一个该字样所出现的位置(但不包括该字样)之间的内容

dfc 删除从文本中出现字符“c”的位置,一直向前直到下一个该字符所出现的位置(包括该字符)之间的内容

dtc 删除当前行直到下一个字符“c”所出现位置之间的内容

D 删除到某一行的结尾

d$ 删除到某一行的结尾

5dd 删除从当前行所开始的5行内容

dL 删除直到屏幕上最后一行的内容

dH 删除直到屏幕上第一行的内容

dG 删除直到工作缓存区结尾的内容

d1G 删除直到工作缓存区开始的内容

如何配置Emacs

打开新立得或者命令行,查找emacs, 选择你想要的版本,比如emacs22或者emacs21.

之后的配置参考Emacs 常见问题及其解决方法

vim 如何显示彩色字符

sudo cp /usr/share/vim/vimcurrent/vimrc_example.vim

/usr/share/vim/vimrc

让 vim 直接支持编辑 .gz 文件

sudo apt-get install vim-full

vim 如何显示行号,在~/.vimrc中加入

set number

如果没有~/.vimrc文件,则可以在/etc/vim/vimrc中加入

set number

vim配色方案 (~/.vimrc)

colorscheme scheme

可用的 scheme 在 /usr/share/vim/vim71/colors/

解决vim中文编码问题,在~/.vimrc中加入

let &termencoding=&encoding

set fileencodings=utf-8,gbk,ucs-bom,cp936

#再提供一个实践中觉得不错的配置:

" Encoding related

set encoding=UTF-8

set langmenu=zh_CN.UTF-8

language message zh_CN.UTF-8

set

fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 set fileencoding=utf-8

gedit中文乱码的解决

gconftool-2 --set /apps/gedit-2/preferences/encodings/auto_detected "[UTF-8,CURRENT,GB18030,BIG5,ISO-8859-15,UTF-16]" --type list --list-type string

编译和打包

安装通用编译环境

sudo apt-get install build-essential

通用的编译安装步骤

./configure && make && sudo make install

如何编译安装软件 kate

sudo apt-get install apt-build

sudo apt-build install kate

获得源代码包

sudo apt-get source mysql-server

解压缩还原源代码包

dpkg-source -x mysql-dfsg-5.1_5.1.30-1.dsc

安装编译打包环境

sudo apt-get build-dep mysql-server

重新编译并打包Debian化的源码

dpkg-buildpackage -rfakeroot

获得源码并重新打包

apt-get source php5-cgi

#或手工下载源码后使用 dpkg-source -x

php5_5.2.6.dfsg.1-3ubuntu4.1.dsc 解开源码

sudo apt-get build-dep php5-cgi

cd php5-5.2.6.dfsg.1

dpkg-buildpackage -rfakeroot -uc -b

给源代码打补丁

patch -p0 < mysql.patch

其它

把终端加到右键菜单

sudo apt-get install nautilus-open-terminal

如何删除Totem电影播放机的播放历史记录

rm ~/.recently-used

清除桌面挂载硬盘图标

gconftool-2 --set /apps/nautilus/desktop/volumes_visible 0 --type bool 恢复:

gconftool-2 --set /apps/nautilus/desktop/volumes_visible 1 --type bool 如何更换gnome程序的快捷键

点击菜单,鼠标停留在某条菜单上,键盘输入任意你所需要的键,可以是组合键,会立即生效;

如果要清除该快捷键,请使用backspace

基于 OpenVZ 的 VPS 支持 OpenVPN 对外访问设置

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE #或

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j SNAT --to-source VPS-IP-ADDRESS

GNOME登录时自动运行程序

系统 -> 首选项 -> 会话 ->

启动程序

man 如何显示彩色字符

vim ~/.bashrc

#增加下面的内容:

export LESS_TERMCAP_mb=$'\E[01;31m'

export LESS_TERMCAP_md=$'\E[01;31m'

export LESS_TERMCAP_me=$'\E[0m'

export LESS_TERMCAP_se=$'\E[0m'

export LESS_TERMCAP_so=$'\E[01;44;33m'

export LESS_TERMCAP_ue=$'\E[0m'

export LESS_TERMCAP_us=$'\E[01;32m'

#生效文件

#source .bashrc

如何在命令行删除在会话设置的启动程序

cd ~/.config/autostart

rm 需要删除启动程序

如何提高wine的反应速度

sudo sed -ie '/GBK/,/^}/d' /usr/share/X11/locale/zh_CN.UTF-8/XLC_LOCALE

可能造成某些游戏帧数降低

如何命令行刻录

mkisofs -o test.iso -Jrv -V test_disk /home/carla/

cdrecord -scanbus

scsibus1:

1,1,0 101) 'HL-DT-ST' 'CD-RW GCE-8481B ' '1.04' Removable CD-ROM cdrecord -v -eject speed=8 dev=1,1,0 test.iso /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/

强制清空回收站

sudo rm -fr $HOME/.local/share/Trash/files/

默认打开方式的配置文件在哪里

#全局

/etc/gnome/defaults.list

#个人

~/.local/share/applications/mimeapps.list

Firefox 的缓存目录在哪里

ls ~/.mozilla/firefox/*.default/Cache/

查看samba的用户

sudo pdbedit -L

增加一个用户到samba

sudo pdbedit -a username

从samba账户中删除一个用户

sudo pdbedit -x username

显示samba账户信息

sudo pdbedit -r username

测试samba账户是否正常

smbclient -L 192.168.1.1 -U username -d 3

samba的数据库存在哪里

/var/lib/samba/passdb.tdb

samba用户Windows下无法登录

在Windows的运行输入 cmd ,进入终端,输入 net use 命令,将显示已经连接的帐号如 \\192.168.1.1\username

再输入 net use \\192.168.1.1\username /delete 删除现有的共享连接,再尝试进入另外一个目录就可以正常登录了。

Pidgin 的聊天记录在哪里

~/.purple/logs/

安装PDF打印机

sudo apt-get install cups-pdf

#打印生成的pdf文件在 ~/PDF 文件夹里面

nvidia快速重设显示设置及配置多显示器

sudo dpkg-reconfigure xserver-xorg

sudo nvidia-xconfig

#nvidia-settings 用于设置分辨率和多显示器

sudo nvidia-settings

kacpid进程大量占用CPU

硬件驱动中不要激活无线网卡驱动即可

替换上一条命令中的一个短语

^foo^bar^

!!:s/foo/bar/

AMD64位系统安装免费的杀毒软件 avast!

wget /files/linux/avast4workstation_1.3.0-2_i386.deb sudo dpkg --force-architecture -i avast4workstation_1.3.0-2_i386.deb sudo apt-get install ia32-libs

#然后打开 去申请免费一年的许可证号

更多相关推荐:
ubuntu查看系统资源占用

linux真是太强大了查看ubuntu的资源占用的命令为toptop命令就可以查看内存cpu和进程了很方便top主要参数d指定更新的间隔以秒计算q没有任何延迟的更新如果使用者有超级用户则top命令将会以最高的优...

linux下tomcat优化,设置最大连接数,内存,Jconsole监控

linux下tomcat优化设置最大连接数内存Jconsole监控分类Tomcat20xx08011731551人阅读评论0收藏举报tomcatlinux优化javastatisticsjmx1添加tomcat...

通过jconsole查看tomcat运行情况的配置方法—基于JDK6.0、Linux(Redhat5.5)、Tomcat7

通过jconsole查看tomcat运行情况的配置方法基于JDK60LinuxRedhat55Tomcat7由于项目的原因需要使用jconsole对tomcat进行远程监控结合网上的资料对配置方法进行了总结第一...

通过jconsole查看tomcat运行情况的配置方法——基于JDK1.5、Linux(Redhat5.5)、Tomcat6

通过jconsole查看tomcat运行情况的配置方法基于JDK15LinuxRedhat55Tomcat6由于项目的原因需要使用jconsole对tomcat进行远程监控结合网上的资料对配置方法进行了总结第一...

linux下apache_tomcat整合

liunx下apachetomcat整合1准备下载需要的文件这里假定你已经正确安装配置好了JDK到Apache官方网站下载所需要的文件httpd220targzapachetomcat5512targzjaka...

linux_apache+tomcat负载均衡安装和调试

一操作系统1二所需软件1三安装步骤21安装jdk22安装apache23安装tomcat34安装modjk模块4四利用modjk关联apache和tomcat51修改apache的httpdconf配置文件52...

超全面的redhat linux安装apache+tomcat+jdk+php+jsp+mysql

附1查看系统多少位unamea我的显示如下Linuxlocalhostlocaldomain2618164el51SMPTueAug18155148EDT20xxx8664x8664x8664GNULinux只...

linux下tomcat+apache集群配置说明

版本履历Apache2modjktomcat集群配置说明1两个应用服务器每个8G内存则每台部署两个tomcat一共4个tomcat构成集群每个tomcat分配3G内存发布时对一台机器的tomcat1进行更新更新...

linux环境下通过nginx实现tomcat集群

linux环境下通过nginx实现tomcat集群安装nginx之前需要pcre依赖和jvmremote补丁一准备如下软件1nginx112targz负载均衡反向代理服务器可通过httpnginxorgendo...

linux下查看进程的完整路径

linux下查看进程的完整路径当我们查看系统正在运行的进程时有时候我们想查看以下进程的详细信息包括绝对路径这个时候ps的不足指出就显露出来了而强大的top也只能查看到进程名而已这个时候怎么办呢个人理解在linu...

佛山双线服务器Linux下查看端口占用进程号

佛山双线服务器Linux下查看端口占用进程号程序名的方法佛山双线服务器Linux下查看端口占用进程号程序名的方法方便我们查找什么进程导致系统变慢等需要东莞市博扬网络技术有限公司总结linux下查看端口占用情况1...

linux系统下查看硬件参数

dmidecodegrepquotProductNamequot查看服务器品牌smartctladevhda硬盘LINUX查看硬件配置命令Submittedbybizmanon20xxMarch291136AM...

ubuntu 查看端口号(2篇)