Linux常用命令及技巧
在Linux的世界里,有太多的细节需要去记住:Bash命令,常用的配置,一些实用的小技巧。。。这些知识非常细碎,但却会时不时地用到。虽然从各种各样的Linux书籍中可以找到相关的内容,但这些细节过于庞杂,完全用脑子记住比较困难,而翻阅书本又比较的消耗时,因此集中总结在这里,并于今后不断补充,方便查阅。
#!/bin/sh for file in $(find . -type f -name <filename>) do cat $file | sed "s/text_to_replace/replacement/g" > $file.new mv $file.new $file done
Bash代码
sed -ie "s/text_to_replace/replacement/g" `find . -type f -name <filename>`
注意:sed在Linux下是用-i,在Unix/Macos下是 -ie
写个脚本,把data目录下,所有size为0,但是文件名不是以.a结尾的文件,移到别的目录
Bash代码
find . -size 0 ! -name '*.a' -print0 | xargs -0 -I FILE mv FILE <otherdir>
统计项目的java代码总行数
Bash代码
wc -l $(find . -type f -name '*.java')
将用户usera分配进用户组groupa
Bash代码
usermod -a -G groupa usera
使用DHCP
修改相应的网卡配置文件,假设网卡名称为eth0,那么文件名为:/etc/sysconfig/network-scripts/ifcfg-eth0
Bash代码
DEVICE=eth0 USERCTL=no ONBOOT=yes BOOTPROTO=dhcp BROADCAST=192.168.1.255 NETWORK=192.168.1.0 NETMASK=255.255.255.0 IPADDR=192.168.1.5
将ONBOOT设为yes,将BOOTPROTO设为dhcp
设置BASH快捷键
把常用的,同时字符比较多的命令绑定到快捷键上。比如经常用到的:
Bash代码
ps -ef | grep <process_name>
将上述命令绑定到CTRL+B:首先确保BASH环境为emacs模式,而不是vi]模式:
Bash代码
set -o emacs
然后在~/.inputrc中添加下述内容:
Bash代码
$if mode=emacs "\C-b": "ps -ef | grep " $endif
最后输入下述命令使配置生效:
Bash代码
source ~/.inputrc
在BASH下设置网络代理
Bash代码
export http_proxy=http://<your_proxy>:<your_proxy_port>
从机器A登录至机器B,使用SSH进行无密码登录
在机器A上生成个人证书:
Bash代码
ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (~/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in ~/.ssh/id_rsa. Your public key has been saved in ~/.ssh/id_rsa.pub. The key fingerprint is: ... The key's randomart image is: ...
将生成的公钥id_rsa.pub里面的内容,复制到机器B的~/.ssh/authorized_keys中。
写一行命令,统计出/usr/bin目录中的bash脚本和每个脚本的代码行数,并排序
Bash代码
wc -l $(file /usr/bin/* | grep "script" | grep -v perl | cut -d: -f1) | sort
使MacOS的ls命令显示颜色
编辑~/.profile:
Bash代码
alias ls="ls -G"