日常使用的命令的讨论,更新档在第一页。欢迎您发表意见。

发表于:2007-07-04来源:作者:点击数: 标签:
各位在工作中总会遇到问题, 对于相同的现象大家可能有不同的解决办法, 或者对于一个命令大家有不同的使用心得, 又或者您使用您自己编辑的脚本来完成工作, 我们是否可以来交流一下呢?方便自己方便他人。 但是,我觉得和[color=green:24a4bc6f9e]一句话[/

各位在工作中总会遇到问题,
对于相同的现象大家可能有不同的解决办法,
或者对于一个命令大家有不同的使用心得,
又或者您使用您自己编辑的脚本来完成工作,

我们是否可以来交流一下呢?方便自己方便他人。
但是,我觉得和[color=green:24a4bc6f9e]一句话[/color:24a4bc6f9e]应当还是不一样的。
我们可以深入讨论一个命令的用法,
可以找出解决一个问题的高效的方案。

:D:D
呵呵,全凭大家努力!

【发表回复】【查看CU论坛原帖】【添加到收藏夹】【关闭】
 platinum 回复于:2004-01-03 17:12:16
怎么写呢?呵呵
夏天的意思是?
你开头吧!

 零二年的夏天 回复于:2004-01-03 17:16:16
[color=green:555471e976]
比如我们常用ps -aux|grep abc来找出一个进程,但是我觉得信息太多,所以就乱写了个脚本来定位PID。[/color:555471e976]

[code:1:555471e976]
#!/bin/bash
#
#Name:status
#Author:PopZslam
#Popur:To check the veryfiy process
#
printf "UID"\\t"PID"\\t"NAME"\\n
ps -aux|grep -v $0|grep -v grep|grep $1|awk -F" " '{print $1"\t" $2"\t" $11}' 
#End
[/code:1:555471e976]

但是,不敢直接把它kill,因为曾经听说ps的各项有时侯会有问题。

找到PID,我再KILL。
呵呵。

[color=red:555471e976]=======================================[/color:555471e976]

[color=green:555471e976]platinum[/color:555471e976][code:1:555471e976]scp 
我介绍这个吧! 
scp可以替代cp,是属于SSL的cp,这么说可能不太对,但他确实是加密的 
scp有两个功能我在用 
1,超级拷贝(我理解为SUPER CP) 
比如,scp -rp /usr/local/apache2 /www 
就是把/usr/local/apache2下的所有东西复制到/www里,保留属主和属性 

2,远程CP 
如果远程开了SSH,可以利用这个直接把东西复制到远程 
例如scp -rp /root/abc.txt root@xxx.xxx.xxx.xxx:/root 
就是把本地/root/abc.txt复制到远程/root里,用root登陆,保留属主和属性 [/code:1:555471e976]

[color=red:555471e976]=======================================[/color:555471e976]

[color=green:555471e976]seraphim[/color:555471e976]
[code:1:555471e976]redhat中直接使用ll来代替ls -l[/code:1:555471e976]

[color=red:555471e976]=======================================[/color:555471e976]

[code:1:555471e976]
假如我知道/root裏肯定有個文件裏包含"abcdefg"字樣,我怎么知道具體在哪個文件裏?platinum发起。


find /root -exec grep -l "abcdefg" {} \;       通过  

提供者:1122331 


grep "xxxxx" /root > test    试验未成功。RedFlag Ser 3.0
提供者:marlborolj 


grep -rl "abcdefg" /root      通过
提供者:1122331 


find /root |xargs grep "asdfg"|        如果没有 | 通过
提供者:wangfeixue 
[/code:1:555471e976]

[color=red:555471e976]=======================================[/color:555471e976]

[color=green:555471e976]yoursmile[/color:555471e976]
[code:1:555471e976]less file.txt 
看文本文件 

tail -f /var/log/messages 
监视服务器
[/code:1:555471e976]

[color=red:555471e976]=======================================[/color:555471e976]

hutuworm

[code:1:555471e976]如果是拷贝目录的话(尤其是目录里包含多种权限属性和符号链接),scp不如通过ssh进行rsync 

rsync -avze ssh /home/hutuworm hutuworm@remotebox:/home/ 

这样就把本地~/hutuworm分毫不差的同步到remotebox:/home/hutuworm去了

--------------------------------------------

platinum 写到: 
意思是说,如果/home/hutuworm发生了变化,只要这个进程不消失,远程也会随时跟着变化吗? 


实时同步最好用fam来做 
如果对实时性要求不高的话可以在crontab里设定每隔一定时间rsync一次

[/code:1:555471e976]

[color=red:555471e976]=======================================[/color:555471e976]

lightwiter

[code:1:555471e976]
chown root.root * -R 
find . -type f -exec chmod 644 {} \; 
find . -type d -exec chmod 755 {} \;

-----------------

ind ./test -type f -exec cp -f {} ./test2 \; 
将test下(及子目录)的文件都复制到test2目录里。 
也就是将多级目录里的文件都复制出来,但是不要目录。

-----------------

find . -exec rm /mnt/hgfs/f/qmail/{} \; 

find . -maxdepth 1 -exec rm /mnt/hgfs/f/qmail/{} \; 

删除/mnt/hgfs/f/qmail里面与当前目录文件同名的文件,呵呵.一大把文件拷错了目录时用得着呀。

-----------------------

find /var/log -name "*.log" -exec printf "\n" \; -exec echo {} \; -exec date \; -exec printf "\n" \; -exec head -n 10 {} \; > total.log 

find /var/log -name "*.log" -exec printf "\n" \; -exec echo {} \; -exec date \; -exec printf "\n" \; -exec tail -n 10 {} \; > total.log

[/code:1:555471e976]

[color=red:555471e976]=======================================[/color:555471e976]

scbxfeng

[code:1:555471e976]我装好LINUX后做的第一件事就是添加别名: 
在/etc/bashrc 文件里 
alias l='ls -l' 
alias dir='ls' 
alias cls='clear' 
然后再 
export l dir cls 
就可以在命令行直接使用这些别名了,如果你经常用DOS命令的话,也可以把DOS命令加为别名。
[/code:1:555471e976]

[color=red:555471e976]=======================================[/color:555471e976]

lydongkillyou 

[code:1:555471e976]
远程CP 
如果远程开了SSH,客户端安装了SecureCRT 这个软件你就可以利用这个直接把东西复制到远程。 
例如:vcp abc.txt root@100.100.10.91:/目录名 
就是把本地abc.txt复制到远程目录里。 

这个命令听好用的。我一般不用ftp!!
[/code:1:555471e976]

[color=red:555471e976]=======================================[/color:555471e976]

[quote:555471e976="labrun"]
我工作中觉得xargs命令很有用,尤其和find或其它命令结合使用
一个简单的例子:查看当前目录下(包括子目录)所有jsp文件中包含"hello" 的语句:
find . -name "*jsp" | xargs grep hello
统计所有jsp文件的代码总行数:
find . -name "*.jsp" | xargs wc -l | tail -1

---------------------

如果用户目录都是在/home目录下
du -sh /home/*

--------------------

sed也是我常用的一个工具4.05的版本多了一个“i”选相,可对文件直接相应的位置编辑
把某个文件中的hello换成haha
sed -i 's/hello/haha/g' file_name

[/quote:555471e976]

[color=red:555471e976]=======================================[/color:555471e976]

[quote:555471e976="wangfeixue"]
arp |wc -l
统计联结(单机不可使用)[/quote:555471e976]

[color=red:555471e976]=======================================[/color:555471e976]

[quote:555471e976="kioo"]
从光盘查找软件包时 
# m="mount -r /dev/hdc /mnt/cdrom" 
# u="umount /dev/hdc" 
# d=/mnt/cdrom 
插入光盘 
# $m;cd $d 挂上光盘 并进入目录 
# ls |grep 'XXXX' 搜索软件包 
如果找不到 
#$u 
弹出光盘 插入第二张 
#$m;cd $d 重复

-----------------------

看一个目录下的 文件类型 
$ file `ls /path/dir` 
注意 上面用的不是单引号 是在键盘左上角的那个键

[/quote:555471e976]


[color=red:555471e976]=======================================[/color:555471e976]

[quote:555471e976="jourmen "]
grep 的-i 和 -w选项:
-i 不区分大小写
-w严格匹配你的单词

比如:
ps -ef | grep -iw 'aaa'| grep -v grep

匹配你查找的名为aaa的进程
[/quote:555471e976]

 好好先生 回复于:2004-01-03 18:43:01
这个讨论很好,请继续。

 platinum 回复于:2004-01-03 18:50:49
啊,是这个意思啊!!
两位哥哥,我还没学SHELL……
-_-!

 好好先生 回复于:2004-01-03 18:53:40
我也准备好好学一下shell,shell对unix类系统来说是比较重要的。这个一定要会的。

 零二年的夏天 回复于:2004-01-03 18:54:57
澄清:[color=green:f07baaa1d9]我很年青。[/color:f07baaa1d9]

不一定是shell呀,很多命令都有许多选项,但是不一定我们都用过,可是毕竟这些选项不是随意而来的。那么我们就可以来研讨这些选项,从而方便自己的工作呀。

[color=gray:f07baaa1d9]偶是这样理解的呀。[/color:f07baaa1d9]

:D

 platinum 回复于:2004-01-03 19:26:29
scp
我介绍这个吧!
scp可以替代cp,是属于SSL的cp,这么说可能不太对,但他确实是加密的
scp有两个功能我在用
1,超级拷贝(我理解为SUPER CP)
比如,scp -rp /usr/local/apache2 /www
就是把/usr/local/apache2下的所有东西复制到/www里,保留属主和属性

2,远程CP
如果远程开了SSH,可以利用这个直接把东西复制到远程
例如scp -rp /root/abc.txt root@xxx.xxx.xxx.xxx:/root
就是把本地/root/abc.txt复制到远程/root里,用root登陆,保留属主和属性

呵呵,这样行吗?

 好好先生 回复于:2004-01-03 19:29:05
建议有工作环境的都多谈些经验。日常应用的命令,解决问题的方法等。对新手来说都是很大的帮助;总结一下,对自己也是一个提高。这一次我们就谈谈命令吧。

 8b 回复于:2004-01-03 20:14:24
我觉得按功能分类进行讨论比较好

 零二年的夏天 回复于:2004-01-03 21:26:25
习惯了到一个目录就ls,于是:

[code:1:73d70b8370]cd /path/dir;ls[/code:1:73d70b8370]

 platinum 回复于:2004-01-03 21:45:50
这样说好像有点太零散了,不好!

 零二年的夏天 回复于:2004-01-03 22:12:32
那应当怎么做?
我觉得有个更多的资料才更好的整理。
:D

 hotboy 回复于:2004-01-03 22:37:43
ls /path/dir不就可以了吗?
何必要cd /path/dir;ls呢?

 handi 回复于:2004-01-03 22:44:03
编辑一个文件
vi  /path/file

呵呵

 seraphim 回复于:2004-01-04 01:35:30
redhat中直接使用ll来代替ls -l

 零二年的夏天 回复于:2004-01-04 13:35:49
cd /path/dir;ls
中我觉得重要的是[color=red:cc2f8ae6cd][b:cc2f8ae6cd];[/b:cc2f8ae6cd][/color:cc2f8ae6cd]

 零二年的夏天 回复于:2004-01-04 17:18:53
假如我知道/root裏肯定有個文件裏包含"abcdefg"字樣,我怎么知道具體在哪個文件裏?[color=green:e35176ed79]platinum[/color:e35176ed79]发起。

1
find /root -exec grep -l "abcdefg" {} \; [color=green:e35176ed79]通过[/color:e35176ed79]

[color=red:e35176ed79]提供者:[/color:e35176ed79][color=gray:e35176ed79][b:e35176ed79]1122331[/b:e35176ed79][/color:e35176ed79] 

2
grep "xxxxx" /root > test[color=red:e35176ed79]试验未成功。RedFlag Ser 3.0[/color:e35176ed79]
[color=red:e35176ed79]提供者:[/color:e35176ed79][color=gray:e35176ed79][b:e35176ed79]marlborolj [/b:e35176ed79][/color:e35176ed79] 

3
grep -rl "abcdefg" /root[color=green:e35176ed79]通过[/color:e35176ed79]
[color=red:e35176ed79]提供者:[/color:e35176ed79][color=gray:e35176ed79][b:e35176ed79]1122331 [/b:e35176ed79][/color:e35176ed79] 

4
find /root |xargs grep "asdfg"|[color=green:e35176ed79]如果没有  |   通过[/color:e35176ed79]
[color=red:e35176ed79]提供者:[/color:e35176ed79][color=gray:e35176ed79][b:e35176ed79]wangfeixue [/b:e35176ed79][/color:e35176ed79]

 yoursmile 回复于:2004-01-04 19:32:24
我常用的命令。
less file.txt
看文本文件

tail -f /var/log/messages
监视服务器

 GoldSn0ke 回复于:2004-01-04 20:57:09
我是linux新手
很感谢大家提供的资料
有条命令解?
ls -1是什么意思???

 platinum 回复于:2004-01-04 23:39:37
感谢夏天整理!

 sakulagi 回复于:2004-01-05 08:56:44
[quote:a7da32848b="GoldSn0ke"]我是linux新手
很感谢大家提供的资料
有条命令解?
ls -1是什么意思???[/quote:a7da32848b]是小写字母l,不是数字1。

 cccjsxg 回复于:2004-01-05 09:19:57
大家不如把常用的命令再次详细的作个说明,比如他的使用技巧!

 platinum 回复于:2004-01-05 11:43:50
在这里问一个问题
如何停止系统不停地给root发MAIL,MAIL在/var/spool/mail里

 hutuworm 回复于:2004-01-05 12:12:39
如果是拷贝目录的话(尤其是目录里包含多种权限属性和符号链接),scp不如通过ssh进行rsync

rsync -avze ssh /home/hutuworm hutuworm@remotebox:/home/

这样就把本地~/hutuworm分毫不差的同步到remotebox:/home/hutuworm去了

 platinum 回复于:2004-01-05 12:30:09
意思是说,如果/home/hutuworm发生了变化,只要这个进程不消失,远程也会随时跟着变化吗?

 bl00d 回复于:2004-01-05 16:24:12
偶最常用的是 man [1..8] name

 零二年的夏天 回复于:2004-01-05 16:30:52
man确实值得好好读。

 lightwiter 回复于:2004-01-05 19:11:13
chown root.root * -R
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;

 零二年的夏天 回复于:2004-01-05 19:34:09
[quote:fa8fc066d9="lightwiter"]chown root.root * -R
find -type t -exec chmod 644 {} \;
find -type d -exec chmod 755 {} \;[/quote:fa8fc066d9]

看不懂。
 :oops:

已经解决。
谢谢,lightwiter。

 hutuworm 回复于:2004-01-05 21:10:08
[quote:3711ce878b="platinum"]意思是说,如果/home/hutuworm发生了变化,只要这个进程不消失,远程也会随时跟着变化吗?[/quote:3711ce878b]

实时同步最好用fam来做
如果对实时性要求不高的话可以在crontab里设定每隔一定时间rsync一次

 web_jockey 回复于:2004-01-05 22:50:41
谢谢大家能为新手提供方便,不过我觉得命令中最重要的是参数~~命令一般都知道,或者说都可以查到,可是常用的的参数在具体的环境中怎么应用,在什么情况下用什么样的参数。我想像我这样的新手都很想知道。我现在知道的命令已经很多了,可是有时看到你们说的那些。后面加一串参数我就茫然了~~

 platinum 回复于:2004-01-06 00:56:18
[quote:93ead0dd1e="hutuworm"]
实时同步最好用fam来做
[/quote:93ead0dd1e]

如果能举例说明就更好了!

 零二年的夏天 回复于:2004-01-06 09:17:37
[code:1:a39da5e90a]find ./ -type f -exec rm -f {} \;[/code:1:a39da5e90a]
可以执行。

但是:

[code:1:a39da5e90a]find ./ -type f exec cp ./dir {} \;
cp: omitting directory `./dir'
cp: omitting directory `./dir'
[/code:1:a39da5e90a]

mv 也是不行。

怎么做呢?
:D

 lightwiter 回复于:2004-01-06 19:48:26
[quote:56c87af120="零二年的夏天"]
mv 也是不行。

怎么做呢?
:D[/quote:56c87af120]


你是不是要这样做呀。
find ./test -type f -exec cp -f {} ./test2 \;

将test下(及子目录)的文件都复制到test2目录里。
也就是将多级目录里的文件都复制出来,但是不要目录。

 lightwiter 回复于:2004-01-07 06:36:43
find . -exec rm /mnt/hgfs/f/qmail/{} \;

find . -maxdepth 1 -exec rm /mnt/hgfs/f/qmail/{} \;

删除/mnt/hgfs/f/qmail里面与当前目录文件同名的文件,呵呵.一大把文件拷错了目录时用得着呀。

 lightwiter 回复于:2004-01-07 07:23:38
find /var/log  -name "*.log" -exec printf "\n" \; -exec echo {}  \; -exec date  \; -exec printf "\n" \; -exec head -n 10 {} \; > total.log

find /var/log  -name "*.log" -exec printf "\n" \; -exec echo {}  \; -exec date  \; -exec printf "\n" \; -exec tail -n 10 {} \; > total.log

 mfwildfire 回复于:2004-01-07 09:44:25
[quote:32e14dd364="lightwiter"]find /var/log  -name "*.log" -exec printf "\n" \; -exec echo {}  \; -exec date  \; -exec printf "\n" \; -exec head -n 10 {} \; > total.log

find /var/log  -name "*.log" -exec printf "\n" \; -exec..........[/quote:32e14dd364]
 :lol: bu cuo

 scbxfeng 回复于:2004-01-07 10:51:41
我装好LINUX后做的第一件事就是添加别名:
 在/etc/bashrc 文件里
alias l='ls -l'
alias dir='ls'
alias cls='clear'
然后再
export l dir cls
就可以在命令行直接使用这些别名了,如果你经常用DOS命令的话,也可以把DOS命令加为别名。

 lydongkillyou 回复于:2004-01-07 15:47:02
远程CP 
如果远程开了SSH,客户端安装了SecureCRT 这个软件你就可以利用这个直接把东西复制到远程。 
例如:vcp abc.txt root@100.100.10.91:/目录名 
就是把本地abc.txt复制到远程目录里。 

这个命令听好用的。我一般不用ftp!!

 markleung 回复于:2004-01-07 17:07:52
做一个整理吧,在这里一点点挤挤的。

 零二年的夏天 回复于:2004-01-07 17:59:29
不知道是否这样整理。

我放在第三个贴子里了。

 sakulagi 回复于:2004-01-07 20:29:37
夏天兄,不错哦。

 零二年的夏天 回复于:2004-01-07 20:43:07
[quote:d1e06d9d39="sakulagi"]夏天兄,不错哦。[/quote:d1e06d9d39]
:D

 双眼皮的猪 回复于:2004-01-07 20:46:43
精彩无限..尽在这里...:)

 wangfeixue 回复于:2004-01-07 21:39:48
arp |wc -l
统计联结(单机不可使用)

 零二年的夏天 回复于:2004-01-07 21:46:30
不知道大家对 * 的用法有什么心得,自己总是用不好。
比如:
[code:1:0d8dd039ab]ls s* /etc[/code:1:0d8dd039ab]
你会看到如下信息:
[code:1:0d8dd039ab][root@abc /etc]# ls s*
securetty    shadow      shadow.oldbak  snmpd.agentinfo  syslog.conf
sendmail.cf  shadow-     shells         snmpd.conf
services     shadow.bak  smbpasswd      sysctl.conf

samba:
lmhosts      smb.conf      smb.conf.oldbak  smbusers
secrets.tdb  smb.conf.OLD  smbpasswd

security:
access.conf   console.perms  limits.conf   time.conf
console.apps  group.conf     pam_env.conf

skel:
Desktop

snort:
backdoor.rules         info.rules       snort.conf
classification.config  local.rules      sql.rules
ddos.rules             misc.rules       telnet.rules
dns.rules              netbios.rules    virus.rules
dos.rules              policy.rules     web-cgi.rules
exploit.rules          rpc.rules        web-coldfusion.rules
finger.rules           rservices.rules  web-frontpage.rules
ftp.rules              scan.rules       web-iis.rules
icmp-info.rules        shellcode.rules  web-misc.rules
icmp.rules             smtp.rules       x11.rules

sound:
events

squid:
errors   mime.conf          squid.conf
mib.txt  mime.conf.default  squid.conf.default

ssh:
moduli       ssh_host_dsa_key      ssh_host_key.pub
ssh_config   ssh_host_dsa_key.pub  ssh_host_rsa_key
sshd_config  ssh_host_key          ssh_host_rsa_key.pub

sysconfig:
apmd         firewall   keyboard     network-scripts  sendmail.OLD
apm-scripts  gpm        kudzu        pcmcia           squid
authconfig   harddisks  mouse        provider         xinetd
clock        hwconf     named        rawdevices
console      i18n       network      samba
desktop      init       network.OLD  sendmail
[root@zgzzx /etc]# ls s*|less
ESC[00mESC[00msecurettyESC[00m
ESC[00msendmail.cfESC[00m
ESC[00mservicesESC[00m
ESC[00mshadowESC[00m
ESC[00mshadow-ESC[00m
ESC[00mshadow.bakESC[00m
ESC[00mshadow.oldbakESC[00m
ESC[00mshellsESC[00m
ESC[00msmbpasswdESC[00m
ESC[00msnmpd.agentinfoESC[00m
ESC[00msnmpd.confESC[00m
ESC[00msysctl.confESC[00m
ESC[00msyslog.confESC[00m

samba:
ESC[00mlmhostsESC[00m
ESC[00msecrets.tdbESC[00m
ESC[00msmb.confESC[00m
ESC[00msmb.conf.OLDESC[00m
ESC[00msmb.conf.oldbakESC[00m
ESC[00msmbpasswdESC[00m
ESC[00msmbusersESC[00m

security:
ESC[00maccess.confESC[00m
ESC[01;34mconsole.appsESC[00m
ESC[00mconsole.permsESC[00m
ESC[00mgroup.confESC[00m
ESC[00mlimits.confESC[00m
ESC[00mpam_env.confESC[00m
ESC[00mtime.confESC[00m

skel:
ESC[01;36mDesktopESC[00m

snort:
ESC[00mbackdoor.rulesESC[00m
ESC[00mclassification.configESC[00m
ESC[00mddos.rulesESC[00m
ESC[00mdns.rulesESC[00m
ESC[00mdos.rulesESC[00m
ESC[00mexploit.rulesESC[00m
ESC[00mfinger.rulesESC[00m[/code:1:0d8dd039ab]

还听说如果键入:
[code:1:0d8dd039ab]
#pwd
/home/abc
#rm -f *
[/code:1:0d8dd039ab]
就只有哭的份了。  #没敢尝试!

不知道应当怎么使用 [color=red:0d8dd039ab][b:0d8dd039ab]*[/b:0d8dd039ab][/color:0d8dd039ab]

 wangfeixue 回复于:2004-01-07 22:11:03
rm -rf * 更干净了,时时!

 wangfeixue 回复于:2004-01-07 22:12:12
^ 和$的用法

^111表示以111开头的
111$表示一111结尾的

 零二年的夏天 回复于:2004-01-07 22:14:59
[quote:71fd41fbf3="wangfeixue"]^ 和$的用法

^111表示以111开头的
111$表示一111结尾的[/quote:71fd41fbf3]

好东东!

 wangfeixue 回复于:2004-01-07 22:17:46
[quote:0fbca9b7ae="wangfeixue"]rm -rf * 更干净了,时时![/quote:0fbca9b7ae]

你试了没有

 :twisted:  :twisted:

 platinum 回复于:2004-01-07 23:03:56
rm -rf /
最干净,哈哈!!!

 零二年的夏天 回复于:2004-01-08 07:22:31
[quote:60902c656a="wangfeixue"]rm -rf * 更干净了,时时![/quote:60902c656a]

[color=red:60902c656a][b:60902c656a][size=18:60902c656a]*[/size:60902c656a][/b:60902c656a][/color:60902c656a] 怎么展开?

我不敢。

听过不少人因此而哭。
[code:1:60902c656a]UNIX shell扩展“*”,而不是其子命令 
于是rm这样的命令就无法检查“*”这些危险的参数。即使是DOS也对”del *.*”有些提 
示。但在UNIX下,rm * 和 rm file1 file2…是没有区别的。 
删除是永久的 
UNIX没有undelete命令。许多其他更安全的系统则只是标记被删除文件所用的块为“可 
被使用”,然后把它移到一个特殊目录下。如果磁盘满了,这些文件块才会被重新使用 
。这一技术不是什么火箭科学,Macintosh在1984年就提出了“回收站”的想法,而Tene 
x早在1974年就采用了这一技术。连DOS也提供了简单的undelete功能,虽然并不总有效 
。 
[/code:1:60902c656a]

[color=green:60902c656a]《UNIX痛恨者手册》[/color:60902c656a]

 platinum 回复于:2004-01-08 09:14:09
*是代表所有的啊!

 零二年的夏天 回复于:2004-01-08 09:42:36
./ 下么?

还是

/ 下?

 xinyv 回复于:2004-01-08 10:48:56
rm -rf / 我试了一下,在redhat9.0里面,这样操作后没删多少文件,而且我已经恢复了我的系统。

 platinum 回复于:2004-01-08 10:56:40
我没试过,也不敢试,不过我感觉rm -rf /应该试从/开始删除的
就好像rm -rf /usr/loca/xxxx一样

有可能删除的时候删到rm自己,就出问题了



另外我想问一句,LINUX向外发邮件,需要什么命令?SENDMAIL吗?
怎么用?

 零二年的夏天 回复于:2004-01-08 11:14:22
[quote:7bf96651ff]有可能删除的时候删到rm自己,就出问题了[/quote:7bf96651ff]

我觉得是否在执行rm的时候先要读到内存,然后执行。所以会删的一塌糊涂。

[code:1:7bf96651ff]#pwd
/home/abc
#rm -rf *[/code:1:7bf96651ff]

会删除谁呢?


向外发邮件是使用  mail    吧?

 零二年的夏天 回复于:2004-01-08 11:23:52
做了测试,成功!
[code:1:f58f87f7c1]cat test|mail -s hello CU@yahoo.com.cn[/code:1:f58f87f7c1]

其实,这是肯定成功的,如果有网络

 platinum 回复于:2004-01-08 11:27:08
我知道我的为什么失败了
谁帮我看看/usr/lib/sendmail链接到哪了,好像是/usr/sbin/sendmail吧

bin下的又链接到哪了?我删除了,现在正再VM里重新装呢,想看看初始配置是什么

 零二年的夏天 回复于:2004-01-08 11:30:35
[code:1:a301a797b2]#whereis mail
mail: /bin/mail /usr/bin/mail.local /etc/mail.rc /usr/lib/mail.tildehelp /usr/lib/mail.help /usr/man/man1/mail.1
# ll /bin/mail
-rwxr-xr-x    1 root     mail        64796 12Ô 11  1999 /bin/mail[/code:1:a301a797b2]

我没有运行sendmail 。

但是发送的信件之后的域名是在哪里获得的呢?

 platinum 回复于:2004-01-08 11:35:35
我错删了sendmail……
帮我看看怎么链接的,ls -al /usr/lib/sendmail

 零二年的夏天 回复于:2004-01-08 11:38:18
[code:1:94807f13c5]
[root@abc /root]# ls -al /usr/lib/sendmail
lrwxrwxrwx    1 root     root           23  1Ô  8  2003 /usr/lib/sendmail -> /var/qmail/bin/sendmail[/code:1:94807f13c5]

[color=red:94807f13c5]红旗多功能服务器3.0[/color:94807f13c5]

 platinum 回复于:2004-01-08 11:55:40
我的问题解决了,从刚装的VMWARE里的RH73弄到了原来的初始配置

原来这么变态!!
[root@server lib]# ls -al sendmail
lrwxrwxrwx    1 root     root           16 Jan  8 11:47 sendmail -> ../sbin/sendmail

[root@server lib]# ls -al ../sbin/sendmail
lrwxrwxrwx    1 root     root           21 Jan  8 11:46 ../sbin/sendmail -> /etc/alternatives/mta

[root@server lib]# ls -al /etc/alternatives/mta
lrwxrwxrwx    1 root     root           27 Nov  2 21:16 /etc/alternatives/mta -> /usr/sbin/sendmail.sendmail

[root@server lib]# ls -al ../sbin/sendmail.sendmail
-r-sr-xr-x    1 root     root       451280 Apr  8  2002 ../sbin/sendmail.sendmail

不知道为什么搞这么复杂………………

你的机器装了qmail?

 sakulagi 回复于:2004-01-08 12:13:59
所以一般的linux distribution 里root的profile里都有一句:
[code:1:d159409e9a]alias rm='rm -i'[/code:1:d159409e9a]这样每次都会提示一下用户是不是确认删除

 零二年的夏天 回复于:2004-01-08 13:32:02
是。
不是我装的,我不会。
现在也不会使用。
:D

 platinum 回复于:2004-01-08 14:30:51
夏天用的是“红旗多功能服务器3.0”?

 零二年的夏天 回复于:2004-01-08 14:39:38
[quote:1bc840b2e4="platinum"]夏天用的是“红旗多功能服务器3.0”?[/quote:1bc840b2e4]

是呀。
:D

 xinyv 回复于:2004-01-08 15:24:42
忘了说,刚才我用rm -rf /时删完了/dev下的设备后就报错了,然后就不继续删了,我首先重新编译了内核,然后重新连接了内核模块,在重新安装/dev下的所有设备,系统就起来了,但好想还是有点问题,我正在找他还删了什么文件。
发信我提供我的方法:
telnet 192.168.x.x 25
helo xxx.xxx
mail From: xxx@xxxxx.xxx
rcpt To:收信人地址
data 
信的正文……
. 结束
quit 退出


在内部不用smtp的情况下用echo就好了。

 hait 回复于:2004-01-08 17:59:37
说一下我这两天用的最多的sed,大伙讨论很有意思的
VERSION_NUM=`echo aaa-bbb 3.0.10 | sed 's/aaa-bbb//' | sed 's/\.//g' | sed 's/ //g'`
echo $VERSION_NUM 结果:3010  
取当前目录的上一级目录变量,例如当前目录/usr/local/aaa/bbb
path_temp=`echo ${path_pwd} | sed 's/bbb//'`

 platinum 回复于:2004-01-08 18:05:35
[quote:5103437687="xinyv"]发信我提供我的方法: 
telnet 192.168.x.x 25 
helo xxx.xxx 
mail From: xxx@xxxxx.xxx 
rcpt To:收信人地址 
data 
信的正文…… 
. 结束 
quit 退出 
..........[/quote:5103437687]

原来发匿名邮件就是这么做的,不过现在都做了SMTP认证,没办法了

但是往192.168.x.x内部发邮件还是可以的,域外不行,我试过
也就是说,rcpt to和mail from都必须试192.168.x.x这个域的

 guo_zi 回复于:2004-01-08 18:34:16
:em02: 
第一次来,看看!

 零二年的夏天 回复于:2004-01-08 20:40:52
*  的问题还没有完全解决呢。:D

比如:
您可以尝试这个命令:
[code:1:e19573bf45]find /etc -name *hosts -print[/code:1:e19573bf45]

*似乎扩展了很多,连同路径也扩展了,而且结果完全出乎意料。
?倒是还是一个。

 herogl 回复于:2004-01-10 00:49:46
[quote:2eacb76247="hait"]取当前目录的上一级目录变量,例如当前目录/usr/local/aaa/bbb 
path_temp=`echo ${path_pwd} | sed 's/bbb//'`
....[/quote:2eacb76247]

老兄你的系统是什么?这个${path_pwd}不是系统变量啊,如果取当前目录的话应该是$PWD吧。
至于你这个SED的用法,如果路径是/usr/bbb/local/aaa/bbb的话再试试呢?

 reddata 回复于:2004-01-10 08:32:07
有没有一条指令,可以列出所有用户所占的已用空间。

 零二年的夏天 回复于:2004-01-10 17:01:26
du -ks 可以么?

 labrun 回复于:2004-01-10 19:24:15
如果用户目录都是在/home目录下
du -sh /home/*

 labrun 回复于:2004-01-10 19:30:45
我工作中觉得xargs命令很有用,尤其和find或其它命令结合使用
一个简单的例子:查看当前目录下(包括子目录)所有jsp文件中包含"hello" 的语句:
find . -name "*jsp" | xargs grep hello 
统计所有jsp文件的代码总行数:
find . -name "*.jsp" | xargs wc -l | tail -1

 labrun 回复于:2004-01-10 19:34:37
另外sed也是我常用的一个工具4.05的版本多了一个“i”选相,可对文件直接相应的位置编辑
把某个文件中的hello换成haha
sed -i  's/hello/haha/g' file_name

 代码罐头 回复于:2004-01-11 20:47:58
du -h --max-depth=1

 零二年的夏天 回复于:2004-01-11 21:34:32
[quote:73ec822b8b="代码罐头"]du -h --max-depth=1[/quote:73ec822b8b]
输出信息很详细,谢谢!

 reddata 回复于:2004-01-12 07:50:12
没错,输出的信息确实很详细,不知能否按其使用大少排列!那样就更完美了。

 lightwiter 回复于:2004-01-12 22:06:16
[quote:ae13881372="reddata"]有没有一条指令,可以列出所有用户所占的已用空间。[/quote:ae13881372]requota -a

 tigerpower 回复于:2004-01-12 23:33:04
[quote:74c3d3656d="reddata"]没错,输出的信息确实很详细,不知能否按其使用大少排列!那样就更完美了。[/quote:74c3d3656d]

 for Z in M k;do du -h --max-depth=1|grep ^[0-9,.]*$Z |sort -nr; done

 tigerpower 回复于:2004-01-12 23:36:19
代码罐头兄弟是高手呵。

 零二年的夏天 回复于:2004-01-13 01:45:24
偶也写了个脚本,麻烦了一些。各位看看,有没有什么问题,或者改良的方法。

[code:1:cbaac62e15]
#!/bin/bash
#
#---------------------
#
#Name:sizesort
#Author:PopZslam
#Des:To sort the files
#
#---------------------
TEMPFILEFORSORT()
{
du -h --max-depth=1|awk -F" " '{ print $0 }'
}
TEMPFILEFORSORT|grep G|sort -nr
TEMPFILEFORSORT|grep M|sort -nr
TEMPFILEFORSORT|grep K|sort -nr
#
#End
[/code:1:cbaac62e15]

 NetDC 回复于:2004-01-14 14:44:37
[quote:8238d2698a="xinyv"]rm -rf / 我试了一下,在redhat9.0里面,这样操作后没删多少文件,而且我已经恢复了我的系统。[/quote:8238d2698a]

我干过的,删了好像就不能用了,因为当时机器还给别人,要把里面的系统干掉,所以。。。。。。我是记得之后连ls都没啦!!不知道你怎么恢复的,有些奇怪了,我删的是rh8.0。 :?:  :?:

 NetDC 回复于:2004-01-14 14:46:18
[quote:8322e8e4f9="xinyv"]忘了说,刚才我用rm -rf /时删完了/dev下的设备后就报错了,然后就不继续删了,我首先重新编译了内核,然后重新连接了内核模块,在重新安装/dev下的所有设备,系统就起来了,但好想还是有点问题,我正在找他还删了什..........[/quote:8322e8e4f9]

厉害啊,,,不过我上次删的时候好像就没报错。。怪了,我删的是8.0的

 怕冷的猫 回复于:2004-01-15 15:39:12
怎么那么头大啊,这都说的是什么事啊?我怎么一点都看不懂啊?谁发的贴啊?真是不好啊!太没有意思啦!

 怕冷的猫 回复于:2004-01-15 15:41:04
为什么我发的言在最后面啊?我是最新发言的啊?怎么回事啊?

 platinum 回复于:2004-01-15 15:44:26
拜托,你用没用过BBS
你是来探讨问题的?还是……?

 怕冷的猫 回复于:2004-01-15 15:59:50
咦,刚才我明明发言了的,怎么眨眼间就没了呢?

 怕冷的猫 回复于:2004-01-15 16:01:15
我当然是来学习的

 kioo 回复于:2004-01-15 16:36:32
从光盘查找软件包时
  # m="mount -r /dev/hdc /mnt/cdrom"
   # u="umount /dev/hdc"
   # d=/mnt/cdrom
    插入光盘  
  # $m;cd $d       挂上光盘  并进入目录
  # ls |grep 'XXXX'    搜索软件包
  如果找不到
  #$u
   弹出光盘  插入第二张 
  #$m;cd $d   重复

 kioo 回复于:2004-01-15 16:39:05
看一个目录下的 文件类型
 $ file `ls `
注意 上面用的不是单引号  是在键盘左上角的那个键  要在当前目录哦

 jourmen 回复于:2004-01-16 11:19:37
我也写个

grep 的-i 和 -w选项:
-i 不区分大小写
-w严格匹配你的单词

比如:
ps -ef | grep -iw 'aaa'| grep -v grep

匹配你查找的名为aaa的进程

 kioo 回复于:2004-01-17 20:31:27
[quote:bd45a88f7a="platinum"]在这里问一个问题
如何停止系统不停地给root发MAIL,MAIL在/var/spool/mail里[/quote:bd45a88f7a]

初级解决放方案  停掉系统sendmail  把/etc/rc.d/rc*.d中的S80sendmail改名为K80sendmail     rc*.d中 "*"为你设定的运行级 一般为3  或 5   图形界面是5  (登录时)

 kioo 回复于:2004-01-17 21:30:02
[quote:a105597da9="web_jockey"]谢谢大家能为新手提供方便,不过我觉得命令中最重要的是参数~~命令一般都知道,或者说都可以查到,可是常用的的参数在具体的环境中怎么应用,在什么情况下用什么样的参数。我想像我这样的新手都很想知道。我现在知道..........[/quote:a105597da9]


你最好学一下 shell编程  就懂了  呵呵

 零二年的夏天 回复于:2004-01-22 23:28:27
感谢大家一如既往的支持!

 platinum 回复于:2004-01-22 23:44:14
如果装了proftpd,ftptop -d 1是FTP用户列表,每1秒刷新一次,按t可以切换用户活动状态和下载速度监测

原文转自:http://www.ltesting.net