打包压缩
tar -zcfv filename.tar.gz ./
服务器解压缩
tar -zxfv filename.tar.gz
删除
rm -rf file
1. SHUTDOWN 关闭系统, 参数(-k 不真正关闭系统只是警告,-r 关闭后重新引导,-h 关闭后终止 ,-f 快速重新引导,-n 不通过init 直接关闭,-c 取消shutdown,-t时间
2. 制作引导盘 # redv zlmage
#fdformat /dev/fd0H1440
#dd if=zlmage of=/dev/fd0
3. badblocks 查找坏的族
4. dump 备份文件
5. dumpe2fs 打印文件系统的信息
6. tar 解压缩 tar xf name.tar
tar zxf name.tar.gz
tar zxf name.tar.z
7. ps 查看进程
8. cat 查看文件内容
9. ls 文件列表
10.cd 进入目录
11.cp 拷贝
12.rpm 安装rpm软件包
13.mkdir 创建目录
14.startx 进入x-windows
15. mount 坝设备安装到文件系统 mount /dev/ /fd1 –t vfat /mnt/floppy
16.umount
17.logout 重新登录
18. vmstat 查看cpu使用情况 vmstat interval [count]
19.renice 改变运行的进程的优先级
20.su 切换用户
21. who 查看用户
22.passwd 改变口令
23.pwd 当前目录
24.rmdir 删除目录,目录为空
25.rm 删除目录
26.more 同cat 一屏一屏滚动
27 .wc 查看文件的信息
28.df 磁盘空间
29.free 内存空间
30.man 查看命令的具体用法
31.adduser 添加用户
32.groupadd 添加用户组
33.chmod 文件权限命令
34.& 用于将程序调入后台运行 updatedb &
35。pstree 显示进程树
36.ifconfig 用于显示设定网络接口
37。netconfig 提供了网络的超集成设定
38。netstat 检查网络连接的状态,路由表和其他信息
39。ping 同dos的ping
40。mkfs 创建文件系统 如格式化软盘成ext2 mkfs -t ext2 /mnt/floppy
41.fsck 检查修复文件系统
42。pwd显示当前路径
43。tree 显示树状目录
44。which 显示指令完整路径
45,mv 用于移动文件和重命名文件
46。more 用于分页显示
47。find查找文件,功能强大
48,du 查看磁盘使用情况
49 。env显示所有环境变量
50。route 用于显示,设定,删除网络接口上的路由
1.虚拟控制台
登录后按Alt+F2键这时又可以看到”login:”提示符, 这个就是第二个虚拟控制台.再按Alt+F1又回到第一
个控制台,来回切换很方便。查看/etc/inittab文件可以找到一下几行:
#Run gettys in standard runlevels
1:12345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
也就是说初始化的时候定义了6个虚拟控制台,你可以编辑这个文件来增加或减少虚拟控制台。在Xwin下
使用虚拟控制台则要用Ctrl+Alt+F?来切换。Xwindow占用虚拟控制台后的第一个控制台,缺省就是tty7,所
以要切换回Xwin则按Alt+F7(当你改变了虚拟控制台的数目时则要改变)。如果启动了第二个Xserver则应该
是Alt+F8,等等。
2.Redhat下显示彩色目录及文件列表
用ls –color -F,参数–color指示用彩色显示,参数-F会在文件/目录名后加一个字符来指示它的类别。
建议初学者用man ls看看详细信息。比如用-l参数列出文件/目录的绝大部分信息(长格式显示);用-a参数
列出所有文件;包括首字符为”.”的隐含文件;用-N参数不处理文件名直接显示,这样在中文环境下就可以
显示中文文件名了。还要注意ls与其它命令搭配使用可以生出很多技巧(最简单的如”ls -l | more”)。
为了方便起见,你可以编辑/etc/bashrc或自己家目录(home)下的.bashrc,加入一行:
alias ls=”ls –color -F -N”
重新运行一下bash会立即生效,如果加在/etc/bashrc里则对所有使用bash shell的用户有效。如果使用
的是其它的shell,则去找对应的配置文件。注意不是/etc/aliases文件,那是sendmail的别名配置文件。
ls显示的颜色是可以修改的,请参考”Colours with Linux terminals”,里面有个shell脚本可以显示所
有的ANSI颜色。你可以去看一下/etc/DIR_COLORS或$HOME/.dir_colors,要注意两个文件的作用范围不同。
也可以用dircolors -p命令列出设置,更详细信息见”man dircolors”。
3.只列子目录的方法:
ls -F | grep /$ 或者 alias sub = “ls -F | grep /$”(linux)
ls -l | grep “^d” 或者 ls -lL | grep “^d” (Solaris)
find . -type d
find . -type d | sort
参考dtree
4.列出除了某些类型文件的当前目录所有文件
使用Ksh,用ls !(*.Z)可以显示所有文件,除了*.Z文件。
这个命令在一个目录里有许多种类型的文件的时候很有用.
5.计算文件数和目录数
下面的语句可以帮你计算有多少个文件和多少个目录..
ls -l * | grep “^-” | wc -l <—- to count files
ls -l * | grep “^d” | wc -l <—– to count dir
还可以将以上的语句变成script或做个alias
6.复制子目录及子目录下的所有文件
在用cp时加上-r参数,如”cp -r /mnt/floppy/* /usr/local/”
要参考的重要参数是-f -s
7.文件/目录改名
简单地用move命令移到新名字下即可。例如”mv /usr/oldname /usr/newname”
8.删除一个目录下的所有文件和子目录及子目录下的所有文件
rm -rf /tmp/example
这些都是给懒人们准备的,新手最好多用man命令学习。要是英语不好,等中文发行版出来
9.快速进入某些目录
键入 cd ~ (或cd $HOME)可进入用户的home目录.
键入 cd - 可进入上一次所在的目录.
10.显示环境变量
echo $HOME 显示家目录
echo $PATH 显示可执行文件搜索路径
env 显示所有环境变量(可能很多,最好用”env | more”,”env | grep PATH”等)
修改环境变量,在bash下用export,在csh下用setenv。比如:
export PATH=$PATH:/usr/local/bin
要想知道export的具体用法,可以用shell的help命令:help export
11.显示文件的类型
用file命令,比如”file /bin/mount”,”file xxx.gz”,”file netscape”,”file initrd.img”等等。
相关的配置文件在/etc/magic或者/usr/share/magic
12.查找命令文件的路径
比如你要查找mount命令的具体路径,可以用
type mount
whereis mount 这个命令还可以找出与这个命令文件相关的文件如manuals page。
13.查找文件
使用find命令,比如:
find /usr -name XF86* 在/usr目录下(包含子目录)查找名字前四个字母为XF86的文件
find . -name netscape -print 在当前目录下(包含子目录)查找名为netscape的文件
find /home -nouser 在/home目录下查找没有用户属主的文件(用户帐号被删除但有遗留文件)
find /var -newer test 在/var目录下查找比test文件日期更新的文件
find命令有很多参数,注意用man命令查看。
更快速的查找文件是使用locate,第一次使用locate之前用updatedb来更新文件/目录名数据库。
它把文件/目录信息写到数据库中,以后查找起来就特别的快。updatedb放在crontab中而且缺省
配置是在半夜自动执行。locate存在轻微的安全性问题,因为普通用户可以用它来取得自己不能
访问的目录/文件的部分信息。现在有个secure locate,把uid/gid也保存到数据库中,用户在
locate时先比较权限。
14.控制台下回卷屏幕
如何查看已经卷过屏幕的信息呢?试试这两个按键组合:shift+PageUp和shift+PageDown
对xterm/nxterm/cxterm/xxgdb都有效。而KDE带的KVT已经做得很好了。
15.查看文件内容的特殊方法
相信最基本的cat和less你已经很熟悉了,如果有特殊的要求呢:
如果你只想看文件的前5行,可以使用head命令,如:
head -5 /etc/passwd
如果你想查看文件的后10行,可以使用tail命令,如:
tail -10 /etc/passwd
tail -f /var/log/messages
参数-f使tail不停地去读最新的内容,这样有实时监视的效果,
当你在ppp拨号的过程中用它岂不是很方便!
查看文件中间一段,你可以使用sed命令 如:
sed -n ‘5,10p’ /etc/passwd
这样你就可以只查看文件的第5行到第10行。
16.取消^M字符
当你FTP一些DOS文件到unix下时,你经常会看见每行文件后面有个讨厌的^M 字符,
有两个简单的方法可以取消它。
用”vi”打开此文件,在Command mode下敲入:
:%s/^V^M//g
或者,在UNIX SHELL下敲入:
sed ’s/^V^M//g’ foo > foo.new
17.利用Find命令改变所有权
想要改变当前目录下所有文件的所有权,可以这样:
find . -exec chown OWNER.[GROUP] {} ; (Solaris)
find . -exec chown -R OWNER.[GROUP] {} ; (Linux)
18.改变xterm/cxterm下字体大小
同时按下Ctrl键和鼠标右键会弹出一个菜单让你选择,也可以在启动xterm时指定字体,
如”xterm -fn 8×16 &”
提示:难道你不想试试Ctrl+鼠标左键会有什么吗?!
19.启动一个程序时让它立即进入后台运行方式
看过前面一篇bash的介绍应该明白Ctrl+z/bg/fg的用法。有些程序工作起来挺费时间,在它后面加
个&符号看看,例如”updatedb &”,”netscape &”等等。这样这个shell会释放出来干别的活。注意
这样出来的程序父进程仍然是这个shell,若你退出这个shell,这些程序也会被kill掉(除非这个程序
自己特别处理能脱离shell)。建议退出shell之前用jobs命令查看后台作业。
20.使用nohup命令(不挂起)
如果你想进程在你退出系统后还能执行,可以使用NOHUP命令如:
% nohup tar -cf /dev/tape /home &
你logout退出后再重新登录的话,使用’ps’命令可以看到进程还在执行
注意,要想把命令真正放到后台运行,nohup必须与&操作同时使用。
有些软件自己能处理SIGHUP信号,如wget,则对它们无须用nohup。
如果你愿开动脑筋的话,还可以用nohup来实现ppp回拨:先拨号上去,然后以nohup执行一个自制的
脚本,如”sleep 60; ppp-start-script”等等。最后logout退出并挂断电话等着就是。
21.快速调出历史命令
看了上一篇bash的介绍,想必对history,!,!!这些用法很熟悉了。其实你还可以用上下光标键
来调出历史命令,然后用左右光标键移动并可编辑命令行。
22.产生一个以当日日期为后缀的文件
file=`date ‘+%m%d’` | touch todayis.$file
或者做一个shell脚本:
#!/usr/bin/sh
file=`date ‘+%M%d’`
touch todayis.$file
exit 0
注意定义file变量中的“`”不是“ ‘”,而是左上角数字键1傍边那个(左单引号)。
23.将man/info的内容存为文本文件
以man tcsh为例:
1) man tcsh | col -b > tcsh.txt
2) nroff -man tcsh.man | col -b > tcsh.txt
以info emacs为例
info emacs -o emacs.txt -s
提示,如果安装了KDE的话用kdehelp去看man page和info page是很方便的。
嫌KDE太大的话还有TkMan可以选择,也是图形/超文本方式的,有搜索引擎,功能更强。
新来者要多去看man和info哟!
24.关于rpm的小技巧
1)安装rpm包时显示进度
用-vh参数,如rpm -ivh ipchains-1.3.6-1.i386.rpm
如果用glint或xrpm则不必。
2)直接通过ftp来安装rpm包
如rpm -i ftp://ftp.xxx.xxx
3)校验所有的rpm包,查找丢失的文件
rpm -Va
4)查找一个文件属于哪个rpm包
例如:rpm -qf /usr/bin/who
5)列出一个rpm包的描述信息
例如:rpm -qpi mon-0.37j-1.i386.rpm
6)列出一个rpm包的文件信息
例如:rpm -qpl mon-0.37j-1.i386.rpm
25.快速展开xxx.tar.gz/xxx.tgz压缩的包
tar zvfx xxx.tgz 在当前目录下展开这个包
tar zvft xxx.tgz 只测试不展开
tar zvfx xxx.tgz -C /new-dir 展开后放到/new-dir目录下
tar zvfc test.tgz /test 把/test目录下所有的文件及子目录打包成test.tgz
tar的参数很多,要仔细学习。
26.拷贝与粘贴文本
如果启动了gpm这个守护神(deamon)程序的话,可以用鼠标左键来选择文本,然后就可以用鼠标
中键把它粘贴到你所想要的地方。如果是两键鼠标则在配置是要选择防真3键鼠标,之后同时按
下左右键模拟中键。在文本终端下应该用鼠标右键来粘贴。
27.快速查找某个程序运行中的PID号/关机
例如想查找inetd: ps aux | grep inetd
又如想找到最吃内存的进程: ps aux | sort +4n
找到进程的PID之后就可以用kill给它发信号,或者强制杀死它如:kill -9 xxx(某个进程的PID)
在Linux下还提供了一个killall,可以直接使用进程的名字而不是PID号,如killall -HUP inetd
又如killall xdm。killall会把信号发给以指定名字的程序运行的所有进程。
用killall -l列出所有可用的信号。
提到ps忍不住给大家介绍一下qps,用qt写的图形界面,综合了free,top,ps及kill的特点,还可以看到
进程的Socket/Memory Map/Files信息。还有为KDE写的ktop,优点是列出了父子进程的关系。
shutdown -r now 杀掉所有进程立即重新启动
shutdown -h now 杀掉所有进程立即停机
shutdown -h +5 “Warning: After 5 minutes I’ll shutdown” 给用户发消息并在5分钟后停机。
相关命令有reboot,halt,poweroff,init等。
要想实现软件关掉电源,则你的PC机必须是ATX结构的,然后去配置编译内核,打开
charactor device/Advanced Power Management support/Power off on shutdown这一项。
28.查找Xwindow下的字体信息,特别是字符映射表(内码)
xlsfonts 列出所有字体
xfontsel 分类列出所有字体并显示示范文本
xfd 显示某个字体文件中的所有字符及内码,比如用 xfd -fn hanzigb16fs 看看中文内码
再用xfd -fn cclib16st看看cxterm所用字库的内码与XF86的不同(注意最高位)。
29.查找日期为某一天的文件
A=`find ~ -print` | ls -l –full-time $A 2>/dev/null | grep “Jun 27″ | grep 1998
Linux的命令很厉害的呀!
给你写了下面这个script,用着方便点儿。你把它存成一个随便什么名字的文件,置上x属性就行了。
#!/bin/sh
# Copyright by Ming Gong(宫敏) for news://news.freesoft.cei.gov.cn/chinese.com.linux
# GPL V2, Jun 30, 1998
# The right of usage, distribution and modification is here by granted by the author.
# The author deny any responsibilities and liabilities related to the code.
#
OK=0
A=`find $1 -print`
if expr $3 == 1 >/dev/null ; then M=Jan ; OK=1 ; fi
if expr $3 == 2 >/dev/null ; then M=Feb ; OK=1 ; fi
if expr $3 == 3 >/dev/null ; then M=Mar ; OK=1 ; fi
if expr $3 == 4 >/dev/null ; then M=Apr ; OK=1 ; fi
if expr $3 == 5 >/dev/null ; then M=May ; OK=1 ; fi
if expr $3 == 6 >/dev/null ; then M=Jun ; OK=1 ; fi
if expr $3 == 7 >/dev/null ; then M=Jul ; OK=1 ; fi
if expr $3 == 8 >/dev/null ; then M=Aug ; OK=1 ; fi
if expr $3 == 9 >/dev/null ; then M=Sep ; OK=1 ; fi
if expr $3 == 10 >/dev/null ; then M=Oct ; OK=1 ; fi
if expr $3 == 11 >/dev/null ; then M=Nov ; OK=1 ; fi
if expr $3 == 12 >/dev/null ; then M=Dec ; OK=1 ; fi
if expr $3 == 1 >/dev/null ; then M=Jan ; OK=1 ; fi
if expr $OK == 1 > /dev/null ; then
ls -l –full-time $A 2>/dev/null | grep “$M $4″ | grep $2 ;
else
echo Usage: $0 path Year Month Day;
echo Example: $0 ~ 1998 6 30;
fi
30.使用软盘/光盘等移动介质
刚从跺死/瘟都死转过来的朋友,手拿着软盘/光盘不知道该如何办,因为Linux下没有A盘D盘的
概念.我自己刚开始学习Linux时也是这样(以前从来就没有做过root 。如果你手头有讲Linux
的书,仔细去看设备及文件系统的相关章节。简单地说,你需要把软盘/光盘设备上的文件系统安
装到Linux目录树上的一个点上,称之为安装点(mount point),通常是一个目录。安装Linux后会
有个缺省的安装点/mnt,在它下面还有/mnt/floppy和/mnt/cdrom。你可以用
mount -t ext2 /dev/fd0 /mnt/floppy <–把linux文件系统格式的软盘安装上来
mount -t msdos /dev/fd0 /mnt/floppy <–把dos文件系统格式的软盘安装上来
mount -t vfat /dev/fd0 /mnt/floppy <–vfat支持瘟95/98的长文件名
mount /dev/hdb /mnt/cdrom <–把以从盘方式接在第一个IDE口上的光驱上的光盘安装上来
mount /dev/cdrom /mnt/cdrom <– /dev/cdrom是指向光驱设备的一个连接
mount /mnt/cdrom <–可以这么用是因为在/etc/fstab里已经定义了
umount /mnt/floppy <–在拿出软盘之前先要把它卸载
umount /mnt/cdrom <–不卸载就拿不出光盘
当然你也可以自己建一些安装点,比如”mkdir /mnt/smb”,”mkdir /scd”然后
mount -t iso9660 /dev/scd0 /scd <–/dev/scd0: SCSI光驱
smbmount //fjj/download /mnt/smb
等等,熟悉之后就可以灵活运用。
单用mount而不跟任何参数可以显示已经安装的文件系统,或者查看/etc/mtab文件
初学者还经常问到如何格式化磁盘,在Linux里概念有些不同,称之为制作文件系统(make filesystem)
应该用mkfs命令,由于现在的Linux都使用ext2格式,最好直接使用mke2fs,比如mke2fs /dev/fd0
mke2fs /dev/hdb2等等。如果要对软盘低级格式化,则可以用fdformat,而硬盘在出厂时已经格式化,
无须低级格式化(那是危险的)。检查文件系统则用e2fsck,如e2fsck -av /dev/fd0。
哈,这个根本算不上Tips,不过有些初学者总是不喜欢看书思考,甚至还问如何添加/删除用户。
31.添加/删除用户
用useradd username(或者adduser username)添加一个名为username的用户,然后用passwd username
指定口令。用户的信息记录在/etc/passwd文件里,由于每个用户都可以(而且必须能)读出这个文件然
后就可以crack出其它用户的密码,为安全考虑现在都使用shadow。在/etc/passwd下用户的口令变为x
真正的口令密文记录在/etc/shadow里,而这个文件只有以root权限才能读出。Redhat 5.1以下版本没
有直接使用shadow,需要用pwconv转换一下,如果要变回来,可以用pwunconv。提示:在/etc/skel目
录记录了一个用户应该有的基本文件(ls -a /etc/skel/看看都有什么),useradd会自动把这些文件复
制到用户的家目录下并置上适当的权限(除非添加用户时用了-m参数: useradd -m xxx)。如果你在这个
目录下键一个public_html的目录,则以后添加的用户在它的家目录下都会自动有个同名的目录,这样
每个用户都有了“个人主页”。
删除用户可以用userdel usrname或userdel -r username(有些发行版可能是deluser),-r参数会删除
这个用户的家目录,但是在系统里别的地方还可能有此用户的信息,所以在删除用户之前最好还要
用find / -user username等方式去找一找相关信息。
如果要临时禁止一个用户,可以在/etc/passwd文件中此用户的密码这一项第一个字符前添加一个*号。
如果把密码域改为空,则此用户不需要密码就可以进入系统,当你忘记root口令时,可以用软盘启动
把原来的root安装上来,直接去改passwd文件。我记得以单用户方式启动时不需要密码可以进去。
长用户名的问题,在Redhat发行版中已经做得很好了,也允许用户名中有空格。如果你手上的发行版
不支持,到/usr/include/utmpbits.h里把UT_NAMEDSIZE改为32,重新编译相关程序。
另一个直观的配置工具是linuxconf,比如用它来配置pppuser等等。
这里只能给一些线索,自己多看”man useradd”,”man shadow”,”man group”,”man userdel”……
再一次建议新来者多看书多思考多看看man page,否则不大容易找到/etc/skel是干什么的。
32.列出一个目录占用的空间
du或du -s或du -k
du -S | sort -n 可以迅速发现那个目录是最大的。
用df可以看到已安装的文件系统的空间大小及剩余空间大小。
quota -v查看用户的磁盘空间信息,如果你用quota限制了用户空间大小的话。
33.命令补起(TAB键的妙用)
很多shell都有这个功能。
1) 只需输入文件或目录名的前几个字符, 然后按TAB
键,如无相重的,完整的文件名立即自动在命令行
出现;如有相重的,再按一下TAB键,系统会列出
当前目录下所有以这几个字符开头的名字.例如
cd /mnt/cd<tab键> 自动补起为 cd /mnt/cdrom
2) 在命令行下,只需输入例如”m”,再连续按两次TAB
键,系统将列出所有以”m”开头的命令,(包括自定义
的Bshell命令函数),对查找某些记不清楚的命令特
有用.例如输入”ftp”,将查到ftp,ftpcount,ftpwho
ftpshut等本不熟悉的命令.
34.在redhat5.0中没有setenv,用set设定的变量在程序中用getenv读不出来.
用哪个函数可以读出用set设定的环境变量?
set env;export env
然后在用getenv去读。
35.让grep搜寻文件及所有子目录下的文件里的内容
例如搜寻ZhXwin下所有C原代码中的”Chinput”(试试取消下行的-q参数):
find /download/ZhXwin -name *.c -exec grep -q -s Chinput {} ; -print
查找所有文件则可以用:
find . -type f -exec grep -s chinese {} ; -print
如果喜欢图形界面,KDE带的kfind很不错。
36.查看启动时的log信息
首先去查看/etc/syslog.conf文件,找到对应的文件。
(更详细的信息去看”man syslogd” “man syslog.conf” 以及”man klogd”)
通常在SlackWare下为/var/adm/messages,在Redhat下为/var/log/messages。
这些文件可能会很大,要注意备份和删除。
前面已经提到用tail(tail -f)查看这些文件的方法,另外还有个logscanner工具,挺不错的。