的不同(注意最高位)。
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工具,挺不错的。
建议大家去读一下The Linux Tips Howto,并且去订阅Linux Gazette。 收集整理这些文档的时候看到一个新开的站点:Linux Tips & Tricks
上一页 [1] [2] [C语言系列]C# 和 Linux 时间戳转换 [Web开发]PHP flock文件锁介绍 [Web开发]flock() Linux下的文件锁 [电脑应用]Linux下的六个免费的虚拟主机管理系统介绍 [电脑应用]Linux数据库大比拚 [操作系统]在Windows中玩转Linux操作系统 [办公软件]在RedHat Linux 9里安装gaim0.80 [办公软件]掌握 Linux 调试技术 [办公软件]理解 Linux 配置文件 [聊天工具]Real10 & Xpdf installation on Linux Box
|