正在浏览:
1 名游客
linux 操作技巧.(不断增加) |
||
---|---|---|
新进会员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
注册会员 帖子:
5
等级: 1; EXP: 34
HP : 0 / 8 MP : 1 / 1276 ![]() |
-Tip1 查看man文件...
nroff -man man/libnet.3 | less 有时候man文件不在系统目录..这时候就可以用上面的方式来查看非标准的man文件 -Tip2 以不同的用户身份运行程序... su - username -c "where/is/command/line" 有时候需要运行特殊身份的程序...就可以让su来做... -Tip3 解压bz文件 tar -jvxf some.bz 就是把tar的zvxf 改成jvxf -Tip4 编辑/etc/inittab后直接生效的方法.. 执行init q -Tip5 让linux连续执行几个命令,出错停止 command1 && command2 && command3 .... -Tip6 linux中的bg和fg管理 当我们打ctrl+z的时候一个任务就被挂起(就是暂停),同时屏幕上返回一个数字, 这时候可以用 "bg %数字" 来把这个进程放到后台执行...这个很适合在你忘了加 &的时候进行补救...同样 " fg %数字 "就能让这个进程放到前台来执行了... job命令用来查看当前的被bg的进程... -Tip7 ctrl+s与ctrl+q ctrl-s 好象是从终端时代遗传过来的东东, 流量控制, 用来暂停向终端发送数据的. ctrl-q 用来恢复恢复 -Tip8 目录统计教本 保存成total.sh ,然后用total.sh 绝对路径,就会统计路径下目录的大小了 代码: #!/bin/sh du $1 --max-depth=1 | sort -n|awk '{printf "%7.2fM ----> %s\n",$1/1024,$2}'|sed 's:/.*/\([^/]\{1,\}\)$:\1:g' -Tip9 grep不显示本身进程 代码: ps -aux|grep httpd|grep -v grep 通过再一次grep -v grep就可以取消显示你所执行的grep本身这个进程,-v参数是不显示所列出的进程名. -Tip10 自己用的一个统计httpd的脚本 代码: #!/bin/sh while (true) do pstree |grep "*\[httpd\]$"|sed 's/.*-\([0-9][0-9]*\)\*\[httpd\]$/\1/' sleep 3 done -Tip 11 解压rpm包中的文件 代码: cat gnome-libs-1.4.1.2.90.22.i386.rpm | rpm2cpio | pax -r -Tip12 去掉apache的manual目录中的所有.en的后缀名 进入到manual目录 代码: find ./ -regex .*\.en|awk -F. '{ printf "mv %s.%s.%s.%s %s.%s.%s\n",$1,$2,$3,$4,$1,$2,$3}'|sh -Tip 13 linux里如何映射windows里的硬盘 mount -t smbfs -o username=xxx,password=xxx //winxp_ip_or_hostname/sharename /local_path fc2中已经不需要-t smbfs这个参数了. -Tip 14 linux里如何查看可用的硬盘设备 fdisk -l 由 i_amok_cn在 06-30-2004 15:48最后编辑. _____________________________@ 怎样让一滴水不干涸---让他溶入大海 逃避不是解决问题的办法 php+mysql web space selling http://www.be10.com 引用回复 i_amok_cn 查看公开的个人资料 发送一个悄悄话给 i_amok_cn 给 i_amok_cn 发送Email 访问i_amok_cn的主页! 将 i_amok_cn 添加到你的好友名单中 查找 i_amok_cn 的更多帖子 查看 i_amok_cn 发表的精华贴 i_amok_cn i_amok_cn的头像 VIP 资 料: 注册日期: Mar 2002 帖子: 3,122 精华: 3 2 旧的 05-27-2003, 22:41 默认 i_amok_cn不在线 [zt] form rexhsu's bbshttp://rexhsu.minidns.net/~irc/discuz/viewthread.php?tid=13 Linux Useful Tips (Collected by RexHsu@ccf) -Tip1 命令行下制作ISO 用法: mkisofs -a -I -J -r -o filename.iso /目录 用途: 将linux下某个目录中的所有文件做成iso镜像.而且我加上了参数,可以保证你做出来的光盘是在windows下也可以用的 (iso是有文件大小限制的...具体多少偶忘记了) -Tip2 Linux下ISO的虚拟方法 步骤如下: 1. 把 /dev/cdrom 删除,然后运行 ln -s /dev/loop7 /dev/cdrom 2. losetup /dev/loop7 xxx.iso 3. mount /mnt/cdrom 如何换盘: 1. losetup -d /dev/loop7 ;目的是取消这个设备 2. losetup /dev/loop7 yyy.iso ;新的iso文件 -Tip3 hosts的用法 host能够用来查询域名,然而它可以得到更多的信息.host -t mx linux.com可以查询出linux.com的MX记录,以及处理mail的host的名字.host -l linux.com会返回所有注册在linux.com下的域名.host -a linux.com则会显示这个主机的所有域名信息. -Tip4 *.bz2文件如何解压缩 使用tar -I 或者bunzip2命令都可以. -Tip5 RPM常见用法 安装rpm包时显示进度并校验包的正确性 用-vh参数: 如 rpm -ivh ipchains-1.3.6-1.i386.rpm 如果用glint或xrpm则不必. 直接通过ftp来安装rpm包 如 rpm -i ftp://ftp.xxx.xxx 校验所有的rpm包,查找丢失的文件 rpm -Va 查找一个文件属于哪个rpm包 如 rpm -qf /usr/bin/who 列出一个rpm包的描述信息 如 rpm -qpi mon-0.37j-1.i386.rpm 列出一个rpm包的文件信息 如 rpm -qpl mon-0.37j-1.i386.rpm -Tip6 查看系统监听的服务 用法: netstat -ln 解释: "l"表示显示当前系统监听的端口信息;"n"表示端口按照端口号来显示,而不转换为service文件中定义的端口名;若希望了解各个端口都是由哪些进程监听则可以使用p参数. -Tip7 查看系统运行的进程 用法: ps -auxw 解释: 其中参数"a"表示显示系统中所有用户的的进程;"u"表示输出进程用户所属信息;"x"表示也显示没有控制台的进程;若显示行太长而被截断则可以使用f参数. -Tip8 Linux帐号搬家 对于新账号-> 保证将要加入系统的新帐号放在新的位置上,这通过修改/etc/default/useradd文件中的HOME值来实现. 如: HOME=/home2 使新增帐号的主目录建在/home2下. 将已有帐号移至新的位置-> 首先,将已有帐号的主目录连带目录属性拷至新位置,可用下面命令: cp -a /home /home2 或 cp -rpd /home /home2 然后,修改/etc/passwd文件中相应记录的home_directory域为/home2/username. 这样两步已将旧帐号移至新位置.确保无误后,可删去旧帐号的旧主目录以腾出原文件系统的空间. -Tip9 Linux 启动时屏幕显示的信息来不及看清就一闪而过,如果对这些信息感兴趣的话可以在启动完后用命令 dmesg 查看. -Tip10 GRUB引导恢复小法 用启动盘或安装盘(linux rescue)进linux sh# grub grub> root (hdx,y) grub> setup (hd0) 重启 说明: 如果成功会有一个successful......这里的x,如果是一个盘,就是0.如果你所安装的linux的根分区在第二个硬盘上,那x就是1了;y 就是装有linux系统所在的根分区.setup (hd0)就是把GRUB写到硬盘的MBR上.如果我知道我的linux装在第一个硬盘上,但我不知道装在哪个分区上,就可以先输入root (hd0,然后用[TAB]键来补齐,然后就明白了. -Tip11 测试磁盘性能 用法: hdparm -tT /dev/hd? 例如: hdparm -tT /dev/hda (测试第一个物理硬盘的速度) -Tip12 将内网的服务对外开放 将192.168.1.2上的8888端口映射到192.168.1.3的8888端口 #iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8888 -j DNAT --to-destination 192.168.1.2:8888 #iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -d 192.168.1.2 -p tcp -m tcp --dport 8888 -j SNAT --to-source 192.168.1.3 #iptables -A INPUT -p tcp --dport 8888 -i eth0 -j ACCEPT (视情况而加) -Tip13 关闭"讨厌"的Linux按键Beep声 vi /etc/.inputrc 增加下面一行 set bell-style none -Tip14 开机进入图形/文本登陆方式 vi /etc/inittab id:x:initdefault: x=3:文本方式 x=5:图形方式 -Tip15 在GRUB中限制系统可使用的内存数量 限制Linux只能使用120MB内存 title Red Hat Linux (2.4.19) root (hd0,1) kernel /boot/vmlinuz-2.4.19 ro root=/dev/hda2 mem=120M initrd /boot/initrd-2.4.18-14.img -Tip16 如何查找某条命令的相关库文件 在Linux环境下通过ldd命令即可实现,在控制台执行: ldd /bin/ls 即可得到/bin/ls命令的相关库文件列表. -Tip17 只列子目录(文件) ls -F | grep /$ 你也可以在.bashrc(针对bash)中把该命令作成alias,以后只要敲入sub就可以实现只列子目录的功能. alias sub = “ls -F | grep /$” 同样,ls -l | grep ^-则是只列普通文件. -Tip18 计算目录下的文件及子目录 ls -al | wc -l -Tip19 RedHat 下显示彩色目录列表 ls -color 可以显示彩色目录列表,其中: 蓝色→目录 绿色→可执行文件 红色→压缩文件 浅蓝色→链接文件 灰色→其他文件 同样你还可以试试ls --color(比前面多-),看看两者的差别吧 -Tip20 列目录时显示中文文件名 在没有打补丁的Linux系统中,我们用ls列目录,发现中文文件名都成了?号.我们可以使用--show-control-chars命令选项来显示. ls --show-control-chars -Tip21 改变当前路径下所有目录和文件的所有权 chown -R owner[.group] * 也可以用find命令来实现: find . -exec chown owner[.group] {} ; -Tip22 改变所有子目录及文件的属性 在你要改变属性的目录下,输入命令: chmod -R 777 * 就可以改变下面所有子目录及文件的属性,不过使用这个命令的时候要特别小心,要是在根目录下打入这个命令,你所有文件的属性都将改变,这就会引起很大的安全性问题. -Tip22 使用nohup命令 如果你想进程在你退出系统后还能执行,可以使用nohup命令. 如: nohup tar cf /dev/tape /home & 你退出后再重新登录的话,使用ps命令会发现进程还在执行. -Tip23 重新启动 Ctrl+Alt+Del 或 init 6 或 shutdown -r now -Tip24 快速查找文件 查找文件可以用find,但最好是用locate.速度快,参数少. locate filename 它是在一个数据库里面查找.所以,要记得经常用updatedb命令更新数据库.一般地,我们是在crontab里面加一句,让机子在每天深夜更新数据库. 另外,快速查找命令文件,可以使用whereis. 例如: whereis rpm -Tip25 查找Linux命令 如果你想实现某种功能,但是不知道该使用什么命令.你可以试试apropos命令,它也许能帮你找到你想要的命令.例如: 你要“查找”文件,又不知道用什么命令,你可以敲入下面的命令: apropos search -Tip26 在同一个命令行上同时执行多条命令 用分号分隔.如编译一个源文件: #./configure ; make ; make install -Tip27 用gzip(gunzip)压缩(解压)同一目录下的多个文件 gzip * 或者 gunzip * -Tip28 在使用less或more时,直接启动vi 在less或者more中打入v键,会立即启动vi编辑器,可以对文件进行编辑. -Tip29 在使用mail中启动vi 如果你觉得用mail发送邮件编辑起来很不方便,你可以在正文的顶格输入~v,启动vi进行编辑,编辑完后退出vi,回到mail. -Tip30 观察文件大小变化 使用watch命令,可以反复执行命令.和ls配合,可以达到观察某文件大小变化的效果. watch ls -| file.name -Tip31 查找含特定字符串的文件 例如查找当前目录下含有"the string you want find..."字符串的文件: -Tip32 观看binary文件中的字符串 strings binaryfile -Tip33 重装Win 9x后lilo失效无法启动Linux 只须先用软盘启动Linux然后运行一次lilo即可.对于RedHat可以用命令mkbootdisk来制作启动盘,例如: mkbootdisk --device /dev/fd0 2.4.20 其中2.4.20是/lib/modules下的一个目录. -Tip34 去掉引导区内的lilo信息 安装lilo后如果硬盘数量或分区情况有改变的话将导致硬盘不能启动,这时只需用软盘启动DOS再运行fdisk/mbr即可. -Tip35 把DOS/Windows改为缺省操作系统 RedHat把Linux作为lilo缺省操作系统,即出现 boot: 提示符后直接回车启动Linux.如果想改为DOS/Windows,修改文件/etc/lilo.conf,把有关启动DOS的部分放在前面,再运行一次lilo即可.也可以在lilo.conf的配置文件前面加上 Default=dos 其中DOS是DOS/Windows的label -Tip36 如何使用.iso文件 许多Linux发行版本都有.iso的光盘镜像文件,可以用来刻录光盘.我们也可以在Linux系统下直接使用. mount -t iso9660 xxxxx.iso /any/path/if/u/like -o loop -Tip37 显示文件的类型 用命令 file 可以使你知道某个文件究竟是ELF格式的可执行文件,还是shell script文件或是其他的什么格式. file filename -Tip38 解压.tar.gz文件 xxxx.tar.gz文件使用tar带zxvf参数,可以一次解压开. tar zxvf xxxx.tar.gz -Tip39 后台运行程序 可以在程序后面加“&”符号,让程序在后台运行.例如: 你想用updatedb更新文件路径数据库,又不影响你其他的工作.可以: updatedb & -Tip40 强行退出 X 有时候在 X 里由于程序出错鼠标键盘都不起作用,这时候不用着急,因为在Linux下几乎不会像在Win 95里那样恶性死机,你只须同时按下Ctrl+Alt+BackSpace键就可以回到字符界面下了. -Tip41 压缩可执行文件 可以使用gzexe压缩可执行文件,压缩后的可执行文件仍然可以直接执行.使用本方法可以达到节省磁盘空间的目的(如果你真的需要的话). gzexe gawk -Tip42 处理文件名内含有特殊字符的文件 如果有一个文件名叫-file,如果想删除它,键入 rm -file 会显示invalid option,原来由于文件名的第一个字符为"-",Linux把文件名当做选项了,可以加--解决这个问题,如rm -- -file.如果是其他特殊字符的话可以在特殊字符前加一个\,或者用双引号把整个文件名括起来. -Tip43 快速进入目录 键入 cd ~ 可进入用户的home目录;键入 cd - 可进入上一个进入的目录. -Tip44 想全部删除以.开头的file或dir时你会如何干? Wrong-> rm -r /tmp/.* Correct-> rm -r /tmp/\.* -Tip45 修改网卡MAC地址 ifconfig eth0 down ifconfig eth0 hw ether 00:AA:BB:CCD:EE ifconfig eth0 up 上面的是临时性的你可以加入rc.local让它开机自动执行 -Tip46 查看网卡工作状态 #mii-tool -v eth0: no link product info: vendor 00:00:00, model 0 rev 0 basic mode: autonegotiation enabled basic status: no link capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD SIOCGMIIPHY on 'eth1' failed: Operation not supported -Tip47 如何解决sendmail和sm-client启动爆慢的问题! 造成sendmail和sm-client启动慢是因为解析的问题,解决方法将自己的主机名加入/etc/hosts中即可,例如我的主机名是linuxbox.localdomain则/etc/hosts中应该有一条 192.168.100.1 linuxbox.localdomain linuxbox <To Be Continued> 由 i_amok_cn在 08-10-2003 11:46最后编辑. _____________________________@ 怎样让一滴水不干涸---让他溶入大海 逃避不是解决问题的办法 php+mysql web space selling http://www.be10.com 引用回复 i_amok_cn 查看公开的个人资料 发送一个悄悄话给 i_amok_cn 给 i_amok_cn 发送Email 访问i_amok_cn的主页! 将 i_amok_cn 添加到你的好友名单中 查找 i_amok_cn 的更多帖子 查看 i_amok_cn 发表的精华贴 i_amok_cn i_amok_cn的头像 VIP 资 料: 注册日期: Mar 2002 帖子: 3,122 精华: 3 3 旧的 05-27-2003, 23:03 默认 i_amok_cn不在线 付上一条帖上面信息加蓝色标记的sed语法... hoho...在unix上处理文字真是帅呆了... 代码: sed -e "s/^-.*$/[color=blue]&[\/color]/g" tip>./new _____________________________@ 怎样让一滴水不干涸---让他溶入大海 逃避不是解决问题的办法 php+mysql web space selling http://www.be10.com 引用回复 i_amok_cn 查看公开的个人资料 发送一个悄悄话给 i_amok_cn 给 i_amok_cn 发送Email 访问i_amok_cn的主页! 将 i_amok_cn 添加到你的好友名单中 查找 i_amok_cn 的更多帖子 查看 i_amok_cn 发表的精华贴 lucida lucida的头像 核心会员 资 料: 注册日期: Sep 2001 来自: 梦想开始的地方 帖子: 4,178 精华: 1 4 旧的 05-27-2003, 23:15 默认 使用MSN给 lucida 发送一个信息 lucida不在线 你的计划更新速度如何? 如果快,就置顶。。 如果慢,就直接进精华区。。 _____________________________@ 一起见证传说的开始 引用回复 lucida 查看公开的个人资料 发送一个悄悄话给 lucida 将 lucida 添加到你的好友名单中 查找 lucida 的更多帖子 查看 lucida 发表的精华贴 i_amok_cn i_amok_cn的头像 VIP 资 料: 注册日期: Mar 2002 帖子: 3,122 精华: 3 5 旧的 05-27-2003, 23:19 默认 i_amok_cn不在线 我的目的不是让我一个人来更新...每个人都可以更新....帖个自己的帖子..不断编辑自己的帖子就可以了...:P 建议永久置顶...因为每个人的忘性很大...所以需要有个工具类的帖子来随时查看... _____________________________@ 怎样让一滴水不干涸---让他溶入大海 逃避不是解决问题的办法 php+mysql web space selling http://www.be10.com 引用回复 i_amok_cn 查看公开的个人资料 发送一个悄悄话给 i_amok_cn 给 i_amok_cn 发送Email 访问i_amok_cn的主页! 将 i_amok_cn 添加到你的好友名单中 查找 i_amok_cn 的更多帖子 查看 i_amok_cn 发表的精华贴 lucida lucida的头像 核心会员 资 料: 注册日期: Sep 2001 来自: 梦想开始的地方 帖子: 4,178 精华: 1 6 旧的 05-27-2003, 23:59 默认 使用MSN给 lucida 发送一个信息 lucida不在线 那就置顶吧 希望大家积极跟贴 一些小要求 1. 不在乎深浅(这个本身也是相对的),只要你认为有用就行 2. 保证命令的正确 3. 格式/编号什么的最好能连贯 感谢/有收获之类的贴子就不要跟了。 谢谢 _____________________________@ 一起见证传说的开始 引用回复 lucida 查看公开的个人资料 发送一个悄悄话给 lucida 将 lucida 添加到你的好友名单中 查找 lucida 的更多帖子 查看 lucida 发表的精华贴 henryluo henryluo的头像 热心会员 资 料: 注册日期: Aug 2002 帖子: 1,224 精华: 0 7 旧的 05-29-2003, 23:22 默认 使用ICQ给 henryluo 发送一个信息 使用MSN给 henryluo 发送一个信息 henryluo不在线 我是个初学者,也把自已的笔记上的加一下吧 (如有错误请PM我,我来改正) -Tip 将一个服务加到自启动运行等级中 chkconfig --add httpd chkconfig --level 3 httpd on 就是把httpd加到chkconfig管理中,并加在第三层启动 -Tip 在终端下调音量 aumix -Tip 将man文件导出为文件并去掉控制符 man command | col -b >col.txt col -b就是去掉控制符的 -Tip 查看文件夹大小 du ./ --max-depth=1 --max-depth=1是控制显示深度 -Tip 光驱弹出,弹入 eject -r 弹出 eject -t 弹入 -Tip 显示最近登入用户 last 以上命令是redhat8下有用,
2008/12/13 21:57
|
|
![]() |
Re: linux 操作技巧.(不断增加) |
||
---|---|---|
新进会员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
注册会员 帖子:
5
等级: 1; EXP: 34
HP : 0 / 8 MP : 1 / 1276 ![]() |
Linux必学60个命令文件处理
Linux系统信息存放在文件里,文件与普通的公务文件类似。每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如文件的用户、文件的大小等。文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容。 Linux文件系统具有良好的结构,系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令。 file 1.作用 file通过探测文件内容判断文件类型,使用权限是所有用户。 2.格式 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出。 -z:探测压缩过的文件类型。 -L:允许符合连接。 -f name:从文件namefile中读取要分析的文件名列表。 4.简单说明 使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。 5.应用实例 如果我们看到一个没有后缀的文件grap,可以使用下面命令: $ file grap grap: English text 此时系统显示这是一个英文文本文件。需要说明的是,file命令不能探测包括图形、音频、视频等多媒体文件类型。 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似,它的使用权限是所有用户。 2.格式 mkdir [options] 目录名 3.[options]主要参数 -m, --mode=模式:设定权限<模式>,与chmod类似。 -p, --parents:需要时创建上层目录;如果目录早已存在,则不当作错误。 -v, --verbose:每次创建新目录都显示信息。 --version:显示版本信息后离开。 4.应用实例 在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”。假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令: $ mkdir -m 777 tsk grep 1.作用 grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数。 -I:不区分大小写(只适用于单字符)。 -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及行号。 -s:不显示不存在或无匹配文本的错误信息。 -v:显示不包含匹配文本的所有行。 pattern正则表达式主要参数: \:忽略正则表达式中特殊字符的原有含义。 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行。 \<:从匹配正则表达式的行开始。 \>:到匹配正则表达式的行结束。 [ ]:单个字符,如[A]即A符合要求 。 [ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。 。:所有的单个字符。 * :有字符,长度可以为0。 正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符“*”代表任意字符类似。在Linux系统上,正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操作和其它功能。 4.应用实例 查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址。有时IP地址会超过2000个。如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分,只知到有两个句点,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]\{3 \}\.[0-0\{3\}\。含义是任意数字出现3次,后跟句点,接着是任意数字出现3次,后跟句点。 $grep '[0-9 ]\{3 \}\.[0-0\{3\}\' ipfile 补充说明,grep家族还包括fgrep和egrep。fgrep是fix grep,允许查找字符串而不是一个模式;egrep是扩展grep,支持基本及扩展的正则表达式,但不支持\q模式范围的应用及与之相对应的一些更加规范的模式。 dd 1.作用 dd命令用来复制文件,并根据参数将数据转换和格式化。 2.格式 dd [options] 3.[opitions]主要参数 bs=字节:强迫 ibs=<字节>及obs=<字节>。 cbs=字节:每次转换指定的<字节>。 conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。 count=块数目:只复制指定<块数目>的输入数据。 ibs=字节:每次读取指定的<字节>。 if=文件:读取<文件>内容,而非标准输入的数据。 obs=字节:每次写入指定的<字节>。 of=文件:将数据写入<文件>,而不在标准输出显示。 seek=块数目:先略过以obs为单位的指定<块数目>的输出数据。 skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。 4.应用实例 dd命令常常用来制作Linux启动盘。先找一个可引导内核,令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘: $ rdev vmlinuz /dev/hda $dd if=vmlinuz of=/dev/fd0 上面代码说明,使用rdev命令将可引导内核vmlinuz中的根设备指向/dev/hda,请把“hda”换成自己的根分区,接下来用dd命令将该内核写入软盘。 find 1.作用 find命令的作用是在目录中搜索文件,它的使用权限是所有用户。 2.格式 find [path][options][expression] path指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。 3.主要参数 [options]参数: -depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容。 -maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数,如果level是0的话表示仅在当前目录中查找。 -mindepth levels:表示至少查找到开始目录的第level层子目录。 -mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找。 -version:打印版本。 [expression]是匹配表达式,是find命令接受的表达式,find命令的所有操作都是针对表达式的。它的参数非常多,这里只介绍一些常用的参数。 ―name:支持统配符*和?。 -atime n:搜索在过去n天读取过的文件。 -ctime n:搜索在过去n天修改过的文件。 -group grpoupname:搜索所有组为grpoupname的文件。 -user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。 -size n:搜索文件大小是n个block的文件。 -print:输出搜索结果,并且打印。 4.应用技巧 find命令查找文件的几种方法: (1)根据文件名查找 例如,我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令: find / -name lilo.conf find命令后的“/”表示搜索整个硬盘。 (2)快速查找文件 根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中,那么只要在这个目录中往下寻找就能节省很多时间。比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内,此时可以使用下面命令: find /etc -name smb.conf 这样,使用“快速查找文件”方式可以缩短时间。 (3)根据部分文件名查找方法 有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含有这4个字符的文件可以输入下面命令: find / -name '*abvd*' 输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比如abvdrmyz等符合条件的文件都能显示出来。 (4) 使用混合查找方式查找文件 find命令可以使用混合查找的方法,例如,我们想在/etc目录中查找大于500000字节,并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。 find /etc -size +500000c -and -mtime +1 mv 1.作用 mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中,它的使用权限是所有用户。该命令如同DOS命令中的ren和move的组合。 2.格式 mv[options] 源文件或目录 目标文件或目录 3.[options]主要参数 -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可以避免误覆盖文件。 -f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。 4.应用实例 (1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中: $ mv /usr/cbu/ * . (2)将文件cjh.txt重命名为wjz.txt: $ mv cjh.txt wjz.txt ls 1.作用 ls命令用于显示目录内容,类似DOS下的dir命令,它的使用权限是所有用户。 2.格式 ls [options][filename] 3.options主要参数 -a, --all:不隐藏任何以“.” 字符开始的项目。 -A, --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。 --author:印出每个文件著作者。 -b, --escape:以八进制溢出序列表示不可打印的字符。 --block-size=大小:块以指定<大小>的字节为单位。 -B, --ignore-backups:不列出任何以 ~ 字符结束的项目。 -f:不进行排序,-aU参数生效,-lst参数失效。 -F, --classify:加上文件类型的指示符号 (*/=@| 其中一个)。 -g:like -l, but do not list owner。 -G, --no-group:inhibit display of group information。 -i, --inode:列出每个文件的inode号。 -I, --ignore=样式:不印出任何符合Shell万用字符<样式>的项目。 -k:即--block-size=1K。 -l:使用较长格式列出信息。 -L, --dereference:当显示符号链接的文件信息时,显示符号链接所指示的对象,而并非符号链接本身的信息。 -m:所有项目以逗号分隔,并填满整行行宽。 -n, --numeric-uid-gid:类似-l,但列出UID及GID号。 -N, --literal:列出未经处理的项目名称,例如不特别处理控制字符。 -p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。 -Q, --quote-name:将项目名称括上双引号。 -r, --reverse:依相反次序排列。 -R, --recursive:同时列出所有子目录层。 -s, --size:以块大小为序。 4.应用举例 ls命令是Linux系统使用频率最多的命令,它的参数也是Linux命令中最多的。使用ls命令时会有几种不同的颜色,其中蓝色表示是目录,绿色表示是可执行文件,红色表示是压缩文件,浅蓝色表示是链接文件,加粗的黑色表示符号链接,灰色表示是其它格式文件。ls最常使用的是ls- l,见图1所示。 图1 使用ls-l命令 文件类型开头是由10个字符构成的字符串。其中第一个字符表示文件类型,它可以是下述类型之一:-(普通文件)、d(目录)、l(符号链接)、b(块设备文件)、c(字符设备文件)。后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读(r)、写(w)和执行权限(x)。对于目录,表示进入权限。s表示当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组 ID)。t表示设置标志位(留在内存,不被换出)。如果该文件是目录,那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文件,那么在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。接着显示的是文件大小、生成时间、文件或命令名称。 diff 1.作用 diff命令用于两个文件之间的比较,并指出两者的不同,它的使用权限是所有用户。 2.格式 diff [options] 源文件 目标文件 3.[options]主要参数 -a:将所有文件当作文本文件来处理。 -b:忽略空格造成的不同。 -B:忽略空行造成的不同。 -c:使用纲要输出格式。 -H:利用试探法加速对大文件的搜索。 -I:忽略大小写的变化。 -n --rcs:输出RCS格式。 cmp 1.作用 cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户。 2.格式 cmp[options] 文件名 3.[options]主要参数 -l: 将字节以十进制的方式输出,并方便将两个文件中不同的以八进制的方式输出。 cat 1.作用 cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户。 2.格式 cat [options] 文件1 文件2…… 3.[options]主要参数 -n:由第一行开始对所有输出的行数编号。 -b:和-n相似,只不过对于空白行不编号。 -s:当遇到有连续两行以上的空白行时,就代换为一行的空白行。 4.应用举例 (1)cat命令一个最简单的用处是显示文本文件的内容。例如,我们想在命令行看一下README文件的内容,可以使用命令: $ cat README (2)有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件,并将它们作为一个单独的文件打印到它的输出。例如,把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中: $ cat README INSTALL File1 (3)cat还有一个重要的功能就是可以对行进行编号,见图2所示。这种功能对于程序文档的编制,以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。 图2 使用cat命令/etc/named.conf文件进行编号 对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行编号)两个参数: $ cat -b /etc/named.conf ln 1.作用 ln命令用来在文件之间创建链接,它的使用权限是所有用户。 2.格式 ln [options] 源文件 [链接名] 3.参数 -f:链结时先将源文件删除。 -d:允许系统管理者硬链结自己的目录。 -s:进行软链结(Symbolic Link)。 -b:将在链结时会被覆盖或删除的文件进行备份。 链接有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。 硬连接指通过索引节点来进行的连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件才会被真正删除。 与硬连接相对应,Lnux系统中还存在另一种连接,称为符号连接(Symbilc Link),也叫软连接。软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。 动手联系 上面我们介绍了Linux文件处理命令,下面介绍几个实例,大家可以动手练习一下刚才讲过的命令。 1.利用符号链接快速访问关键目录 符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用,但由于Linux的文件和目录结构等原因,这个文件或目录在很深的子目录中。比如,Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中,并且不想每次都要从主目录进入这样一个长的路径之中(实际上,这个路径也非常不容易记忆)。 为了解决这个问题,可以在主目录中创建一个符号链接,这样在需要进入该目录时,只需进入这个链接即可。 为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录,在主目录下可以使用以下命令: $ ln -s /usr/local/httpd/htdocs gg 这样每次进入gg目录就可访问Web服务器的文档,以后如果不再访问Web服务器的文档时,删除gg即可,而真正的Web服务器的文档并没有删除。 2.使用dd命令将init.rd格式的root.ram内容导入内存 dd if=/dev/fd0 of=floppy.fd dd if=root.ram of=/dev/ram0 # 3.grep命令系统调用 grep是Linux/Unix中使用最广泛的命令之一,许多Linux系统内部都可以调用它。 (1)如果要查询目录列表中的目录,方法如下: $ ls -l | grep '∧d' (2)如果在一个目录中查询不包含目录的所有文件,方法如下: $ ls -l | grep '∧[∧d]' (3)用find命令调用grep,如所有C源代码中的“Chinput”,方法如下: $find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print #########################################33 http://tech.ccidnet.com/pub/article/c1060_a102340_p1.html 1.口令安全 UNIX系统中的/etc/passwd文件含有全部系统需要知道的关于每个用户的信息(加密后的口令也可能存于/etc/shadow文件中)。 /etc/passwd中包含有用户的登录名,经过加密的口令,用户号,用户组号,用户注释,用户主目录和用户所用的shell程序。其中用户号(UID)和用户组号(GID) 用于UNIX系统唯一地标识用户和同组用户及用户的访问权限。 /etc/passwd中存放的加密的口令用于用户登录时输入的口令经计算后相比较,符合则允许登录,否则拒绝用户登录。用户可用passwd命令修改自己的口令,不能直接修改/etc/passwd中的口令部份。 一个好的口令应当至少有6个字符长,不要取用个人信息(如生日,名字,反向拼写的登录名,房间中可见的东西),普通的英语单词也不好(因为可用字典攻击法),口令中最好有一些非字母(如数字,标点符号,控制字符等),还要好记一些, 不能写在纸上或计算机中的文件中,选择口令的一个好方法是将两个不相关的词用一个数字或控制字符相连,并截断为8个字符。当然,如果你能记住8位乱码自然更好。 不应使用同一个口令在不同机器中使用,特别是在不同级别的用户上使用同一口令,会引起全盘崩溃。用户应定期改变口令,至少6个月要改变一次,系统管理员可以强制用户定期做口令修改。 为防止眼明手快的人窃取口令,在输入口令时应确认无人在身边。 2.文件许可权 文件属性决定了文件的被访问权限,即谁能存取或执行该文件。用ls -l可以列出详细的文件信息,如: -rwxrwxrwx 1 pat cs440 70 Jul 28 21:12 zombin 包括了文件许可,文件联结数,文件所有者名,文件相关组名,文件长度,上次存取日期和文件名。 其中文件许可分为四部分: -:表示文件类型。 第一个rwx:表示文件属主的访问权限。 第二个rwx:表示文件同组用户的访问权限。 第三个rwx:表示其他用户的访问权限。 若某种许可被限制则相应的字母换为-。 在许可权限的执行许可位置上,可能是其它字母,s,S,t,T。s和S可出现在所有者和同组用户许可模式位置上,与特殊的许可有关,后面将要讨论,t和T可出现在其他用户的许可模式位置上,与"粘贴位"有关而与安全无关。小写字母(x,s,t) 表示执行许可为允许,负号或大写字母(-,S或T)表示执行许可为不允许。 改变许可方式可使用chmod命令,并以新许可方式和该文件名为参数。新许可方式以3位8进制数给出,r为4,w为2,x为1。如rwxr-xr--为754。 chmod也有其它方式的参数可直接对某组参数修改,在此不再多说,详见UNIX 系统的联机手册。 文件许可权可用于防止偶然性地重写或删除一个重要文件(即使是属主自己)! 改变文件的属主和组名可用chown和chgrp,但修改后原属主和组员就无法修改回来了。 3.目录许可 在UNIX系统中,目录也是一个文件,用ls -l列出时,目录文件的属性前面带一个d,目录许可也类似于文件许可,用ls列目录要有读许可,在目录中增删文件要有写许可,进入目录或将该目录作路径分量时要有执行许可,故要使用任一个文件,必须有该文件及找到该文件的路径上所有目录分量的相应许可。仅当要打开一个文件时,文件的许可才开始起作用,而rm,mv只要有目录的搜索和写许可, 不需文件的许可,这一点应注意。 4.umask命令 umask设置用户文件和目录的文件创建缺省屏蔽值,若将此命令放入.profile文件,就可控制该用户后续所建文件的存取许可。umask命令与chmod命令的作用正好相反,它告诉系统在创建文件时不给予什么存取许可。 5.设置用户ID和同组用户ID许可 用户ID许可(SUID)设置和同组用户ID许可(SGID)可给予可执行的目标文件 (只有可执行文件才有意义)当一个进程执行时就被赋于4个编号,以标识该进程隶属于谁,分别为实际和有效的UID,实际和有效的GID。有效的UID和GID一般和实际的UID和GID相同,有效的UID和GID用于系统确定该进程对于文件的存取许可。而设置可执行文件的SUID许可将改变上述情况,当设置了SUID时,进程的有效UID为该可执行文件的所有者的有效UID,而不是执行该程序的用户的有效UID,因此,由该程序创建的都有与该程序所有者相同的存取许可。这样,程序的所有者将可通过程序的控制在有限的范围内向用户发表不允许被公众访问的信息。 同样,SGID是设置有效GID。 用chmod u+s 文件名和chmod u-s文件名来设置和取消SUID设置。用chmod g+s 文件名和chmod g-s文件名来设置和取消SGID设置。 当文件设置了SUID和SGID后,chown和chgrp命令将全部取消这些许可。 6.cp mv ln和cpio命令 cp拷贝文件时,若目的文件不存在则将同时拷贝源文件的存取许可,包括SUID 和SGID许可。新拷贝的文件属拷贝的用户所有,故拷贝另人的文件时应小心,不要被其他用户的SUID程序破坏自己的文件安全。 mv移文件时,新移的文件存取许可与原文件相同,mv仅改变文件名。只要用户有目录的写和搜索许可,就可移走该目录中某人的SUID程序且不改变其存取许可。若目录许可设置不正确,则用户的SUID程序可被移到一个他不能修改和删除的目录中,将出现安全漏洞。 ln为现有文件建立一个链,即建立一个引用同一文件的新名字。如目的文件已经存在,则该文件被删除而代之以新的链,或存在的目的文件不允许用户写它,则请求用户确认是否删除该文件,只允许在同一文件系统内建链。若要删除一个 SUID文件,就要确认文件的链接数,只有一个链才能确保该文件被删除。若SUID文件已有多个链,一种方法是改变其存取许可方式,将同时修改所有链的存取许可,也可以chmod 000 文件名,不仅取消了文件的SUID和SGID许可,而且也取消了文件的全部链。要想找到谁与自己的SUID程序建立了链,不要立刻删除该程序,系统管理员可用ncheck命令找到该程序的其它链。 cpio命令用于将目录结构拷贝到一个普通文件中,而后可再用cpio命令将该普通文件转成目录结构。用-i选项时,cpio从标准输入设备读文件和目录名表,并将其内容按档案格式拷贝到标准输出设备,使用-o选项时,cpio从标准输入设备读取先已建好的档案,重建目录结构。cpio命令常用以下命令做一完整的目录系统档案: find fromdir -print cpio -o > archive 根据档案文件重建一个目录结构命令为: cpio -id < archive cpio的安全约定如下: (1)档案文件存放每个文件的信息,包括文件所有者,小组用户,最后修改时间,最后存取时间,文件存取许可方式。 *根据档案建立的文件保持存放于档案中的存取许可方式。 *从档案中提取的每个文件的所有者和小组用户设置给运行cpio -i命令的用户,而不是设置给档案中指出的所有者和小组用户。 *当运行cpio -i命令的用户是root时,被建立的文件的所有者和小组用户是档案文件所指出的。 *档案中的SUID/SGID文件被重建时,保持SUID和SGID许可,如果重建文件的用户不是root,SUID/SGID许可是档案文件指出的用户/小组的许可。 (2)现存文件与cpio档案中的文件同名时,若现存文件比档案中的文件更新,这些文件将不被重写。 (3)如果用修改选项U,则同名的现存的文件将被重写。可能会发生一件很奇怪的事:如被重写的文件原与另一个文件建了链,文件被重写后链并不断开,换言之,该文件的链将保持,因此,该文件的所有链实际指向从档案中提取出来的文件,运行cpio无条件地重写现存文件以及改变链的指向。 (4)cpio档案中可含的全路径名或父目录名给出的文件。 7.su和newgrp命令 (1)su命令:可不必注销户头而将另一用户又登录进入系统,作为另一用户工作。它将启动一新的shell并将有效和实际的UID和GID设置给另一用户。因此必须严格将root口令保密。 (2)newgrp命令:与su相似,用于修改当前所处的组名。 8.文件加密 crypt命令可提供给用户以加密文件,使用一个关键词将标准输入的信息编码为不可读的杂乱字符串,送到标准输出设备。再次使用此命令,用同一关键词作用于加密后的文件,可恢复文件内容。 一般来说,在文件加密后,应删除原始文件,只留下加密后的版本,且不能忘记加密关键词。 在vi中一般都有加密功能,用vi -x命令可编辑加密后的文件。关于加密关键词的选取规则与口令的选取规则相同。 由于crypt程序可能被做成特洛依木马,故不宜用口令做为关键词。最好在加密前用pack或compress命令对文件进行压缩后再加密。 9.其它安全问题 (1)用户的.profile文件 由于用户的HOME目录下的.profile文件在用户登录时就被执行。若该文件对其他人是可写的则系统的任何用户都能修改此文件,使其按自己的要求工作。这样可能使得其他用户具有该用户相同的权限。 (2)ls -a 此命令用于列出当前目录中的全部文件,包括文件名以开头的文件,查看所有文件的存取许可方式和文件所有者,任何不属于自己但存在于自己的目录中的文件都应怀疑和追究。 (3).exrc文件 为编辑程序的初始化文件,使用编辑文件后,首先查找$HOME/.exrc文件和./.exrc文件,若该文件是在$HOME目录中找到,则可像.profile一样控制它的存取方式,若在一个自己不能控制的目录中,运行编辑程序,则可能运行其他人的.exrc文件,或许该.exrc文件存在那里正是为了损害他人的文件安全。为了保证所编辑文件的安全,最好不要在不属于自己或其他人可写的目录中运行任何编辑程序。 (4)暂存文件和目录 在UNIX系统中暂存目录为/tmp和/usr/tmp,对于程序员和许多系统命令都使用它们,如果用这些目录存放暂存文件,别的用户可能会破坏这些文件。 使用暂存文件最好将文件屏蔽值定义为007,但最保险的方法是建立自己的暂存文件和目录:$HOME/tmp,不要将重要文件存放于公共的暂存目录。 (5)UUCP和其它网络 UUCP命令用于将文件从一个UNIX系统传送到另一个UNIX系统,通过UUCP传送的文件通常存于/usr/spool/uucppublic/login目录,login是用户的登录名,该目录存取许可为777,通过网络传输并存放于此目录的文件属于 UUCP所有,文件存取许可为666和777,用户应当将通过UUCP传送的文件加密,并尽快移到自己的目录中。其它网络将文件传送到用户HOME目录下的 rjc目录中。该目录应对其他人是可写可搜索的,但不必是可读的,因而用户的rjc目录的存取许可方式应为733,允许程序在其中建立文件。同样,传送的文件也应加密并尽快移到自己的目录中。 (6)特络依木马 在UNIX系统安全中,用特络依木马来代表一种程序,这种程序在完成某种具有明显意图的功能时,还破坏用户的安全。如果PATH设置为先搜索系统目录,则受特络依木马的攻击会大大减少。如模似的crypt程序。 (7)诱骗 类似于特络依木马,模似一些东西使用户泄漏一些信息,不同的是,它由某人执行,等待无警觉的用户来上当。如模似的login。 (8)计算机病毒 计算机病毒通过把其它程序变成病毒从而传染系统的,可以迅速地扩散,特别是系统管理员的粗心大意,作为root运行一个被感染的程序时。实验表明,一个病毒可在一个小时内(平均少于30分钟)取得root权限。 9)要离开自己已登录的终端 除非能对终端上锁,否则一定要注销户头。 (10)智能终端 由于智能终端有send和enter换码序列,告诉终端送当前行给系统,就像是用户敲入的一样。这是一种危险的能力,其他人可用write命令发送信息给本用户终端,信息中如含有以下的换码序列: 移光标到新行(换行) 在屏幕上显示"rm -r *" 将该行送给系统 后果大家可以想象。 禁止其他用户发送信息的方法是使用mesg命令,mesg n不允许其他用户发信息,mesg y允许其他用户发信息。即使如此仍是有换码序列的问题存在,任何一个用户用mail命令发送同样一组换码序列,不同的要用!rm -r *替 换rm -r *.mail将以!开头的行解释为一条shell命令,启动shell,由shell 解释该行的其它部分,这被称为shell换码。为避免mail命令发送换码序列到自己的终端,可建立一个过滤程序,在读mail文件之前先运行过滤程序, 对mail文件进行处理: myname="$LOGNAME"; tr -d[01-07][-13-37]>$HOME/mailbox; > /usr/mail/$myname; mail -f $HOME/mailbox 其中tr将标准输入的字符转换手写到标准输出中。这只是一个简单的思路, 从原则上来说,此程序应为一C程序,以避免破坏正发送到的文件,可用锁文件方式实现。 (11)断开与系统的联接 用户应在看到系统确认用户登录注销后再离开以免在用户未注销时由他人潜入。 (12)cu命令 该命令使用户能从一个UNIX系统登录到另一个UNIX系统,此时,在远地系统中注销用户后还必须输入"~"后回车,以断开cu和远地系统的联接。 cu还有两个安全问题: *如本机安全性弱于远地机,不提倡用cu去登录远地机,以免由于本地机的不安全而影响较安全的远地机。 *由于cu的老版本处理"~"的方法不完善,从安全性强的系统调用安全性弱的系统时,会使弱系统的用户使用强系统用户的cu传送强系统的/etc/passwd文件,除非确信正在使用的cu是正确版本,否则不要调用弱系统。 10.保持户头安全的要点 (1)保持口令的安全 *不要将口令写下来。 *不要将口令存于终端功能键或MODEM的字符串存储器中。 *不要选取显而易见的信息作口令。 *不要让别人知道。 *不要交替使用两个口令。 *不要在不同系统上使用同一口令。 *不要让人看见自己在输入口令。 (2)不要让自己的文件或目录可被他人写。 *如果不信任本组用户,umask设置为022。 *确保自己的.profile除自己外对他人都不可读写。 *暂存目录最好不用于存放重要文件。 *确保HOME目录对任何人不可写。 *uucp传输的文件应加密,并尽快私人化。 (3)若不想要其他用户读自己的文件或目录,就要使自己的文件和目录不允许任何人读。 *umask设置为006/007。 *若不允许同组用户存取自己的文件和目录,umask设置为077。 *暂存文件按当前umask设置,存放重要数据到暂存文件的程序,就被写成能确保暂存文件对其他用户不可读。 *确保HOME目录对每个用户不可读。 (4)不要写SUID/SGID程序。 (5)小心地拷贝和移文件。 *cp拷贝文件时,记住目的文件的许可方式将和文件相同,包括SUID/SGID许可在内,如目的文件已存在,则目的文件的存取许可和所有者均不变。 *mv移文件时,记住目的文件的许可方式将和文件相同,包括SUID/SGID许可 在内,若在同一文件系统内移文件,目的文件的所有者和小组都不变,否则,目的文件的所有者和小组将设置成本用户的有效UID和GID。 *小心使用cpio命令,它能复盖不在本用户当前目录结构中的文件,可用t选项首先列出要被拷贝的文件。 (6)删除一个SUID/SGID程序时,先检查该程序的链接数,如有多个链,则将存取许可方式改为000,然后再删除该程序,或先写空该程序再删除,也可将该程序的i结点号给系统管理员去查找其他链。 (7)用crypt加密不愿让任何用户(包括超级用户)看的文件。 *不要将关键词做为命令变量。 *用ed -x或vi -x编辑加密文件。 (8)除了信任的用户外,不要运行其他用户的程序。 (9)在自己的PATH中,将系统目录放在前面。 (10)不要离开自己登录的终端。 (11)若有智能终端,当心来自其他用户,包括write命令,mail命令和其他用户文件的信息中有换码序列。 (12)用CTRL+D或exit退出后,在断开与系统的联接前等待看到login:提示。 (13)注意cu版本。 *不要用cu调用安全性更强的系统。 *除非确信cu不会被诱骗去发送文件,否则不要用cu调用安全性较弱的系统。
2008/12/13 21:57
|
|
![]() |
Re: linux 操作技巧.(不断增加) |
||
---|---|---|
新进会员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
注册会员 帖子:
5
等级: 1; EXP: 34
HP : 0 / 8 MP : 1 / 1276 ![]() |
linux技巧33条(转载)
主题: [转载] linux技巧33条(转载) (转寄) 发信人: tian.bbs@bbs.tju.edu.cn.no.spam ( 专 ) 新闻组: cn.bbs.comp.linux 日期: 05 Jul 2004 11:37:30 GMT [1;37m【 以下文字转载自 [32mtian [37m的信箱 】 【 原文由[32m tyxin@smth.edu.cn[37m 所发表 】[m 发信人: angshan (流星雨), 信区: SS_SAST 标 题: linux技巧33条(转载) 发信站: BBS 水木清华站 (Fri May 17 12:28:14 2002) 1:HOST的乐趣: Host能够用来查询域名,然而它可以得到更多的信息。host -t mx l inux.com可以查询出Linux.com的MX记录,以及处理Mail的Host的名字。Host -l linux .com会返回所有注册在linux.com下的域名。host -a linux.com则会显示这个主机的所 有域名信息。 2:找到命令需要的文件,也许你希望搞清楚一个命令它到底使用到了什么其他相关文件 和命令?试试ldd就可以了。如ldd traceroute,返回结果会是libc.so.6,lid-linux.s o.2 3:定时!定时!你希望定时处理吗?你肯定希望能够让你轻松一些!crontab可以听候 您的指示。命令行中输入:crontab -e这进入文本编辑器,再在其中输入0 5 * * * wg et -t3 -I/home/tom/URLs -N。这样每天早上5点就会运行这个wget命令。前五个是时间 参数:分 时 日 月 星期几。你可以 0 5 * * 6,0 command line here,这样就在每个 星期六和星期天5am运行。你需要man 5 crontab来得到更为详细的解释。随便说一下, wget是一个取web页面的小程序。 console顶部显示现在时间:在/etc/bashrc或~/.bas hrc中加入环境变量PROMPT_COMMAND。export PROMPT_COMMAND=echo -ne "33733[2;999 r33[1;1H33[00;44m33[K"`date`"33[00m338" 4:使用多达23个的虚拟终端(VT),假设你现在有6个,仿照/etc/inittab种的文件, 加入 8:234:respawn:/sbin/getty 38400 tty8 24:234:respawn:/sbin/getty 38400 tty24 要跳过VT7,因为X使用这个终端。然后telinit q以重新加载配置文件。使用左Alt+Fn在 1-6和8-12件切换,使用右Alt+Fn键在13-24之间切换。 5:Console切换:左Alt-方向键,循环切换console。效果和Alt+Fn一样。 6:简单的进行Dos转Unix:如果你的文本文件中每行结尾都有讨厌的Ctrl-M的话,使用 这句命令能够快速的解决问题 sed s/^M// filename > newfilename 7:快速建立MP3播放列表:find /mnt/cdrom -name *.mp3 -print >> cd1.play.list. 这样就会把CDRom中的所有MP3文件建立一个名为cd1.play.list的文件。然后使用xmms 或 x11amp就能进行播放了。 8:/proc中的重要信息 cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx) cat /proc/interrupts - 中断 cat /proc/ioports - 设备IO端口 cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size) cat /proc/partitions - 所有设备的所有分区 cat /proc/pci - PCI设备的信息 cat /proc/swaps - 所有Swap分区的信息 cat /proc/version - Linux的版本号 9:真正的Console界面:说实话无论是KDE和GNome我都没什么喜欢的,毕竟受Windows熏 陶了这么长时间了。但是在Console下其实才是真正的Cool界面。使用SVGATextMode可以 让你的命令行界面达到132x60(标准是80x25)。我的486(Trident9440)上使用的是132 x43,那密密麻麻的字符真象Hollywood的几年前的电影(现在连电影里都是Windows了) 给人感觉神秘兮兮的。配置文件在/etc/TextConfig中,不过如果你的XWindow都无法正 常显示的话,那估计这也用不了了(毕竟是好几年前的东西了)。 10:让你的硬盘飞起来: Linux下也可以使用32Bit I/O和DMA。使用/sbin/hdparm -c1 /dev/hda(hdb,hdc..)打开32Bit传输模式,使用命令 /sbin/hdparm -d1 /dev/hda(hdb ,hdc...) 打开DMA。最后使用/sbin/hdparm -k1 /dev/hda 以使硬盘在Reset之后保持上 面的设定,这么一来,硬盘读写速度应该可以提高一倍以上。 11:微调你的Ext2: Linux下的命令tune2fs可以设定最大Mount次数(因为Linux即时在m ounted clean状况下,达到一定的mount次数后,会强制e2fsck对于我这样的每天开关机 的来说很不方便),tune2fs命令的其他用途请参见man。 12:禁止在Netscape中显示闪烁(Blink)Tag: ~/.Xdefaults中修改 Netscape*blinki ngEnabled: False 之后运行 xrdb -Load ~/.Xdefaults 13:随时改变XTerm的字体大小:shift加+/- 14:Ext2的文件属性: lsattr列出属性,chattr可以改变属性。如 chattr +A filenam e 则系统不会修改其last access time属性;chattr +i 则可以避免被rm掉。 15:SIS6326显卡的配置:在Device中加入:DacSpeed 110 Option "no_bitblt" Optio n "sw_cursor" 16:使用strings可以把字符串从Binary文件中分离出来 17:你大概已经习惯了使用Top来观察系统使用情况,那就使一使使用Vmstat 1来看看c pu的空闲程度(显示结果的最后一项)。 18:使用Watch命令,反复执行特定命令,如"watch ls -l /tmp/blah",将一直观察文 件的大小改变。 19:使用pppstats得到ppp连接的数据。 20:显示远程机器的NFS: showmount -e hostname 21:使用autofs免去你每次mount和umount之苦,再RedHat6.0中带了autofs的rpm,只要安 装好之后便可以享受自动加载文件系统的方便。 在/misc目录下,创建一个cd目录,如 果使用其自带的auto.misc和auto.master的话,马上就可以实现自动加载功能了。 22:在Bash Shell中,可以用!重复上几次输入过的命令,这样就可以省去往上滚动的 麻烦了。使用ctl+R可以互动的检索以前使用过的命令行。 23:使用cd -在上两个cd /directory/操作中切换。如先是cd /home/foo接着是 cd /h ome/maison则接着打cd - 会进入 /home/foo再打cd - 会进入 /home/maison。 24:Bash中的快捷键:ESCAPE-B 会向前条一个单词,Ctrl-K会删除从光标到行末所有字 符。 25:在PS命令中使用grep,例:ps auxw | grep gpm 会列出所有含有gpm字符的进程。 26:在同一个命令行上同时执行多条命令:用分号分隔。如编译一个源文件:type ./c onfigure ; make ; make install 。之后你就可以去散步了(不要在电脑前花费了太多 时间了,生活中还有很多美好的东西。) 27:把运行结果输出到一个文件中,如 ls -l > foo.file。 28:使用Top命令监视系统状况,内存使用情况,开机时间,进程状况,每个用户的使用 情况等等。使用S命令可以改变其刷新的时间:如.5将会使其每半秒钟更新一次。 29:同时Unzip多个文件,unzip *不正确,而是unzip "*"。 30:建立符号连结,这大概是最有用的功能了,ln -s real-file symbolic-file,无论 是设备,文档还是脚本程序。 31:改变显示的单位,如du -hm 将以M为单位输出结果,同样的du -hk则以K为单位输出 。 32:自动Logoff,在~/.bashrc中加入这么一句话:TMOUT=300则会在5分钟之后logoff,不 过如果less这类程序运行则不会启动。 33:在使用less 或 more时,直接启动编辑器:在less中打入v键,会立即启动vi或其他 你在环境变量中指明的编辑器,但是more只能使用vi。 来源:非常Linux -- [m[34m※ 来源:・BBS 水木清华站 bbs.edu.cn・[FROM: 166.111.153.196]
2008/12/13 21:57
|
|
![]() |
Re: linux 操作技巧.(不断增加) |
||
---|---|---|
新进会员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
注册会员 帖子:
1
等级: 1; EXP: 0
HP : 0 / 0 MP : 0 / 0 ![]() |
Linux应用问答-系统应用篇
作者:陈绪 1.如何获得内核版本号? 2.如何获得glibc的版本号? 3.如何获得Xserver的版本号? 4.如果检测到NIS域,但是home目录不能mount(缺少automounter),我该怎么办? 5.如果网卡安装正常,但是ping不通jumbo等服务器,是什么问题? 6.我如何在本机上设置cups的默认打印机? 7.我试图用grub启动系统时, 出现的信息提示:不能mount引导分区,我该怎么办? 8.我的机器上有cups和lprng,但是我卸载lprng后, cups不能工作了。 9.如何切换consoles? 10.我不能从CD上开始staroffice的安装,出了什么毛病? 1.) 命令为:uname -a 2.) cd /lib; ./libc.so.6 3.) XFree86 -version (debian系统中无效) 4.) 必须创建对应的home目录。例如:mkdir -p /home/fh99191 (适用于NIS user fh99191)。重新登陆后,缺省进入该目录 5.)网关设置错误。网关用于在不同子网间进行路由。多数linux发布版中,该文件为/etc/route.conf。 SuSE 7.2中该文件内容如下: 129.157.138.0 0.0.0.0 255.255.255.0 eth0 default 129.157.138.9 0.0.0.0 eth0 在缺省项之后,你可以发现网关地址。由于不同发行版中该文件的结构不同,没有必要详细描述该文件的细节。 6.)一般来说缺省打印机会设置为cups的系统范围,这个打印机就是所有用户的缺省打印机。如果你要设置 自己的打印机,可以执行:lpoptions -d ,例如:lpoptions -d xm1sof(用于xm1sof打印机) 7.)grub的这个错误信息告诉我们该OS的文件系统未知。缺省直接支持的文件系统是Ext2fs, Reiserfs, Fat16, Fat32, FFS (Fast file system)以及Minix,带有这些文件系统的OS可以直接装载,带有未知文件系统的OS可以用选项chain加载。这就是说,它们自己的bootlaoder可以引导它们自己。在menu.lst文件中必须加入chainloader +1一行。在linuxfibel可以获取grub的详细信息 8.)cups需要的包很可能在卸载lprng的时候被删除了。为避免冲突,你应该删除printer的所有包。删除完毕后,必须重新安装cups和cups-client的包 9.)你可以按CTRL+ALT+F<2-6>,从X11切换到console。如果你已经在一个console中,按ALT+F<2-6>就可以了。如果你想切换回X11,你可以按ALT+F7,console的编号7就是X11. 10.) 如果你从CD上执行程序,你应该检查,fstab文件中是否有下面一行: /dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0 (/dev/cdrom和/media/cdrom都是SuSE的条目,别的发行版可能会有不同)。如果缺少该行,程序就无法从CD上执行。
2005/2/17 22:21
|
|
![]() |
Re: linux 操作技巧.(不断增加) |
||
---|---|---|
新进会员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
注册会员 帖子:
1
等级: 1; EXP: 0
HP : 0 / 0 MP : 0 / 0 ![]() |
ls命令选项详解
ls 命令可以说是Linux下最常用的命令之一。它有众多的选项,其中有很多是很有用的,你是否熟悉呢?下面列出了 ls 命令的绝大多数选项。 -a 列出目录下的所有文件,包括以 . 开头的隐含文件。 -b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。 -c 输出文件的 i 节点的修改时间,并以此排序。 -d 将目录象文件一样显示,而不是显示其下的文件。 -e 输出时间的全部信息,而不是输出简略信息。 -f -U 对输出的文件不排序。 -g 无用。 -i 输出文件的 i 节点的索引信息。 -k 以 k 字节的形式表示文件的大小。 -l 列出文件的详细信息。 -m 横向输出文件名,并以“,”作分格符。 -n 用数字的 UID,GID 代替名称。 -o 显示文件的除组信息外的详细信息。 -p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通 文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套 接字(sockets)。 -q 用?代替不可输出的字符。 -r 对目录反向排序。 -s 在每个文件名后输出该文件的大小。 -t 以时间排序。 -u 以文件上次被访问的时间排序。 -x 按列输出,横向排序。 -A 显示除 “.”和“..”外的所有文件。 -B 不输出以 “~”结尾的备份文件。 -C 按列输出,纵向排序。 -G 输出文件的组的信息。 -L 列出链接文件名而不是链接到的文件。 -N 不限制文件长度。 -Q 把输出的文件名用双引号括起来。 -R 列出所有子目录下的文件。 -S 以文件大小排序。 -X 以文件的扩展名(最后一个 . 后的字符)排序。 -1 一行只输出一个文件。 --color=no 不显示彩色文件名 --help 在标准输出上显示帮助信息。 --version 在标准输出上输出版本信息并退出。
2005/2/19 0:51
|
|
![]() |
Re: linux 操作技巧.(不断增加) |
||
---|---|---|
新进会员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
注册会员 帖子:
1
等级: 1; EXP: 0
HP : 0 / 0 MP : 0 / 0 ![]() |
Linux 使用技巧
CON 初用Linux时可能有处处不方便的感觉, 可是等使用一段时间掌握了一些技巧后 就会感到越来越顺手了. 以下就是我使用Linux以来积累的一些经验与技巧, 相 信对初学者会有所帮助的. 1. 使用虚拟控制台 登录后按Alt+F2键这时又可以看到\"login:\"提示符, 这个就是第二个虚拟控 制台. 一般新安装的Linux有四个虚拟控制台, 可以用Alt+F1~Alt+F4来访问. 虚拟 控制台最有用的时候是当一个程序出错锁住输入时可以切换到其他虚拟控制台登录 进入后杀掉这个出错的进程. 2. 拷贝与粘贴 字符界面: 不管是Slackware 还是RedHat 安装后每次启动时都会自动运行一个 叫gpm的程序, 该程序运行后就可以用鼠标来拷贝与粘贴了. 具体做法是按住鼠标左 键拖动使要拷贝的地方反白, 这时反白的区域已经被拷贝, 再按鼠标右键拷贝的内 容就会被粘贴在光标所在位置了. X-Window下: 拷贝的操作与字符界面下一样, 三键鼠标的话按中键粘贴, 两键 鼠标的话同时按左右键粘贴(须在配置XF86时在鼠标的设置里选择 Emulate 3 Butt on). 3. 快速进入某些目录 键入 cd ~ 可进入用户的home目录. 键入 cd - 可进入上一个进入的目录. 4. 软驱的使用 如果是Linux 的ext2文件系统用如下命令: #mount -t ext2 /dev/fd0 /mnt dos格式的软盘则用命令: #mount -t msdos /dev/fd0 /mnt 然后就可以在/mnt里访问软盘的内容了, 注意在取出软盘之前要先卸掉软盘上的文 件系统, #umount /mnt 否则会导致信息丢失. 在软盘上建立文件系统可用如下命令: #mke2fs /dev/fd0 1440 5. RedHat下显示彩色目录列表 打开/etc/bashrc, 加入如下一行: alias ls=\"ls --color\" 下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含 义如下: 蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文件 灰色-->其他文件 6. 显示文件的类型 用命令 file 可以使你知道某个文件究竟是ELF格式的可执行文件, 还是shell script文件或是其他的什么格式 例如: #file startx 7 .命令文件的路径 当你键入一些命令如find, shutdown, mount, startx时是否想过要知道这些文 件究竟放在哪个目录里? 命令 whereis 可以实现,如 #whereis startx 8. 查找文件 find 命令要加一些参数才能查到文件, 如: #find /usr -name XF86Setup -print 在/usr里查找文件XF86Setup. 9. 删除无用的core文件 程序运行出后有时候会产生一个名为core的文件, 这个文件一般很大而且没什么用, 可以删除掉以释放空间. 10. 一次解开.tar.gz文件 解开.tar.gz文件一般要先用gunzip解压再用tar解包, 在Linux下可以一次完成, 如: #tar zxpvf sample.tar.gz 11. 显示win95分区里的长文件名 如果你发现win95分区里的长文件命不能显示, 可以重新用vfat方式来mount. 对于启动时就mount的分区可以修改文件/etc/fstab, 将里面的msdos字样改为vfat. 如果无法用vfat mount, 则要重新编译一下核心, 加入对vfat的支持. 12. Linux 里的Norton Commander 在提示符下键入命令mc后你就会看到一个与Norton Commander很相似的界面, 实际上功能也很相似甚至更强大, 比如可以直接对.tar.gz 压缩包里的文件进行操 作(有点像ZipMagic). 13. 启动后直接进入X 编辑/etc/inittab文件, 把id:3:initdefautl改为 id:4:initdefautl. 不过搜 索路径可能会有些问题,关机时你得直接进入/sbin 里去执行 shutdown. 14. 后台运行 X 程序 执行一个X程序时别忘了在后面加一个&号,如 #netscape & 否则的话在你推出 执行的程序之前再无法在那个终端窗口里输入命令了. 15. 强行退出 X 有时候在 X 里由于程序出错鼠标键盘都不起作用, 这时候不用着急, 因为在L inux下几乎不会像在Win95里那样恶性死机, 你只须键入Ctrl+Alt+BackSpace键就可 以回到字符界面下了. Linux 使用技巧集锦的第二辑,主要是一些初学者容易遇到又不容易解决的问题, 希望大家能喜欢。 1. 重装Win9x后lilo失效无法启动Linux 只须先用软盘启动Linux然后运行一次lilo即可。对于RedHat可以用命令mkboo tdisk来制作启动盘,例如: mkbootdisk --devices /dev/fd0 2.0.34-1 其中2.0.34-1是 /lib/modules下的一个目录。 2. 把dos/windows改为缺省启动的OS RedHat把Linux作为lilo缺省启动的OS,即出现 boot: 提示符后直接回车启动 Linux。如果想改为dos/Windows,修改文件/etc/lilo.conf,把有关启动dos的部分 放在前面,再运行一次lilo即可。例如 把lilo.conf从: boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 image=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hdc5 read-only other=/dev/hda1 label=dos table=/dev/hda 改为: boot=/dev/hda map=/boot/map install=/boot/boot.b prompt timeout=50 other=/dev/hda1 label=dos table=/dev/hda image=/boot/vmlinuz-2.0.34-1 label=linux root=/dev/hdc5 read-only 3. 去掉引导区内的lilo信息 安装lilo后如果硬盘数量或分区情况有改变的话将导致硬盘不能启动,这时只 须用软盘启动dos再运行 fdisk/mbr 即可。(这个方法还可清除任何引导区病毒) 4. 让 X 支持 AGP 显卡 下载一个 AX 4.1 即 AcceleratedX 4.1 , 一个商业版的 X Server 。除 AG P 显卡外 AX 还支持很多牌号的显卡。另外还可以用AX 带的设置程序 Xsetup 方便 的对分辨率,刷新率等参数进行设置。 不过我也不知道用AGP卡效果如何,因为我现在还在用老掉牙的 S3 765 。 5. 把 man 或 info 的信息存为文本文件 以 tcsh 为例: man tcsh | col -b > tcsh.txt info tcsh -o tcsh.txt -s 6. 用当前路径作提示符 对 bash 来说,在 .bashrc 里加一行: PS1=\"\\$PWD\\\\$\" 对 tcsh 来说,在 .tcshrc 里加一行: set prompt=\"%/>\" 7. 压缩可执行文件 Linux 下有一个类似 dos 里的 pklite 和 lzexe 的命令 -- gzexe 。而且压 缩率一般都可以超过 50% ,在空间紧张时很有用。比如: /dosc/temp# ls -al total 148 -rwxr-xr-x 1 root root 149564 Dec 8 15:33 gawk /dosc/temp# gzexe gawk gawk: 54.5% /dosc/temp# ls -al total 216 -rwxr-xr-x 1 root root 68710 Dec 8 15:36 gawk -rwxr-xr-x 1 root root 149564 Dec 8 15:33 gawk~ /dosc/temp# 8. 查看 Linux 启动时的信息 Linux 启动时屏幕显示的信息来不及看清就一闪而过,如果对这些信息感兴趣 的话可以在启动完后用命令 dmesg 查看。 9. 处理文件名内含有特殊字符的文件 如果有一个文件名叫 -file 如果想删除它,键入 rm -file 会显示 invalid option ,原来由于文件名的第一个字符为 - , Linux 把文件名当作选项了,可以 加 -- 解决这个问题, 如 rm -- -file 。如果是其他特殊字符的话可以在特殊字 符前加一个 \\ ,或者用双引号把整个文件名括起来。 10. 一次处理一整个目录 Linux/UNIX 的很多常用命令如 rm , cp 等都有一个参数---- -r , 是递归 的意思, 命令里加了参数 -r 就可以对目标目录及其下所有子目录进行操作,如: rm -rf /test (f 是 force 意为强行) , 该命令完全删除根目录下的子目录 tes t ,作用类似于 dos 下的deltree ,当然使用这个命令时要特别小心。再如: cp -r /test /test1 有类似 dos 下 xcopy /s 的作用。 11. 修改登录画面 对本机: 先修改文件 /etc/issue 改为相要显示的内容, 再修改文件 /etc/rc.d/rc.local (RedHat) 或 /etc/rc.d/rc.S(Slackware) 把下面几句注释掉: # This will overwrite /etc/issue at every boot. So, make any changes you # want to make to /etc/issue here or you will lose them when you reboot. echo \"\" > /etc/issue echo \"Red Hat Linux $R\" >> /etc/issue echo \"Kernel $(uname -r) on $a $(uname -m)\" >> /etc/issue cp -f /etc/issue /etc/issue.net echo >> /etc/issue 不然的话每次重新启动 /etc/issue 都会被更改。 对 telnet 的远地机器: 先把文件 /etc/usr/sbin/in.telnetd 改名,如改为 in.telnetd.exe ,再编一个 名为 in.telnetd 的 shell 脚本, 在显示完需要的内容后再调用 in.telnetd.exe 。如: #!/bin/sh cat /etc/login.banner #需要在登录提示符前显示的内容 echo -n \"\" exec /usr/sbin/in.telnetd.exe 12. 几个有用的别名 几个能方便操作和减少误操作的别名,建议把它们放到启动文件里, 如 /etc/bas hrc 。 alias rm=\'rm -i\' alias cp=\'cp -i\' alias mv=\'mv -i\' #前三个别名的作用是在删除、覆盖文件之前先提示确认,RedHat已经自动 #加上了,强烈建议Slackware的用户也加上,因为Linux/UNIX下文件一旦删 #除就再也无法恢复了。 alias l=\'ls -l\' alias cd..=\'cd ..\' alias utar=\'tar xvfz\' #解 *.tar.gz 文件 alias inforpm=\'rpm -qpi\' #显示rpm包的信息 alias instrpm=\'rpm -Uhv\' #安装rpm包 alias listrpm=\'rpm -qpl\' #列rpm包内的文件 alias uistrpm=\'rpm -e\' #反安装rpm包 13. 使用命令补齐 所谓命令补齐(Command-Line Completion)是指当键入的字符足以确定目录下一 个唯一的文件时只须按 Tab 键就可以自动补齐该文件名的剩下部分,例如要把目录 /freesoft 下的文件 gcc-2.8.1.tar.gz 解包,当键入到 tar xvfz /freesoft/g 时如果该文件是该目录下唯一以 g 起头的文件的话就可以按下 Tab 键,这时命令 会被自动补齐为:tar xvfz /freesoft/gcc-2.8.1.tar.gz ,非常方便。 14. 最后一条技巧 有时间的话多看看系统提供的FAQ文件,因为通常遇到的问题大多数都能在里面 找到答案。
2005/2/19 0:53
|
|
![]() |
Re: linux 操作技巧.(不断增加) |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 注册会员 帖子:
56
等级: 6; EXP: 34
HP : 0 / 133 MP : 18 / 19969 ![]() |
Linux一句话精彩问答--2005/01/29更新
编者按:鉴于目前中国Linux的发展现状,90%以上的问题都可以用一句话来回答,这便是本文的初衷。欢迎大家添加自己的“一句话”,收录后注明原始提供者。更详细的文档,请浏览本版精华区或http://www.linuxhero.com ----------------------------网络无关篇-------------------------- 0001 修改主机名(bjchenxu) vi /etc/sysconfig/network,修改HOSTNAME一行为"HOSTNAME=主机名"(没有这行?那就添加这一行吧),然后运行命令" hostname 主机名"。一般还要修改/etc/hosts文件中的主机名。这样,无论你是否重启,主机名都修改成功。 0002 Ret Hat Linux启动到文字界面(不启动xwindow)(bjchenxu) vi /etc/inittab id:x:initdefault: x=3:文本方式 x=5:图形方式 0003 linux的自动升级更新问题(hutuworm,NetDC) 对于redhat,在www.redhat.com/corp/support/errata/找到补丁,6.1以后的版本带有一个工具up2date,它能够测定哪些rpm包需要升级,然后自动从redhat的站点下载并完成安装。 升级除kernel外的rpm: up2date -u 升级包括kernel在内的rpm: up2date -u -f 由于Red Hat Network SSL证书过期,所以应在rhn_register || up2date 之前先执行一行script以更新证书: wget -q -O - https://rhn.redhat.com/help/new-cert.sh | /bin/bash Debian跟别的发行版还是有很大的差别的,用Debian做服务器维护更加方便;红帽的升级其实挺麻烦的,当然,如果你交钱给红帽的话,服务是会不一样的。 Debian下升级软件: apt-get update apt-get upgrade 前提:配置好网络和/etc/apt/sources.list,也可以用apt-setup设置。 0004 windows下看linux分区的软件(bjchenxu) Paragon.Ext2FS.Anywhere.2.5.rar和explore2fs-1.00-pre4.zip 0005 mount用法(sakulagi,sxsfxx) fat32的分区 mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom ntfs的分区 mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom iso文件 mount -o loop /abc.iso /mnt/cdrom 软盘 mount /dev/fd0 /mnt/floppy USB闪存 mount /dev/sda1 /mnt/cdrom 所有/etc/fstab内容 mount -a 可以指定文件格式"-t 格式", 格式可以为vfat, ext2, ext3等. 访问DVD mount -t iso9660 /dev/dvd /mnt/cdrom或mount -t udf /dev/dvd /mnt/cdrom 注意:dvd的格式一般为iso9660或udf之一 0006 在vmware的LINUX中使用本地硬盘的FAT分区(bjchenxu) 将本地的FAT分区共享,然后在VMWARE中使用SMBFS挂上。可以将如下的行放到/etc/fstab中: //win_ip/D$ /mnt/d smbfs defaults,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb2312 0 0 其中win_ip是你的windows的IP地址; D$是你的windows里面共享的D盘的共享名; /mnt/d是要将该分区mount到linux的目录; win_name和win_pass是你的WINDOWS里面可以读取该分区的用户,比如你的管理员名和密码。 如果你运行了/etc/rc.d/init.d/netfs,那么在启动的时候就会自动挂载这个分区。 0007.a 删除名为-a的文件(bjchenxu) rm ./-a rm -- -a 告诉rm这是最后一个选项,参见getopt ls -i 列出inum,然后用find . -inum inum_of_thisfile -exec rm '{}' \; 0007.b 删除名为\a的文件(bjchenxu) rm \\a 0007.c 删除名字带的/和‘\0'文件(bjchenxu) 这些字符是正常文件系统所不允许的字符,但可能在文件名中产生,如unix下的NFS文件系统在Mac系统上使用 1.解决的方法,把NFS文件系统在挂到不过滤'/'字符的系统下删除含特殊文件名的文件。 2.也可将错误文件名的目录其它文件移走,ls -id 显示含该文件目录的inum,umount 文件系统, clri清除该目录的inum,fsck,mount,check your lost+found,rename the file in it. 最好是通过WINDOWS FTP过去就可以删除任何文件名的文件了! 0007.d 删除名字带不可见字符的文件(bjchenxu) 列出文件名并转储到文件:ls -l >aaa 然后编辑文件的内容加入rm命令使其内容成为删除上述文件的格式: vi aaa [rm -r ******* ] 把文件加上执行权限 chmod +x aaa 执行 $aaa 0007.e 删除文件大小为零的文件(bjchenxu) rm -i `find ./ -size 0` find ./ -size 0 -exec rm {} \; 或 find ./ -size 0 | xargs rm -f & 或 for file in * #自己定义需要删除的文件类型 do if [ ! -s ${file} ] then rm ${file} echo "rm $file Success!" fi done 0008 redhat设置滚轮鼠标(mc1011) 进入X后,选择鼠标的配置,选择wheel mouse(ps/2)就可以了, 如果鼠标表现异常,重启计算机即可。 (或者su, vi /etc/X11/XF86Config, 把PS/2 改成 ImPS/2) 0009 加装xwindow(bjchenxu) 用linux光盘启动,选择升级,然后单独选择包,安装即可 0010 删除linux分区(bjchenxu) 做一张partition magic的启动软盘,启动后删除. 或者用win2000的启动光盘启动,然后删除. 0011 如何退出man(bjchenxu) q 0012 不编译内核,mount ntfs分区(bjchenxu,hutuworm) 原装rh8,未升级或编译内核 1. 上google.com搜索并下载 kernel-ntfs-2.4.18-14.i686.rpm 2. rpm -ivh kernel-ntfs-2.4.18-14.i686.rpm 3. mkdir /mnt/c 4. mount -t ntfs /dev/hda1 /mnt/c 或 Read only: http://linux-ntfs.sourceforge.net/ Read/Write: http://www.jankratochvil.net/project/captive/ 0013 tar 分卷压缩和合并(WongMokin,Waker) 以每卷500M为例 tar分卷压缩:tar cvzpf - somedir | split -d -b 500m tar多卷合并:cat x* > mytarfile.tar.gz 0014 使用lilo/grub时找回忘记了的root口令(bjchenxu) 三种办法: 1.在系统进入单用户状态,直接用passwd root去更改 2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下: cd /mnt mkdir hd mount -t auto /dev/hdaX(原来/分区所在的分区号) hd cd hd chroot ./ passwd root 这样可以搞定 3.将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同 rh8中 一. lilo 1. 在出现 lilo: 提示时键入 linux single 画面显示 lilo: linux single 2. 回车可直接进入linux命令行 3. #vi /etc/shadow 将第一行,即以root开头的一行中root:后和下一个:前的内容删除, 第一行将类似于 root::...... 保存 4. #reboot重启,root密码为空 二. grub 1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键 2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键 3. 修改你现在见到的命令行,加入single,结果如下: kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/ 4. 回车返回,然后按b键启动,即可直接进入linux命令行 5. #vi /etc/shadow 将第一行,即以root开头的一行中root:后和下一个:前的内容删除, 第一行将类似于 root::...... 保存 6. #reboot重启,root密码为空 0015 使ctrl + alt + del失效(bjchenxu) vi /etc/inittab 将ca::ctrlaltdel:/sbin/shutdown -t3 -r now这行注释掉,就可以了 0016 如何看出redhat的版本是7还是8(hutuworm) cat /proc/version或者cat /etc/redhat-release或者cat /etc/issue 0017 文件在哪个rpm中(无双) 上www.rpmfind.net上搜,或者rpm -qf 文件名得到 0018 把man或info的信息存为文本文件(bjchenxu) 以 tcsh 为例: man tcsh | col -b > tcsh.txt info tcsh -o tcsh.txt -s 0019 利用现存两个文件,生成一个新的文件(bjchenxu) 1. 取出两个文件的并集(重复的行只保留一份) 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) 3. 删除交集,留下其他的行 1. cat file1 file2 | sort | uniq 2. cat file1 file2 | sort | uniq -d 3. cat file1 file2 | sort | uniq -u 0020 设置com1口,让超级终端通过com1口进行登录(bjchenxu) 确认有/sbin/agetty,编辑/etc/inittab,添加 7:2345:respawn:/sbin/agetty /dev/ttyS0 9600 9600bps是因为联路由器缺省一般都是这种速率,也可以设成 19200、38400、57600、115200 修改/etc/securetty,添加一行:ttyS0,确保root用户能登录 重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了 0021 删除目录下所有文件包括子目录(bjchenxu) rm -rf 目录名 0022 查看系统信息(bjchenxu) cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx) cat /proc/interrupts - 中断 cat /proc/ioports - 设备IO端口 cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size) cat /proc/partitions - 所有设备的所有分区 cat /proc/pci - PCI设备的信息 cat /proc/swaps - 所有Swap分区的信息 cat /proc/version - Linux的版本号 相当于 uname -r uname -a - 看系统内核等信息 0023 去掉多余的回车符(bjchenxu) sed 's/^M//' test.sh > back.sh, 注意^M是敲ctrl_v ctrl-m得到的 或者 dos2unix filename 0024 切换X桌面(lnx3000) 如果你是以图形登录方式登录linux,那么点击登录界面上的session(任务)即可以选择gnome和kde。如果你是以文本方式登录,那执行switchdesk gnome或switchdesk kde,然后再startx就可以进入gnome或kde。 (或者vi ~/.xinitrc,添加或修改成exec gnome-session 或exec startkde, 然后用startx启动X) 0025 通用的声卡驱动程序(lnx3000) OSS www.opensound.com/ ALSA www.alsa-project.org/ 0026 改变redhat的系统语言/字符集(beming/mc1011) 修改 /etc/sysconfig/i18n 文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。 还有一种方法 cp /etc/sysconfig/i18n $HOME/.i18n 修改 $HOME/.i18n 文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。 这样就可以改变个人的界面语言,而不影响别的用户 (Debian不支持GB18030(RH的zysong字库是有版权的) 现在好像没有Free的GBK和GB18030字库 vi .bashrc export LANG=zh_CN.GB2312 export LC_ALL=zh_CN.GB2312) 0027 把屏幕设置为90列(bjchenxu) stty cols 90 0028 使用md5sum文件(bjchenxu) md5sum isofile > hashfile, 将 md5sum 档案与 hashfile 档案内容比对, 验证杂凑值 是否一致 md5sum
2005/3/7 8:51
|
|
![]() |
Re: linux 操作技巧.(不断增加) |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 注册会员 帖子:
56
等级: 6; EXP: 34
HP : 0 / 133 MP : 18 / 19969 ![]() |
Linux一句话精彩问答--2005/01/29更新
编者按:鉴于目前中国Linux的发展现状,90%以上的问题都可以用一句话来回答,这便是本文的初衷。欢迎大家添加自己的“一句话”,收录后注明原始提供者。更详细的文档,请浏览本版精华区或http://www.linuxhero.com ----------------------------网络无关篇-------------------------- 0001 修改主机名(bjchenxu) vi /etc/sysconfig/network,修改HOSTNAME一行为"HOSTNAME=主机名"(没有这行?那就添加这一行吧),然后运行命令" hostname 主机名"。一般还要修改/etc/hosts文件中的主机名。这样,无论你是否重启,主机名都修改成功。 0002 Ret Hat Linux启动到文字界面(不启动xwindow)(bjchenxu) vi /etc/inittab id:x:initdefault: x=3:文本方式 x=5:图形方式 0003 linux的自动升级更新问题(hutuworm,NetDC) 对于redhat,在www.redhat.com/corp/support/errata/找到补丁,6.1以后的版本带有一个工具up2date,它能够测定哪些rpm包需要升级,然后自动从redhat的站点下载并完成安装。 升级除kernel外的rpm: up2date -u 升级包括kernel在内的rpm: up2date -u -f 由于Red Hat Network SSL证书过期,所以应在rhn_register || up2date 之前先执行一行script以更新证书: wget -q -O - https://rhn.redhat.com/help/new-cert.sh | /bin/bash Debian跟别的发行版还是有很大的差别的,用Debian做服务器维护更加方便;红帽的升级其实挺麻烦的,当然,如果你交钱给红帽的话,服务是会不一样的。 Debian下升级软件: apt-get update apt-get upgrade 前提:配置好网络和/etc/apt/sources.list,也可以用apt-setup设置。 0004 windows下看linux分区的软件(bjchenxu) Paragon.Ext2FS.Anywhere.2.5.rar和explore2fs-1.00-pre4.zip 0005 mount用法(sakulagi,sxsfxx) fat32的分区 mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom ntfs的分区 mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom iso文件 mount -o loop /abc.iso /mnt/cdrom 软盘 mount /dev/fd0 /mnt/floppy USB闪存 mount /dev/sda1 /mnt/cdrom 所有/etc/fstab内容 mount -a 可以指定文件格式"-t 格式", 格式可以为vfat, ext2, ext3等. 访问DVD mount -t iso9660 /dev/dvd /mnt/cdrom或mount -t udf /dev/dvd /mnt/cdrom 注意:dvd的格式一般为iso9660或udf之一 0006 在vmware的LINUX中使用本地硬盘的FAT分区(bjchenxu) 将本地的FAT分区共享,然后在VMWARE中使用SMBFS挂上。可以将如下的行放到/etc/fstab中: //win_ip/D$ /mnt/d smbfs defaults,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb2312 0 0 其中win_ip是你的windows的IP地址; D$是你的windows里面共享的D盘的共享名; /mnt/d是要将该分区mount到linux的目录; win_name和win_pass是你的WINDOWS里面可以读取该分区的用户,比如你的管理员名和密码。 如果你运行了/etc/rc.d/init.d/netfs,那么在启动的时候就会自动挂载这个分区。 0007.a 删除名为-a的文件(bjchenxu) rm ./-a rm -- -a 告诉rm这是最后一个选项,参见getopt ls -i 列出inum,然后用find . -inum inum_of_thisfile -exec rm '{}' \; 0007.b 删除名为\a的文件(bjchenxu) rm \\a 0007.c 删除名字带的/和‘\0'文件(bjchenxu) 这些字符是正常文件系统所不允许的字符,但可能在文件名中产生,如unix下的NFS文件系统在Mac系统上使用 1.解决的方法,把NFS文件系统在挂到不过滤'/'字符的系统下删除含特殊文件名的文件。 2.也可将错误文件名的目录其它文件移走,ls -id 显示含该文件目录的inum,umount 文件系统, clri清除该目录的inum,fsck,mount,check your lost+found,rename the file in it. 最好是通过WINDOWS FTP过去就可以删除任何文件名的文件了! 0007.d 删除名字带不可见字符的文件(bjchenxu) 列出文件名并转储到文件:ls -l >aaa 然后编辑文件的内容加入rm命令使其内容成为删除上述文件的格式: vi aaa [rm -r ******* ] 把文件加上执行权限 chmod +x aaa 执行 $aaa 0007.e 删除文件大小为零的文件(bjchenxu) rm -i `find ./ -size 0` find ./ -size 0 -exec rm {} \; 或 find ./ -size 0 | xargs rm -f & 或 for file in * #自己定义需要删除的文件类型 do if [ ! -s ${file} ] then rm ${file} echo "rm $file Success!" fi done 0008 redhat设置滚轮鼠标(mc1011) 进入X后,选择鼠标的配置,选择wheel mouse(ps/2)就可以了, 如果鼠标表现异常,重启计算机即可。 (或者su, vi /etc/X11/XF86Config, 把PS/2 改成 ImPS/2) 0009 加装xwindow(bjchenxu) 用linux光盘启动,选择升级,然后单独选择包,安装即可 0010 删除linux分区(bjchenxu) 做一张partition magic的启动软盘,启动后删除. 或者用win2000的启动光盘启动,然后删除. 0011 如何退出man(bjchenxu) q 0012 不编译内核,mount ntfs分区(bjchenxu,hutuworm) 原装rh8,未升级或编译内核 1. 上google.com搜索并下载 kernel-ntfs-2.4.18-14.i686.rpm 2. rpm -ivh kernel-ntfs-2.4.18-14.i686.rpm 3. mkdir /mnt/c 4. mount -t ntfs /dev/hda1 /mnt/c 或 Read only: http://linux-ntfs.sourceforge.net/ Read/Write: http://www.jankratochvil.net/project/captive/ 0013 tar 分卷压缩和合并(WongMokin,Waker) 以每卷500M为例 tar分卷压缩:tar cvzpf - somedir | split -d -b 500m tar多卷合并:cat x* > mytarfile.tar.gz 0014 使用lilo/grub时找回忘记了的root口令(bjchenxu) 三种办法: 1.在系统进入单用户状态,直接用passwd root去更改 2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下: cd /mnt mkdir hd mount -t auto /dev/hdaX(原来/分区所在的分区号) hd cd hd chroot ./ passwd root 这样可以搞定 3.将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同 rh8中 一. lilo 1. 在出现 lilo: 提示时键入 linux single 画面显示 lilo: linux single 2. 回车可直接进入linux命令行 3. #vi /etc/shadow 将第一行,即以root开头的一行中root:后和下一个:前的内容删除, 第一行将类似于 root::...... 保存 4. #reboot重启,root密码为空 二. grub 1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键 2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键 3. 修改你现在见到的命令行,加入single,结果如下: kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/ 4. 回车返回,然后按b键启动,即可直接进入linux命令行 5. #vi /etc/shadow 将第一行,即以root开头的一行中root:后和下一个:前的内容删除, 第一行将类似于 root::...... 保存 6. #reboot重启,root密码为空 0015 使ctrl + alt + del失效(bjchenxu) vi /etc/inittab 将ca::ctrlaltdel:/sbin/shutdown -t3 -r now这行注释掉,就可以了 0016 如何看出redhat的版本是7还是8(hutuworm) cat /proc/version或者cat /etc/redhat-release或者cat /etc/issue 0017 文件在哪个rpm中(无双) 上www.rpmfind.net上搜,或者rpm -qf 文件名得到 0018 把man或info的信息存为文本文件(bjchenxu) 以 tcsh 为例: man tcsh | col -b > tcsh.txt info tcsh -o tcsh.txt -s 0019 利用现存两个文件,生成一个新的文件(bjchenxu) 1. 取出两个文件的并集(重复的行只保留一份) 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) 3. 删除交集,留下其他的行 1. cat file1 file2 | sort | uniq 2. cat file1 file2 | sort | uniq -d 3. cat file1 file2 | sort | uniq -u 0020 设置com1口,让超级终端通过com1口进行登录(bjchenxu) 确认有/sbin/agetty,编辑/etc/inittab,添加 7:2345:respawn:/sbin/agetty /dev/ttyS0 9600 9600bps是因为联路由器缺省一般都是这种速率,也可以设成 19200、38400、57600、115200 修改/etc/securetty,添加一行:ttyS0,确保root用户能登录 重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了 0021 删除目录下所有文件包括子目录(bjchenxu) rm -rf 目录名 0022 查看系统信息(bjchenxu) cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx) cat /proc/interrupts - 中断 cat /proc/ioports - 设备IO端口 cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size) cat /proc/partitions - 所有设备的所有分区 cat /proc/pci - PCI设备的信息 cat /proc/swaps - 所有Swap分区的信息 cat /proc/version - Linux的版本号 相当于 uname -r uname -a - 看系统内核等信息 0023 去掉多余的回车符(bjchenxu) sed 's/^M//' test.sh > back.sh, 注意^M是敲ctrl_v ctrl-m得到的 或者 dos2unix filename 0024 切换X桌面(lnx3000) 如果你是以图形登录方式登录linux,那么点击登录界面上的session(任务)即可以选择gnome和kde。如果你是以文本方式登录,那执行switchdesk gnome或switchdesk kde,然后再startx就可以进入gnome或kde。 (或者vi ~/.xinitrc,添加或修改成exec gnome-session 或exec startkde, 然后用startx启动X) 0025 通用的声卡驱动程序(lnx3000) OSS www.opensound.com/ ALSA www.alsa-project.org/ 0026 改变redhat的系统语言/字符集(beming/mc1011) 修改 /etc/sysconfig/i18n 文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。 还有一种方法 cp /etc/sysconfig/i18n $HOME/.i18n 修改 $HOME/.i18n 文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。 这样就可以改变个人的界面语言,而不影响别的用户 (Debian不支持GB18030(RH的zysong字库是有版权的) 现在好像没有Free的GBK和GB18030字库 vi .bashrc export LANG=zh_CN.GB2312 export LC_ALL=zh_CN.GB2312) 0027 把屏幕设置为90列(bjchenxu) stty cols 90 0028 使用md5sum文件(bjchenxu) md5sum isofile > hashfile, 将 md5sum 档案与 hashfile 档案内容比对, 验证杂凑值 是否一致 md5sum
2005/3/7 8:54
|
|
![]() |
Re: linux 操作技巧.(不断增加) |
||
---|---|---|
网站管理员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
网站管理员 注册会员 帖子:
56
等级: 6; EXP: 34
HP : 0 / 133 MP : 18 / 19969 ![]() |
Linux一句话精彩问答--2004/06/30[转帖]
----------------------------网络无关篇-------------------------- 0001 修改主机名(bjchenxu) vi /etc/sysconfig/network,修改HOSTNAME一行为"HOSTNAME=主机名"(没有这行?那就添加这一行吧),然后运行命令" hostname 主机名"。一般还要修改/etc/hosts文件中的主机名。这样,无论你是否重启,主机名都修改成功。 0002 Ret Hat Linux启动到文字界面(不启动xwindow)(bjchenxu) vi /etc/inittab id:x:initdefault: x=3:文本方式 x=5:图形方式 0003 linux的自动升级更新问题(hutuworm,NetDC) 对于redhat,www.redhat.com/corp/support/errata/找到补丁,6.1以后的版本带有一个工具up2date,它能够测定哪些rpm包需要升级,然后自动从redhat的站点下载并完成安装。 升级除kernel外的rpm: up2date -u 升级包括kernel在内的rpm: up2date -u -f 由于Red Hat Network SSL证书过期,所以应在rhn_register || up2date 之前先执行一行script以更新证书: wget -q -O - https://rhn.redhat.com/help/new-cert.sh | /bin/bash Debian跟别的发行版还是有很大的差别的,用Debian做服务器维护更加方便;红帽的升级其实挺麻烦的,当然,如果你交钱给红帽的话,服务是会不一样的。 Debian下升级软件: apt-get update apt-get upgrade 前提:配置好网络和/etc/apt/sources.list,也可以用apt-setup设置。 0004 windows下看linux分区的软件(bjchenxu) Paragon.Ext2FS.Anywhere.2.5.rar和explore2fs-1.00-pre4.zip 0005 mount用法(sakulagi,sxsfxx) fat32的分区 mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom ntfs的分区 mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom iso文件 mount -o loop /abc.iso /mnt/cdrom 软盘 mount /dev/fd0 /mnt/floppy USB闪存 mount /dev/sda1 /mnt/cdrom 所有/etc/fstab内容 mount -a 可以指定文件格式"-t 格式", 格式可以为vfat, ext2, ext3等. 访问DVD mount -t iso9660 /dev/dvd /mnt/cdrom或mount -t udf /dev/dvd /mnt/cdrom 注意:dvd的格式一般为iso9660或udf之一 0006 在vmware的LINUX中使用本地硬盘的FAT分区(bjchenxu) 将本地的FAT分区共享,然后在VMWARE中使用SMBFS挂上。可以将如下的行放到/etc/fstab中: //win_ip/D$ /mnt/d smbfs defaults,auto,username=win_name,password=win_pass,codepage=936,iocharest=gb2312 0 0 其中win_ip是你的windows的IP地址; D$是你的windows里面共享的D盘的共享名; /mnt/d是要将该分区mount到linux的目录; win_name和win_pass是你的WINDOWS里面可以读取该分区的用户,比如你的管理员名和密码。 如果你运行了/etc/rc.d/init.d/netfs,那么在启动的时候就会自动挂载这个分区。 0007.a 删除名为-a的文件(bjchenxu) rm ./-a rm -- -a 告诉rm这是最后一个选项,参见getopt ls -i 列出inum,然后用find . -inum inum_of_thisfile -exec rm '{}' \; 0007.b 删除名为\a的文件(bjchenxu) rm \\a 0007.c 删除名字带的/和‘\0'文件(bjchenxu) 这些字符是正常文件系统所不允许的字符,但可能在文件名中产生,如unix下的NFS文件系统在Mac系统上使用 1.解决的方法,把NFS文件系统在挂到不过滤'/'字符的系统下删除含特殊文件名的文件。 2.也可将错误文件名的目录其它文件移走,ls -id 显示含该文件目录的inum,umount 文件系统, clri清除该目录的inum,fsck,mount,check your lost+found,rename the file in it. 最好是通过WINDOWS FTP过去就可以删除任何文件名的文件了! 0007.d 删除名字带不可见字符的文件(bjchenxu) 列出文件名并转储到文件:ls -l >aaa 然后编辑文件的内容加入rm命令使其内容成为删除上述文件的格式: vi aaa [rm -r ******* ] 把文件加上执行权限 chmod +x aaa 执行 $aaa 0007.e 删除文件大小为零的文件(bjchenxu) rm -i `find ./ -size 0` find ./ -size 0 -exec rm {} \; 或 find ./ -size 0 | xargs rm -f & 或 for file in * #自己定义需要删除的文件类型 do if [ ! -s ${file} ] then rm ${file} echo "rm $file Success!" fi done 0008 redhat设置滚轮鼠标(mc1011) 进入X后,选择鼠标的配置,选择wheel mouse(ps/2)就可以了, 如果鼠标表现异常,重启计算机即可。 (或者su, vi /etc/X11/XF86Config, 把PS/2 改成 ImPS/2) 0009 加装xwindow(bjchenxu) 用linux光盘启动,选择升级,然后单独选择包,安装即可 0010 删除linux分区(bjchenxu) 做一张partition magic的启动软盘,启动后删除. 或者用win2000的启动光盘启动,然后删除. 0011 如何退出man(bjchenxu) q 0012 不编译内核,mount ntfs分区(bjchenxu,hutuworm) 原装rh8,未升级或编译内核 1. 上google.com搜索并下载 kernel-ntfs-2.4.18-14.i686.rpm 2. rpm -ivh kernel-ntfs-2.4.18-14.i686.rpm 3. mkdir /mnt/c 4. mount -t ntfs /dev/hda1 /mnt/c 或 Read only: http://linux-ntfs.sourceforge.net/ Read/Write: http://www.jankratochvil.net/project/captive/ 0013 tar 分卷压缩和合并(WongMokin) 以每卷500M为例 tar分卷压缩:tar cvzpf - mytarfile.tar.gz | split -d -b 500m tar多卷合并:cat x* > mytarfile.tar.gz 0014 使用lilo/grub时找回忘记了的root口令(bjchenxu) 三种办法: 1.在系统进入单用户状态,直接用passwd root去更改 2.用安装光盘引导系统,进行linux rescue状态,将原来/分区挂接上来,作法如下: cd /mnt mkdir hd mount -t auto /dev/hdaX(原来/分区所在的分区号) hd cd hd chroot ./ passwd root 这样可以搞定 3.将本机的硬盘拿下来,挂到其他的linux系统上,采用的办法与第二种相同 rh8中 一. lilo 1. 在出现 lilo: 提示时键入 linux single 画面显示 lilo: linux single 2. 回车可直接进入linux命令行 3. #vi /etc/shadow 将第一行,即以root开头的一行中root:后和下一个:前的内容删除, 第一行将类似于 root::...... 保存 4. #reboot重启,root密码为空 二. grub 1. 在出现grub画面时,用上下键选中你平时启动linux的那一项(别选dos哟),然后按e键 2. 再次用上下键选中你平时启动linux的那一项(类似于kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/),然后按e键 3. 修改你现在见到的命令行,加入single,结果如下: kernel /boot/vmlinuz-2.4.18-14 single ro root=LABEL=/ 4. 回车返回,然后按b键启动,即可直接进入linux命令行 5. #vi /etc/shadow 将第一行,即以root开头的一行中root:后和下一个:前的内容删除, 第一行将类似于 root::...... 保存 6. #reboot重启,root密码为空 0015 使ctrl + alt + del失效(bjchenxu) vi /etc/inittab 将ca::ctrlaltdel:/sbin/shutdown -t3 -r now这行注释掉,就可以了 0016 如何看出redhat的版本是7还是8(hutuworm) cat /proc/version或者cat /etc/redhat-release或者cat /etc/issue 0017 文件在哪个rpm中(无双) www.rpmfind.net上搜,或者rpm -qf 文件名得到 0018 把man或info的信息存为文本文件(bjchenxu) 以 tcsh 为例: man tcsh | col -b > tcsh.txt info tcsh -o tcsh.txt -s 0019 利用现存两个文件,生成一个新的文件(bjchenxu) 1. 取出两个文件的并集(重复的行只保留一份) 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) 3. 删除交集,留下其他的行 1. cat file1 file2 | sort | uniq 2. cat file1 file2 | sort | uniq -d 3. cat file1 file2 | sort | uniq -u 0020 设置com1口,让超级终端通过com1口进行登录(bjchenxu) 确认有/sbin/agetty,编辑/etc/inittab,添加 7:2345:respawn:/sbin/agetty /dev/ttyS0 9600 9600bps是因为联路由器缺省一般都是这种速率,也可以设成 19200、38400、57600、115200 修改/etc/securetty,添加一行:ttyS0,确保root用户能登录 重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了 0021 删除目录下所有文件包括子目录(bjchenxu) rm -rf 目录名 0022 查看系统信息(bjchenxu) cat /proc/cpuinfo - CPU (i.e. vendor, Mhz, flags like mmx) cat /proc/interrupts - 中断 cat /proc/ioports - 设备IO端口 cat /proc/meminfo - 内存信息(i.e. mem used, free, swap size) cat /proc/partitions - 所有设备的所有分区 cat /proc/pci - PCI设备的信息 cat /proc/swaps - 所有Swap分区的信息 cat /proc/version - Linux的版本号 相当于 uname -r uname -a - 看系统内核等信息 0023 去掉多余的回车符(bjchenxu) sed 's/^M//' test.sh > back.sh, 注意^M是敲ctrl_v ctrl-m得到的 或者 dos2unix filename 0024 切换X桌面(lnx3000) 如果你是以图形登录方式登录linux,那么点击登录界面上的session(任务)即可以选择gnome和kde。如果你是以文本方式登录,那执行switchdesk gnome或switchdesk kde,然后再startx就可以进入gnome或kde。 (或者vi ~/.xinitrc,添加或修改成exec gnome-session 或exec startkde, 然后用startx启动X) 0025 通用的声卡驱动程序(lnx3000) OSS www.opensound.com/ ALSA www.alsa-project.org/ 0026 改变redhat的系统语言/字符集(beming/mc1011) 修改 /etc/sysconfig/i18n 文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。 还有一种方法 cp /etc/sysconfig/i18n $HOME/.i18n 修改 $HOME/.i18n 文件,如 LANG="en_US",xwindow会显示英文界面, LANG="zh_CN.GB18030",xwindow会显示中文界面。 这样就可以改变个人的界面语言,而不影响别的用户 (Debian不支持GB18030(RH的zysong字库是有版权的) 现在好像没有Free的GBK和GB18030字库 vi .bashrc export LANG=zh_CN.GB2312 export LC_ALL=zh_CN.GB2312) 0027 把屏幕设置为90列(bjchenxu) stty cols 90 0028 使用md5sum文件(bjchenxu) md5sum isofile > hashfile, 将 md5sum 档案与 hashfile 档案内容比对, 验证杂凑值 是否一致 md5sum
2005/3/22 5:13
|
|
![]() |
Re: linux 操作技巧.(不断增加) |
||
---|---|---|
新进会员
![]() ![]() 注册日期:
1970/1/1 8:00 所属群组:
注册会员 帖子:
1
等级: 1; EXP: 0
HP : 0 / 0 MP : 0 / 0 ![]() |
关键还是要去搞个版本.装台机子来弄弄.
要不然天天看文章也没什么进步.
2005/3/27 23:48
|
|
![]() |
您可以查看帖子.
您不可发帖.
您不可回复.
您不可编辑自己的帖子.
您不可删除自己的帖子.
您不可发起投票调查.
您不可在投票调查中投票.
您不可上传附件.
您不可不经审核直接发帖.