1. some cmds
7za
(^ 压缩和解压缩 *.7z 文件 ^)
alsamixer -c0
(^ 打开声音控制器 ^)
apropos keyword
(^ 如果你想实现某种功能, 但是不知道该使用什么命令, 你可以试试apropos命令 ^)
arch
(^ 返回机器的类型 ^)
ar ruv libcii.a f1.o f2.o f3.o
(^ 创建静态库 ^)
awk: f=2; echo $f; echo ”
ab oa fo
” | awk ‘
{ print $
‘$f’
}
‘
(^ 在awk的print选项中使用shell变量 ^)
awk ‘
/ppp/ {print $1}
‘
(^ 表示得到ppp的进程id. ^)
bc: echo ”
ibase=16; C
” | bc
(^ ibase: 输入数的进制; 把C转换成十进制的(C必须是大写的) ^)
bc: echo ”
obase=2; 8
” | bc
(^ obase: 输出数的进制; 把8转换成二进制的 ^)
bc: echo ”
scale=4; sqrt(3)
” | bc
(^ 求平方根 ^)
bc: echo ”
scale=9; 332/100.0
” | bc
(^ 把求332/100.0, 保留9位小数 ^)
bc: echo ”
scale=9; s(1.7)
” | bc -l
(^ 求弧度为1.7的正弦s(), -l: 调用bc的算术库; 还有sqrt()等 ^)
bzcat filename.bz2
(^ 查看压缩文件内容 ^)
bzip2 -v -d minix_R3.1.5-r5612.iso.bz2
(^ 解压! ^)
bzip2 -z filename
(^ 压缩,加[-d]解压 ^)
cat file | xargs -n1
(^ 每行显示一个单词 ^)
cat -n
(^ 在文件的每一行加上行号, 另见nl ^)
cat -s
(^ 只保留多个相邻空行的第一行 ^)
cdrecord -v -isosize speed=2 dev=cdrom in.iso
(^ 把in.iso刻录到光盘中 ^)
cd –
(^ 可进入上一次进入的目录 ^)
change -l longinname
(^ 查看密码过期信息 ^)
chattr
(^ 命令修改 ^)
chgrp
(^ 改变档案群组 ^)
chkconfig –level 345 iptables on
(^ 设置iptables在level:345下默认是自动启动的 ^)
chkconfig –list | grep telnet
(^ 查看telnet是否已启动 ^)
chkconfig rsync on
(^ 所有服务通过init启动有些是通过xinetd服务启动的, 如rsync启动rsync ^)
chkconfig
(^ 检查某个服务状态, 包括各个级别0~6的状态 ^)
chmod 1770 xxx
(^ 设置粘着位(Sticky bit) ^)
chmod -R 444 *
(^ 改变所有子目录及文件的属性 ^)
chmod u+s /usr/bin/mentohust
cmp -s
(^ 若两文件相同,则返回0,否则返回1. ^)
cmp
(^ 比较2个文件 ^)
column: cat data_file | column -t
(^ 把data_file按表格形式输出 ^)
compress filename
(^ 压缩文件,加[-d]解压:uncompress ^)
convert -delay 0 *.bmp -loop 0 animated.gif
(^ 把当前目录下的所有bmp文件合成一个gif图片动画, 每帧间隔0ms, 重复播放 ^)
convert filename.bmp filename.jpg
(^ bmp转jpg ^)
cpio -covB > [
file|device
]
(^ 份份 ^)
cpio: find src_dir -depth | cpio -admvp des_dir
(^ 把目录树src_dir复制到des_dir ^)
cpio -icduv < [
file|device
]
(^ 还原 ^)
cpio –make-directories -F in.cpio -i
(^ 解包cpio归档文件; -i:解包 ^)
Ctrl+Alt+BackSpace
(^ 强行退出X ^)
Ctrl+Alt+Del
(^ 重新启动 ^)
date -d ”
2004/06/04 20:30:00
” +%s
(^ 把指定的时间转换为秒数 ^)
date +%j
(^ 今天是今年的第几天? ^)
date +%s
(^ The number of seconds elapsed since 01/01/1970 ^)
date ”
+%Y-%m-%d %H:%M:%S %w
”
(^ 输出为: 2012-04-30 11:42:53 1 ^)
date +%Y-%m-%d.%S
(^ 输出为: 2010-05-31.44 ^)
dc: echo ”
11 16 o p
” | dc
(^ o: 设置输出的基数(数制), p: 打印栈顶 ^)
dc: echo ”
11 16 o p
” | dc
(^ 把11转换为16进制的(dc可以转换任意进制) ^)
dc: echo ”
111[p]s2[lip/dli%0=1dvsr]s12sid2%0=13sidvsr[dli%0=1lrli2+dsi!>.]ds.xd1<2
” | dc
(^ 求111的约数 ^)
dd: echo -n ”
hello world
” | dd cbs=2 conv=unblock 2> /dev/null
(^ conv=unblock: 每输出cbs个字符就换行一次 ^)
dd if=/dev/urandom of=$file bs=$BLOCKSIZE count=$flength
(^ 带有 /dev/urandom 的 I/O 必须要有单位块尺寸 ^)
dd if=/dev/zero of=disk.img count=1024 bs=1024KB
(^ 将zero写入自定义的disk.img文件1024次, 每次写入1024Kb; 也就是创建一个1GB的文件, 用zero文件进行填充. ^)
dd if=file.in conv=ucase of=file.out 2>/dev/null
(^ 拷贝file.in, 并转为大写 ^)
dd if=$filename conv=lcase > $filename.lppercase
(^ 将一个文件转换为小写 ^)
dd if=$input_file of=$output_file bs=1 skip=$
((n-1)
) count=$
((p-n+1)
) 2> /dev/null
(^ 把位置n到p的字符提取出来 ^)
dd: keys=$
(dd bs=1 count=$keypresses 2> /dev/null)
(^ 记录所下按的键于keys中 ^)
Debugfs
(^ QQQQQ
http://en.wikipedia.org/wiki/Debugfs
^)
deplate -m utf8 hello.viki
(^ 编译含有中文的viki文件 ^)
deplate -m zh-cn-autospace hello.viki
diff -urN linux/ my_linux/ >mypatch.diff
diff
(^ 比较2个文件 ^)
dmesg
(^ 显示开机自检的内容命令 ^)
dos2unix -k -n hosts.dos hosts.linux
(^ 转换为unix格式 ^)
du -sh -X ./exclude.list
(^ 不计算…中匹配的文件.(*.zip …) ^)
echo -n ”
fff
”
(^ -n: 不换行 ^)
echo | tr ‘\012’
‘\001’
(^ 产生 Ctrl+A ^)
edquota -u redhat
(^ 进VI编缉用户配额编缉用户可用的字节数, 软性的, 硬性的, 文件数, 软件性的, 硬性的 ^)
egrep -o ”
^[[:digit:]]+
” /var/run/ntpd.pid
(^ 从 /var/run/ntpd.pid 文件中读取出进程PID. -o: 只输出匹配内容而不是整行 ^)
eject -t
(^ 收回 ^)
eject
(^ 弹出光盘 ^)
/etc/init.d/network restart
(^ 重起网卡 ^)
/etc/rc.d/init.d/httpd start
(^ 启动https ^)
eval ”
cat $file
”
(^ 执行””里的命令 ^)
fc n
(^ n: 历史命令的序号,这将打开一个编辑窗口,修改这条命令,以满足需要.当退出时,该命令就会执行 ^)
file filename
(^ 显示文件的类型及格式等 ^)
file libc-2.10.2.so
(^ 确认文件系统要求的最低内核 ^)
find / -amin -10
(^ 查找在系统中最后10分钟访问的文件 ^)
find / -atime -2
(^ 查找在系统中最后48小时访问的文件 ^)
find -depth
(^ 先查找出目录下的文件, 后是目录本身(深度优先) ^)
find / -empty
(^ 查找在系统中为空的文件或者文件夹 ^)
find . -exec chown scr:scr {} \;
(^ 改变当前目录下的所有子目录包括文件的属主 ^)
find -fprint0 file
(^ 打印文件完整文件名包括空的文件 ^)
find -fprintf file
(^ format打印文件格式 ^)
find -fprint file
(^ 打印文件完整文件名 ^)
find . | grep svn | xargs rm -r
(^ 删除当前目录下的路径名含有”svn”的文件或目录 ^)
find / -group cat
(^ 查找在系统中属于groupcat的文件 ^)
find . -iname ”
*abcd*
”
(^ 不区分大小写 ^)
find -ls
(^ 打印同种文件格式的文件. ^)
find . -maxdepth 2 -name fred
(^ 查找目录的最大深度为2 ^)
find / -mmin -5
(^ 查找在系统中最后5分钟里修改过的文件 ^)
find /mnt/cdrom -name *.mp3 -print > cd.play.list
(^ 快速建立MP3播放列表,然后使用xmms或x11amp就能进行播放了 ^)
find / -mtime -1
(^ 查找在系统中最后24小时里修改过的文件 ^)
find . -name ”
* *
” -exec rm -f {} \;
(^ 删除文件名中以任何方式包含空白的文件 ^)
find / -name ”
httpd.conf
” -ls
(^ 查找到httpd.conf文件后立即在屏幕上显示httpd.conf文件信息 ^)
find . -name ‘*[+{
;”\\=?~()<>&*|$ ]*’ //
}
(^ 查找文件名中包含有 + { ; ” \ = ? ~ ( ) < > & * | $ space 这些字符的文件 ^)
find / -nouser
(^ 查找在系统中属于作废用户的文件 ^)
find -ok command;
(^ 给用户命令执行操作, 根据用户的Y确认输入执行 ^)
find -printf format
(^ 打印文件格式 ^)
find /tmp -size +10000000c -and -mtime +2
(^ 在/tmp目录中查找大于100000000字节并且在48小时内修改的某个文件 ^)
find /tmp ! -user panda
(^ 在/tmp目录中查找所有不属于panda的文件 ^)
find . -type d -exec chmod 755 {} \;
find . -type f -a \
( -name *.txt -o -name install \)
(^ -a 和 -o 参数的使用 ^)
find . -type f -exec chmod 644 {} \;
find . -type f -exec grep ”
the string you want find…
(^ 查找含特定字符串的文件 ^)
find . -type f -exec gvim –servername GVIM –remote-tab {} \;
(^ 用gvim打开find找到的第一个文件 ^)
find . -type f -exec gvim –servername GVIM –remote-tab {} +
(^ 用gvim打开find找到的所有文件于不同的标签页 ^)
find . -type f -exec vim {} \;
(^ 用vim打开find的结果, 但每次只打开一个文件 ^)
find . -type f -exec vim {} +
(^ 用vim打开find的结果, 若有多个文件则放入buffer中 ^)
find . -type f -name *.vim |xargs cat | wc -l
(^ 统计当前目录下所有.vim文件的行数 ^)
find . -type f | xargs chmod -x
find . -type f | xargs grep ‘
?????
‘
find . -type f | xargs grep ‘
NAL
‘
(^ 查找有NAL内容的文件 ^)
find -type l -exec ls -l –color {} \;
(^ 查找当前目录下的所有软连接 ^)
find / -user fred -or -user george
find / -user user-id
(^ 查找在系统中属于FRED这个用户的文件 ^)
finger -l root
finger
(^ 查看当前所有登录用户所使用的终端 ^)
fmt: echo file | fmt -w 80
(^ fmt -w 80 输出设为80列宽; 等价于: fold – -s -w ^)
fold: fold – -s -w
(^ 见fmt ^)
for a in
`seq 80`
// 与 ” for a in 1 2 3 4 5 … 80 “相同 (少敲了好多字!). (12_49)
free
(^ 查看内存使用情况 ^)
fsck.ext3 /dev/sdb1
(^ 检查文件系统数据完整性的工具 ^)
fsck.ext3 -y /dev/sdb1
(^ 自动修复错误 ^)
fsck -t ext2 /dev/sdb1
(^ 检查文件系统数据完整性的工具 ^)
fuser 23/tcp
(^ 同: fuser -n tcp 23 ^)
fuser -l
(^ 列出所有的signal的对应的名称 ^)
fuser -m /mnt/share
(^ -m: 根据挂载目录找出挂载进程的PID ^)
fuser -n tcp 23
(^ 查看端口号为23的tcp连接的进程ID号 ^)
fuser telnet/tcp
(^ 同: fuser -n tcp 23 ^)
fuser -un tcp 23
(^ -u: 同时显示其用户名 ^)
getconf PAGESIZE
(^ 查看一block的大小 ^)
git branch -d hotfix
(^ 删除分支 ^)
git checkout -b branch1
(^ 新建并切换到该分支 ^)
git checkout c59d73e4e12ffcccdaa9a0f8ca86ab5ad1cd91b3 — README
(^ 恢复之前删除的文件: README, 前提是 README 在版本c59…b3时没被删除 ^)
git checkout master
(^ 切换到 master 分支 ^)
git checkout –track -b foo origin/foo
(^ 有个远程分支是foo, 在本地checkout它 ^)
git config –global core.editor emacs
git config –global user.email
johndoe@example.com
git config –global user.name ”
John Doe
”
(^ “–global”参数使得保存在 ~/.gitconfig ^)
git config –list
(^ 要检查已有的配置信息 ^)
git config –system user.name ”
John Doe
”
(^ “–system”参数使得保存在 /etc/gitconfig ^)
git config user.name ”
John Doe
”
(^ “–global”参数使得保存在工作目录: .git/config ^)
git diff 1c09 94da
(^ 比较两个版本的差异 ^)
git log –stat | sed ‘
1,3d
‘ | sed ‘
/Author: /q
‘ | sed ‘
$d
‘ | sed ‘
$d
‘
(^ 只输出最近一次提交的历史 ^)
git reset –hard HEAD~1
(^ 取消最后一次提交 ^)
git status
(^ 检查当前文件状态 ^)
gnome-screenshot -a
(^ 屏幕抓图 ^)
gnome-terminal –geometry=130×38
(^ 启动终端的尺寸大小 ^)
gnome-terminal –help
(^ ^)
grep -A1 -B1 regexp flie
(^ 打印匹配regexp的行和前后各一行 ^)
grep -Fw
(^ 固定字符串; 整个单词 ^)
grep i ”
name
”
(^ 不区分大小写 ^)
grep ‘
.
‘
(^ 删除文件中的所有空行 ^)
gvim -U NONE
(^ 启动gvim时, 跳过任何启动初始化脚本 ^)
gzexe gawk
(^ 可以使用gzexe压缩可执行文件, 压缩后的可执行文件仍然可以直接执行 ^)
gzip filename
(^ 压缩,加[-d]解压 ^)
head -1 /proc/asound/card0/codec#0
(^ 确认你的声卡型号 ^)
head -c4 /dev/urandom | od -N4 -tu4 | sed -ne ‘
1s/.* //p
‘
(^ 产生10个随机数 ^)
history -c
(^ 清除所有的命令历史 ^)
hostname
idesk
(^ QQQQQ
http://idesk.sourceforge.net/
^)
id
(^ 显示用户(组)ID ^)
ifconfig eth0 down
(^ 关闭网卡设备 ^)
ifconfig eth0 hw ether 00:1E:90:13:e0:25
ifconfig eth0 hw ether 00:1E:90:13:e0:7E
(^ 修改mac地址. 修改前须: service network stop ^)
ifconfig eth0 hw ether MAC地址
(^ 修改MAC地址 ^)
ifconfig eth0 新ip
(^ 永久更改ip ^)
info tcsh -o tcsh.txt -s
(^ 把info的信息存为文本文件 ^)
init 1
(^ 进入单用户环境 ^)
init 6
(^ 重新启动 ^)
kill -2 7873
(^ 给进程7873发送SIGINT信号 ^)
kudzu
(^ 用来检测硬件 ^)
lastb
(^ 显示最后一个登录不成功的登录尝试 ^)
last
(^ 显示最后一个登录到系统的用户 ^)
last
(^ 显示最近登陆到系统的用户与其相关信息 ^)
lde-i386
(^ 磁盘读写工具
http://lde.sourceforge.net/
^)
ln: rm dir
(^ 删除目录软链接时, 后面不能带”/”; 即: rm dir/ 是错的!!! ^)
locale -a
(^ 查看系统对语言的支持情况, 看已经安装的字符集 ^)
locale
(^ 显示系统语言环境 ^)
locate filename
(^ 快速查找文件,要经常用updatedb命令更新数据库,可以在crontab中定时设置 ^)
logger -f /var/log/myapp.log
(^ 把/var/log/myapp.log文件中的信息记录到syslog中 ^)
logger -s ”
Hard disk full
”
(^ 把消息发送到屏幕(标准错误) ^)
logger System rebooted
(^ 向syslog的系统日志文件写入一行信息:”System rebooted” ^)
logger -t full -s ”
Hard disk full
”
(^ -t: 设置tag为full ^)
log: tail -f /var/log/messages
(^ 察看实时的日志 ^)
look word
(^ 检查列表中单词word的正确性 ^)
lsattr
(^ 命令列出文件属性 ^)
ls -i
ls -l –block-size=1
(^ 以字节显示文件大小 ^)
ls -l -c
(^ 显示 ctime: last-time of i-node status, (chmod, chown) ^)
ls -lRF
(^ “F” 选项将标记出文件类型 <比如: 目录是以 /结尾, 而可执行文件以 *结尾> ^)
ls -l –time-style=long-iso
ls -l -u
(^ 显示 atime: last-access time of file data, (read) ^)
ls -l
(^ 显示 mtime: last-modification time of file data, (write) ^)
lsmod |grep mii
(^ 查看内核是否已加载了网卡模块 ^)
lsof -i :22
(^ 查出22端口现在运行什么程序 ^)
lspci | grep Audio
(^ 查看声卡信息 ^)
lspci | grep net
(^ 查看网卡信息 ^)
lspci -n | grep 14e4
(^ find the Device ID’s of Broadcom cards ^)
lspci
(^ 查看物理信息, /proc/cpuinfo (cpu信息) ^)
ls . | xargs -i -t cp ./{} dir
(^ 把当前目录下的文件拷贝到dir目录中; -i 是”替换字符串”选项.^)
mail -s
(^ -s: subject ^)
man ls | col -b > ls.txt
(^ 把man的信息存为文本文件 ^)
mcookie
(^ 产生126字节的随机16进制值(magic cookie) ^)
mencoder -ovc lavc basket.rm -oac mp3lame -o basket.avi
(^ *.rm 转为 *.avi ^)
mesg n
(^ 禁止别人把信息显示在我的终端 ^)
mesg y
(^ 允许别人把信息显示在我的终端 ^)
mkfs.ext2 /dev/sdb4
(^ 格式化成ext2 ^)
mkfs.ext2 -N 5000000 -b 1024 -I 128 disk.img
(^ 格式化成ext2分区,制定inode大小为128byte,inode数量为5000000,块大小为1024byte ^)
mkfs.ext3 -b 4096 -i 8192 -m 5 /dev/sdb4
(^ -b 数据块大小,-i inode 节点表示的字节数或数据块大小,-m 5 为管理员保留的磁盘空间 5% ^)
mkfs.ext3 -m 3 -L LA /dev/sdb2
(^ 为超级用户保留3%, label为”LA” ^)
mkisofs -r -o out.iso /opt
(^ 把opt目录下文件<包括子目录>制作成一个iso文件 ^)
modprobe -l
(^ 列出系统内核所有可用的模块 ^)
modprobeusb -storage
(^ 检查usb-storage模块是否已加载, 否则无法自动识别USB设备 ^) (^ ????? ^)
mogrify -format jpg *.bmp
(^ bmp转jpg ^)
mogrify -resize 640×480 *.jpg
(^ 把图片放缩为640×480 ^)
mount.cifs
//192.168.0.22/linux /mnt -o username=redhat%redhat (^ 将共享目录挂载到本地目录, 然后再访问 ^)
mount /dev/fd0 /mnt/floppy
(^ 软盘 ^)
mount /dev/sda1 /mnt/cdrom
(^ USB闪存 ^)
mount /dev/sdb2 /mmt/d -o iocharset=utf8,ro,uid=redhat,umask=0077
(^ 常用字符编码有gb2312和utf8 ^)
mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom
(^ FAT32的分区 ^)
mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom
(^ NTFS的分区 ^)
mount -o loop /abc.iso /mnt/cdrom
(^ ISO文件 ^)
mount -o usrquota,grpquota /dev/sdb1 /mnt/d1 或 mount -o emount,usrquota,grpquota /
(^ 使用磁盘配额,默认系统内核已支持quota ^)
mount -t iso9660 /dev/cdrom /mnt/cdrom
mount -t iso9660 /dev/dvd /mnt/cdrom或mount -t udf /dev/dvd /mnt/cdrom
(^ 访问DVD ^)
mount -t iso9660 xxxxx.iso /any/path/if/u/like -o loop
(^ 使用.iso文件 ^)
mount -t ntfs /dev/hda3 /mnt/d
(^ 需重新编译内核才能支持NTFS ^)
mount -t vfat /dev/hda2 /mnt/c
mount -t vfat -o iocharset=gb2312 /dev/sdb1 /mnt/u
mpg123 –title -C -Z *
(^ 随机播放当前目录的音频文件(永远不会结束) ^)
mpg123 –title -C *
(^ 顺序播放当前目录的音频文件 ^)
nasm -hf
(^ 查看nasm默认下生成的是什么格式的文件 ^)
native2ascii
(^ 把非ASCII字符转换成对应的16进制值 ^)
netstat -atnlp | grep qq
(^ -p : 显示PID ^)
netstat -atuln | grep ‘
:80
‘
(^ -a: all, t: tcp, u: udp, n: 用显示数字, l: listening ^)
netstat -lpn|grep :53 | awk ‘
{print $5}
‘| sort
netstat -tuln | grep ‘
:80
‘
(^ 查看系统是否己启动某一端口号 ^)
nl filename
(^ 在文件的每一行加上行号, 不统计空行 ^)
nmblookup my-server
(^ 查询服务器的IP ^)
nmblookup \*
(^ 查询所有活动的主机的IP ^)
nm
(^ 从a.out格式文件中读取可读字符串(函数等) ^)
nohup tar -cf /dev/tape /home &
(^ 进程在退出系统后还能执行 ^)
ntsysv
(^ 打开服务管理器, 与chkconfig相似 ^)
ntsysv
(^ 为setup的子命令 ^)
od: head -1 /dev/urandom | od -N 1 | awk ‘
{ print $2 }
‘
(^ 产生1个随机数 ^)
od: head -c4 /dev/urandom | od -N4 -tu4 | sed -ne ‘
1s/.* //p
‘
(^ 产生10个一位数的随机数 ^)
od -N4 -tu4
(^ -N4 选项将限制输出为4个字节; -tu4 选项将使用无符号10进制格式来输出. ^)
paste file1 file2
(^ 将file1和file2行号相同的行连接成一行 ^)
pidof program-name
(^ 查找program-name的pid; 如果有多个相同的program同时运行, 则返回所有的pid ^)
pidof vsftpd
(^ 根据进程名显示进程号 ^)
popd n
(^ 转到dir栈中第n个目录 ^)
printf ”
%02d. %s\n
” $nr ${
line#*/
}
(^ 格式化输出 ^)
printk: echo ”
8
” > /proc/sys/kernel/printk
(^ 改变控制台的消息级别(可从1到8) ^)
ps -ef |grep java |grep -v grep |awk ‘
{print $2}
‘ |xargs kill -9
(^ 如何批量杀掉进程 ^)
pstree
(^ 以树状图显示程序 ^)
pushd dir
(^ 把dir压入栈中 ^)
quotacheck -cvuga 或 quotacheck -cvag
(^ /dev/sdb1 ^)
quotaoff /mnt/sdb1
(^ 关闭磁盘配额 ^)
quotaon -a
(^ 激活 ^)
quotaon /mnt/sdb1
(^ 开启 ^)
quota -t
(^ 配置过期时间 ^)
quota -u redhat
ranlib libtttt.a
(^ 对libtttt.a生成索引, 好处是使得其里边的函数可以相互调用, 而不管它们所处的位置 ^)
rdate -s ntp2.uk.uu.net
(^ 与ntp2.uk.uu.net同步时间 ^)
rename ‘
y/A-Z/a-z/
‘ *
(^ 批量重命名, 并转化为小写 ^)
rev file.name
(^ 将内容倒序读出 ^)
rev file
(^ 将行中的字符逆序, 第一个字成为最后一字 ^)
rm ”
-file
”
(^ 处理文件名内含有特殊字符的文件 ^)
rm \-file
(^ 处理文件名内含有特殊字符的文件 ^)
rm — -file
(^ 处理文件名内含有特殊字符的文件 ^)
route add default gw 网关的IP
(^ 手动添加默认网关 ^)
rpm2cpio <
in.rpm
> out.cpio
(^ 将rpm归档文件转换为cpio归档文件 ^)
rpm –import /etc/pki/rpm-gpg/*
(^ */ 导入FedoraGPG秘匙 ^)
rpm -ivh –aid samba*.rpm
(^ 装了rpmdb才有效 ^)
rpm -ivh cups-libs*.rpm
rpm -ivh rpmdb-fedora*.rpm
rpm -ivh samba*.rpm
rpm -qa | grep samba
(^ 查看所有软件包列表 ^)
rpm -q curl libcurl yum
(^ 查看yum的相关包及其对应的版本信息 ^)
rpm -qf cmd
(^ 查看程序cmd所在的软件包(rpm包) ^)
rpm -q kernel-devel
(^ 查看kernel-devel是否已安装 ^)
rpm -ql samba | more
(^ 查讯某个软件列表 ^)
rsync
(^ a fast, versatile, remote (and local) file-copying tool. # -r: 递归下载 # -t: 保存时间 # -v: verbose ^)
runlevel
(^ 查看当前系统的运行级别 ^)
samba: netstat -au | grep netbios
(^ 查看nmb是否启动成功 ^)
samba: service smb start
(^ 启动samba服务器 ^)
samba: smbclient
//10.3.1.4/lcy-share -U lcy (^ 登陆samba服务器, lcy为用户名 ^)
samba: smbclient -L 192.168.138.110 -N
(^ 查看机器上共享了什么, 并查找出局域网内的其它有共享服务的机器 ^)
samba: smbstatus
(^ 查看状态 ^)
samba: smbtree
(^ 查看局域网中的所有共享服务 ^)
samba: testparm
(^ 用于测试samba的配置文件 /etc/samba/smb.conf 语法是否正确 ^)
/sbin/ifconfig eth0 up
(^ 重启网卡 ^)
script file
(^ 把当前终端的输入输出自动保存到文件 file 中. ^)
sed ‘
1d
‘ filename
(^ 删除第一行 ^)
sed ‘
$d
‘ | sed ‘
$d
‘ filename
(^ 删除最后两行 ^)
sed ‘
/^$/d
‘
(^ 删除文件中的所有空行(与”grep ‘.’ “效果相同) ^)
sed ‘
/./!d
‘
(^ 删除文件中的所有空行(与”grep ‘.’ “效果相同) ^)
sed ‘
/./,/^$/!d
‘
(^ 只保留多个相邻空行的第一行,并删除文件顶部的空行(模拟”cat -s”) ^)
sed: echo $CLASSPATH | sed ‘s/:/\n/g’ | sort
(^ java 类路径 ^)
sed: echo ”
fae
” | sed -e ‘
s:^0[bBxX]::
‘ | tr ‘
[a-f]
‘ ‘
[A-F]
‘
(^ 把fae转换成大写 ^)
sed -e ‘s/\.
//g’ -e ‘s/\,//g’ -e ‘s/ /\ /g’ (^ 过滤掉句号和逗号, 并且将单词间的空格修改为换行 ^)
sed: find . | sed -e ”
s/^.//
”
(^ 把每一行的第一个字符删除 ^)
sed: head -c4 /dev/urandom | od -N4 -tu4 | sed -ne ‘
1s/.* //p
‘
(^ 产生10个随机数 ^)
sed -n ‘
/^[A-Z]/p
‘
(^ 匹配大写字母开头的行 ^)
sed ‘$!N; /^\
(.*\)
\n\1$/!P; D’
(^ 删除文件中相邻的重复行,只保留重复行中的第一行(模拟”uniq”) ^)
sed ‘/^$/N;/\n$/D’
(^ 只保留多个相邻空行的第一行(模拟”cat -s”) ^)
sed -n /”
pattern
“/p file
(^ 在file文件中查找匹配pattern的行 ^)
sed ‘
N;$!P;$!D;$d
‘ filename
(^ 删除最后两行 ^)
sed -n /[\+\{
\
}\;\”
\
“\\\=\?~\
(\)
\<
\
>\&\*\|\$ ]/p
(^ 等价于:sed -n ‘/[+{};”\=?~()<>&*|$ ]/p’; -n表示只输出符合条件的 ^)
sed -n ‘/[+{};”
\
“\=?~()<>&*|$ ]/p’
(^ 和find结合使用: find . | sed -n
‘/[+{};”
\=?~()<>&*|$ ]/p’ ^)
sed ‘$!N; s/^\(.*\)\n\1$/\1/; t; D’ (^ 删除除重复行外的所有行(模拟
“uniq -d”) ^)
sed ‘$!N;s/\n/ /’ file
(^ 将每两行连接成一行 ^)
sed ”
s/\r//
” infile >outfile
(^ 把win格式的换行符换为unix格式的 ^)
selinux: setenforce 0
(^ 关闭SElinux, 要彻底禁用SELinux,需要在 /etc/sysconfig/selinux 中设置参数 selinux=0, 或者在 /etc/grub.conf 中添加这个参数 ^)
selinux: setenforce 1
(^ 打开SElinux ^)
seq 1 8
// 与 ” 打印: 1 2 3 4 5 … 8 “相同
service kudzu start
(^ 重新检测硬件, 让系统自动识别新 ^)
services: cat /etc/services | grep telnet
(^ 查看telnet的端口号 ^)
service –status-all
(^ 查看系统中各个服务的当前状态 ^)
service xinetd restart
(^ 重起xinetd ^)
setleds
(^ 开机修改各个键盘灯的状态 ^)
setterm -blank 0
(^ 不让显示器休眠 ^)
shred
(^ 安全的删除一个文件 ^)
shutdown -r now
(^ 重新启动 ^)
skill -KILL -v pts/2
(^ 注消终端用户: pts/2 ^)
smbclient
//192.168.0.22/linux -U redhat%redhat
smbclient
//host/share
smbclient -L 192.168.0.22 -U redhat%redhat
(^ 以redhat用户登录并显示共享目录 ^)
smbtar -s win2000 -u redhat -p redhat -x chinalab -t itlab.tar
(^ 远程备份网上邻居中的文件 ^)
sort list.txt
(^ 对list.txt中的每一行进行排序 ^)
sort -nr
(^ 按数字返序排序 ^)
sort: sed ‘
1d
‘ file | sort -t\> +0 -1 -u
(^ 对文件file中除了第一行外的所有行进行按第一个字段排序, 字段以”<“分隔, 并只输出唯一行 ^)
sort -u list.txt
(^ 对list.txt中的每一行进行排序, 且对于重复行只输出一次 ^)
sort | uniq -c | sort -nr
(^ 最后统计出现次数,把数字显示在第一列,然后显示单词,并按数字排序 ^)
str: file=/home/scr/book/TCP-IP_I1/bin/tdtraceroute.sh; echo ${
file%/*
}
(^ 只取路径名: /home/scr/book/TCP-IP_I1/bin ^)
str: file=/home/scr/book/TCP-IP_I1/bin/tdtraceroute.sh; echo ${
file##*/
}
(^ 只取文件名: tdtraceroute.sh ^)
strings file
(^ 把file中所有可打印的字符打印出来 ^)
stty echo
(^ 打开回显功能 ^)
stty -echo
(^ 关闭回显功能 ^)
stty: old_tty_setting=$
(stty -g)
(^ 保存终端设置; stty “$old_tty_setting”: 恢复终端设置 ^)
stty ”
$old_tty_setting
”
(^ 恢复老的终端设置 ^)
sudo -b
(^ command Background 在后台执行指定的命令. ^)
sudo -e
(^ file Edit 不是执行命令, 而是修改文件, 相当于命令sudoedit. ^)
sudo -h
(^ Help 列出使用方法, 退出. ^)
sudo -k
(^ Kill 清除”入场卷”上的时间, 下次再使用sudo时要再输入密码. ^)
sudo -K
(^ Sure kill 与-k类似, 但是它还要撕毁”入场卷”, 也就是删除时间戳文件. ^)
sudo -l
(^ List 列出当前用户可以执行的命令. 只有在sudoers里的用户才能使用该选项. ^)
sudo -p
(^ prompt command Prompt 可以更改询问密码的提示语, 其中%u会代换为使用者帐号名称, %h会显示主机名称 ^)
sudo -u
(^ username|#uid User 以指定用户的身份执行命令. 后面的用户是除root以外的, 可以是用户名, 也可以是#uid. ^)
sudo -V
(^ Version 显示版本信息, 并退出. ^)
sync
(^ 刷新buffer. ^)
sysctl -p
(^ 使得内核改变立即生效; ^)
tail -f /var/log/messages
(^ -f: 流动模式查看(即: 当文件有变动时, tail也相应的显被更新 ^)
tar cjvf bin.tar.bz2 bin/*
//*/ (^ 把bin目录下文件<包括子目录>打包并压缩为文件:bin.tar.bz2 ^)
tar -cvf /home/123.tar /etc
(^ 打包,不压缩 ^)
tar -jxvf /home/123.tar.bz2
(^ 以bzip2解压 ^)
tar tvf lab.tar
(^ 显示备份包里的文件 ^)
tar -xvf 123.tar
(^ 解开包 ^)
tar xvzf file.tar.Z
(^ 解压*.tar.Z文件 ^)
tar xvzf vjde.tgz -C tdir
(^ -C : 解压到目录 tdir 下! ^)
tar zcf vimgdb_runtime.tgz doc macros syntax
(^ 压缩打包 ^)
tar -ztvf /tmp/etc.tar.gz
(^ 查看tar内容 ^)
tar zxf vimgdb_runtime.tgz -C /usr/lo
(^ 解压到/usr/lo下 ^)
tar -zxvf /home/123.tar.gz
(^ 以gzip解压 ^)
tar zxvf xxxx.tar.gz
(^ 解压*.tar.gz文件 ^)
tr a-z A-Z <
filename (^ 转换为大写 ^)
tr: cat cs.BAK | tr -d “^V^M”
> cs
(^ 把win格式的换行符换为unix格式的, 用dos2unix比较好 ^)
tr: cat file | tr a-z n-za-m
(^ 把file文件中的a转换为n, b转换为o, … ^)
tr: cat file | tr -cd a
(^ 输出file中为a的字符a. -c: 输出匹配的, -d: 若没-c则输出的非匹配的 ^)
tr -cs ‘
[:alpha:]
‘ Z
(^ 将非字母表字符转换为多个 Z, -s:然后去除多个连续的 Z. ^)
tr -d \r <
infile
>outfile
(^ 把win格式的换行符换为unix格式的 ^)
tr: echo $CLASSPATH | tr : ‘\n’ | sort
(^ java 类路径 ^)
tree:
(export LS_COLORS=NONE; tree | sed ‘s/\[.*\] //’)
(^ 目录树 ^)
tr -s ‘\173-\377’ Z
(^ 把所有z后边的字符都转换为Z,并且去除多余重复的Z.注意173″{“和377都是8进制. 注意有-s参数 ^)
tty
(^ 查看自己所使用的终端 ^)
tune2fs -c -1 /dev/sdb1
(^ 不管挂载多小次都不自检 ^)
tune2fs -c -1 -i 0 /dev/sdb1
(^ 让分区永远不自检 ^)
tune2fs -j /dev/sdb4
(^ 转换为ext3 ^)
tune2fs -l /dev/sda7 | grep ”
Block size:
”
(^ 查看一block的大小 ^)
tune2fs -l /dev/sda7
(^ 打印文件系统属性 ^)
tune2fs -l /dev/sdb1 | grep features
(^ 看Filesystemfeatures: has_journal是否有has_journal, 有则是ext3文件系统 ^)
type ./configure ; make ; make install
(^ 在同一个命令行上同时执行多条命令,用分号分隔 ^)
ulimit
(^ 设置系统资源限制 ^)
uname -r
(^ 看内核版本 ^)
uniq –all-repeated -i file
(^ 输出file中所有重复行, –all-repeated等价于-D ^)
uniq -c file
(^ 在每行前显示重复次数,可与其他选项结合,例如-cu或-cd或-c ^)
uniq -c
(^ 把数字显示在第一列 ^)
uniq -d file
(^ 只输出file中的重复行,且只输出一次,但不输出唯一的行 ^)
uniq -i file
(^ 比较时忽略大小写 ^)
uniq -u file
(^ 只输出file中的唯一行(当然是一次啦) ^)
uniq -ui wordslist.txt
(^ 只 ^)
units miles meters
(^ 求miles与meters的换算公式 ^)
units
(^ 这个工具用来在不同的计量单位之间互相转换 ^)
unix2dos -k hosts
(^ 将提供的hosts文件格式更新为dos格式 ^)
unrar e sa.rar
(^ 解压rar文件当前目录, 不自动创建目录 ^)
unrar x sa.rar dir
(^ 解压rar文件目录dir, 自动创建目录 ^)
updatedb
(^ 更新文件路径数据库 ^)
uptime: cat /proc/uptime | awk -F. ‘{
run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf(“run_days=%d\trun_hour=%d\trun_minute=%d\trun_second=%d\n”,run_days,run_hour,run_minute,run_second)
}’
(^ 查看/proc/uptime文件计算系统运行时间 ^)
uptime: cat /proc/uptime
(^ 查看系统已启动了多久, 第一数字即是系统已运行的时间 ^)
uptime: date -d ”
$(awk -F. ‘{print $1}’ /proc/uptime) second ago
” +”
%Y-%m-%d %H:%M:%S
”
(^ 推算系统是什么时候启动的 ^)
uptime: date -d”
$(ls –full-time /var/run/runlevel.dir | awk ‘{print $7,$8,$10,$9}’)
” +”
%Y-%m-%d %H:%M:%S
”
(^ 查看/var/run/runlevel.dir文件的时间信息获取大致的系统启动时间 ^)
uptime
(^ 查看系统已启动了多久 ^)
uudecode
(^ 这个工具用来把uuencode后的ASCII字符串恢复为二进制文件. ^)
uuencode
(^ 这个工具用来把二进制文件编码成ASCII字符串,这个工具适用于编码e-mail消息体,或者新闻组消息. ^)
vim: find . -type f -exec gvim -O {} +
(^ 在新的gvim中打开find找到的所有文件于不同的垂直窗口中 ^)
vim: find . -type f -exec gvim -o {} +
(^ 在新的gvim中打开find找到的所有文件于不同的水平窗口中 ^)
vim: find . -type f -exec gvim -p –remote-tab {} +
(^ 在现有的gvim中打开find找到的所有文件于不同的标签页 ^)
vim: find . -type f -exec gvim -p {} +
(^ 在新的gvim中打开find找到的所有文件于不同的标签页中 ^)
vim: find . -type f -exec gvim –servername GVIM –remote-tab {} \;
(^ 用gvim打开find找到的第一个文件 ^)
vim: find . -type f -exec gvim –servername GVIM –remote-tab {} +
(^ 用gvim打开find找到的所有文件于不同的标签页 ^)
vim: find . -type f -exec vim {} \;
(^ 用vim打开find的结果, 但每次只打开一个文件 ^)
vim: find . -type f -exec vim {} +
(^ 用vim打开find的结果, 若有多个文件则放入buffer中 ^)
vim $
(find . -type f)
(^ 用vim打开find的结果 ^)
vim
`find …. `
(^ 用vim打开find的结果 ^)
vim -u NONE
(^ 启动vim时, 跳过任何启动初始化脚本 ^)
vim: xargs -a <
(find . -type f)
vim
(^ 用vim打开find的结果, 若有多个文件则放入buffer中 ^)
wall this system will halt after 5 minutes
(^ 发公告信息给所有终端用户 ^)
watch -n 10 ls -l file.name
(^ 使用watch命令, 可以反复执行命令, 和ls配合, 可以达到每10秒观察某文件大小变化的效果 ^)
wget -p
http://www.xyz23.com/file01.html
(^ -p选项将会使得wget取得显示指定页时所需要的所有文件(如图片等) ^)
wget -r
ftp://ftp.xyz24.net/~bozo/project_files/
-O savefile.txt
(^ -r选项将会递归的从指定站点上下载所有连接. ^)
whatis
whereis ls
(^ 快速查找命令文件, 可以使用whereis ^)
whoami
write root /dev/pts/4
(^ 给某个终端的用户发送信信息 ^)
w
(^ Show who is logged on and what they are doing. ^)
yum –disablerepo=repo_name
(^ 禁用软件仓库 ^)
yum –enablerepo=repo_name
(^ 启用软件仓库 ^)
yum info application_name
(^ 查找某个应用程序的信息 ^)
yum install application_name
yum localinstall application_name
(^ 从硬盘安装rpm包并使用yum解决依赖 ^)
yum remove application_name
(^ 删除应用程序 ^)
yum search application_name
(^ 搜索某个应用程序 ^)
yum update
(^ 更新整个系统 ^)
zcat 123.gz
(^ 查看压缩文件内容 ^)
zip -r t.zip t
(^ 递归地把t目录及其子目录文件压缩为t.zip ^)
1.1 unknown command
gpic /home/scr/.rt/book/tools/gpic/gpic.raymond.ps
cdrecord
[~]# gcc -c test.c
[~]# ld -o test -Ttext 0x0 -e main test.o
[~]# objcopy -R .note -R .comment -S -O binary test test.bin
[~]# objdump –disassemble-all test.o
1.2 shell特有变量
$# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数. 与位置
变量不同, 此选项参数可超过9个.
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的进程ID号
$@ 与$#相同, 但是使用时加引号, 并在引号中返回每个参数
$- 显示shell使用的当前选项, 与set命令功能相同
$? 显示最后命令的退出状态. 0表示没有错误, 其他任何值表明有错误.
1.3 shell “2>&1”
// 这里”2>&1″的意思就是将标准错误也输出到标准输出当中.
[]$ /tmp/test.sh > /tmp/test.log 2>&1
//
NOTE
: 下面这一行的写法是错误的!!!!!
[]$ /tmp/test.sh > 2>&1 /tmp/test.log
1.3 管道
”
管道命令
“是指包含管道的一个复杂命令.
管道, 即把一个程序的输出作为另一个程序的输入. ls 这种程序根本不理睬标准输入
(stdin)
, 所以你 find xxx | ls 的话, ls 根本不理睬 find 给它的文件列表. xargs
命令从标准输入读取, 并将其作为参数构建命令行. 如:
$ echo a b | xargs ls
xargs 从标准输入读到 a 和 b 两行字符, 把它们作为两参数交给程序 ls, 于是
xargs 执行 ls a b.
有些程序既可从标准输入读取数据, 也可从文件读取, 如 sed:
$ find xxx | sed ‘s/a/b/’
这是使用 find 得到一个文件列表, 然后利用 sed 把其中每行的第一个 a 替换成b 再输
出.
$ find xxx | xargs sed ‘s/a/b/’
这是使用 find 得到一个文件列表, 然后利用 sed 把这些文件的内容替换了再输出.
1.4 String Operations
t=”
./a/b/f
”
s=${
t#*/
}
// 从前面开始, 去除最短的匹配串: s=”a/b/f”
s=${
t%/*
}
// 从后面开始, 去除最短的匹配串: s=”./a/b”
s=${
t##*/
}
// 从前面开始, 去除最长的匹配串: s=”f”
s=${
t%%/*
}
// 从后面开始, 去除最长的匹配串: s=”.”