linux 操作

linux sed 批量替换多个文件中的字符串

sed -i "s/查找字段/替换字段/g" \`grep 查找字段 -rl 路径\`
sed -i "s/oldstring/newstring/g" `grep oldstring -rl yourdir`

例如:替换/home下所有文件中的www.admin99.net为admin99.net

sed -i "s/www.admin99.net/admin99.net/g" `grep www.admin99.net -rl /home`
exp:sed -i "s/shabi/$/g" `grep shabi -rl ./`

将文件1.txt内的文字“garden”替换成“mirGarden”

sed -i "s/garden/mirGarden/g" 1.txt   //sed -i 很简单

将当前目录下的所有文件内的“garden”替换成“mirGarden”

sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已

设置环境变量

设置用户环境变量

修改~/.bashrc文件,添加

PATH=$PATH:/Android/bin/

修改系统环境变量

修改/etc/profile文件,添加

PATH=$PATH:/Android/bin/

勿删libc.so.6怎么办

linux 很多shell命令都离不开 libc.so.6,所以如果勿删了的话,什么也做不了。不过还好有补救措施

# LD_PRELOAD=/lib/libc-2.6.1.so ln -s /lib/libc-2.6.1.so lib/libc.so.6

在命令行传递密码给scp

我在shell脚本中拷贝文件到远端服务器,可是每次提示我输入密码,很繁琐。使用输入重定向也不行,因为scp直接从tty读取密码。有没有什么解决方法呢?linux提供了另外一个工具sshpass,可以解决这个问题

sshpass -p "123456" scp list.txt [email protected]:/path/to/destination

cat过滤重复行

排除重复行(这个只能排除相邻的重复行)

cat data.txt | uniq 

要删除所有重复行,就要这样做,先排序然后在排重

cat data.txt | sort | uniq 
或者
sort -u data.txt

你可能感兴趣的:(linux 操作)