一小些常用linux命令列表

  • Post author:
  • Post category:linux





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…


” {} \; -print

(^ 查找含特定字符串的文件 ^)


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




版权声明:本文为tge7618291原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。