Linux 常用命令和配置

命令

批量执行脚本

ls *.sh | while read f;do bash $f || wx_remind "Error! file:$f";done

创建符号链接而不进行文件复制

cp -s

显示目录大小

du -h  cache/
du -h cache/ | tail -n 1

删除空目录

rm -d

mv 常用参数

-n 不覆盖已存在的文件
-u 当源文件比目标文件新的时候移动,或者目标文件不存在的时候移动

重新配置默认Java版本

update-alternatives --config java

查看端口是否被暂用

sudo netstat -ap | grep 8080
sudo netstat -ant | grep 3306

查找文件

传送门:35 个 Linux ‘find’ 命令的使用方法

查找文件内容

find ./ -type f -exec grep -H 't_totalpv_dayavg' {} \;
grep -inr "xxx" ./ 找到目录中包含查找字符串的文件
grep -l "xxx" ./ 只返回文件名
find . -name '*.php' -exec grep -l 'eval' {} \; 在当前目录中找到所有php文件中包含eval的文件.
grep -nw apple fruit.txt 查找完整单词.
grep -nv apple fruit.txt 找到不匹配的记录
grep -c apple fruit.txt 查找匹配到的行数
grep -i break-in auth.log | awk {'print $12'} 查找内容并输出第12列.
ping -c 1 example.com | grep 'bytes from' | cut -d = -f 4  显示位于bytes from行的第四列,其中分隔符为=

格式化输出

printf  "%-5s %-10s %-4s\n" No Name  Mark
printf  "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456
printf  "%-5s %-10s %-4.2f\n" 2 James 90.9989
printf  "%-5s %-10s %-4.2f\n" 3 Jeff 77.564

替换字符

echo 'This is ROT-13 encrypted.' | tr 'A-Za-z' 'N-ZA-Mn-za-m'  --加密
echo 'Guvf vf EBG-13 rapelcgrq.' | tr 'A-Za-z' 'N-ZA-Mn-za-m'  --解密
tr 'A-Z' 'a-z' people.txt
tr ',' '\t' < us_presidents.csv > us_presidents.tsv
tr -dc [:print:] < file1 > file2 移除不可见字符
tr -d '\015\032' < windows_file > unix_file  移除换行符
tr -s '  ' < file1 > file2 移除双空格
sed 's/^/   /g' fruit.txt  替换成tab制表符, 终端下需要按ctrl+v
sed -E 's/<[^<>]+>//g' homepage.html 去除tag标记
sed -E 's/(...)time/\1light/' 或 sed 's/\(...\)time/\1light/'
echo "Dan Stevens" | sed -E 's/([A-Za-z]+) ([A-Za-z]+)/\2, \1/' 单词互换.
sed -E 's/(apple|pear|plum|peach)/\1 tree/' fruit.txt
sed '4297196!d' /temp/tmp_sqp_export_2711.txt 获取指定行的数据。

kill 进程

pgrep gedit或pidof mysql 通过名字找到进程
ps aux | grep 'badprocesses' | cut -c 11-15 | xargs kill -9

查看占用端口的进程并Kill

sudo lsof -i tcp:80
sudo lsof -i tcp:80 -s tcp:listen
sudo lsof -t -i tcp:80 -s tcp:listen | sudo xargs kill

查看进程使用的环境变量

cat /proc/12501/environ | tr '\0' '\n'

终端翻页

Shift+[page up/page down]

查看开启的端口

netstat -tnlp

显示CPU信息

cat /proc/cpuinfo

硬盘测试

dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync

创建目录

mkdir -p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}

创建文件

touch file_{1..1000} 创建一千个文件
touch {apple,banana,cherry,durian}
touch {1..10..2} 创建奇数文件
touch {w..d..2}
touch {apple,banana,cherry,durian}_{01..100}{w..d}

复制文件

复制文件到多个目录

echo /home/user/1/ /home/user/2/ /home/user/3/ | xargs -n 1  cp /home/user/my_file.txt

复制文件的2-10,30-35,49-最后一列

cut -c 2-10,30-35,49- dir_content.txt
cut -f 2,6 -d "," us_presidents.csv  -d 指定分隔符

发现SSH登录失败记录

1
grep "Failed password" /var/log/auth.log
Jan  2 14:04:40 Master sshd[12614]: message repeated 2 times: [ Failed password for root from 182.100.67.129 port 45213 ssh2]
Jan  2 14:04:51 Master sshd[12618]: Failed password for root from 182.100.67.129 port 50977 ssh2
Jan  2 14:04:56 Master sshd[12618]: message repeated 2 times: [ Failed password for root from 182.100.67.129 port 50977 ssh2]

CentOS 特有命令

rpm -qa 显示已安装的软件
yum provides ab 查找一个命令在哪个软件包中

Ubuntu 特有命令

dpkg-l 显示已安装软件
apt-get -u dist-upgrade 版本更新
apt-get --purge remove apache 完全删除软件,并且不保留配置文件
apt-cache search string 搜索软件列表中搜索字符串
dpkg-reconfigure tzdata 配置时区

Arch 特有命令

pacman -Qq |wc -l  --显示安装了多少软件
pacman -Rs package_name --删除软件,若关联软件与其他软件没有依赖关系也一并删除.
pacman -Rn 删除软件的同时删除备份文件.

其他配置

Ubuntu使用root登陆

sudo passwd root
vim /etc/ssh/sshd_config
将PermitRootLogin 的值改为yes
sudo service ssh restart

中文支持

set-up-a-clean-utf8-environment

禁Ping

修改/etc/sysctl.conf加一行

net.ipv4.icmp_echo_ignore_all = 1

执行sysctl -p加载配置后生效。

临时启用Ping

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

禁止IP

iptables -I INPUT -s 124.115.0.199 -j DROP
/etc/rc.d/init.d/iptables save
service iptables restart

修改DNS

vim /etc/resolv.conf

Centos设置静态IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
添加以下内容
IPADDR=192.168.1.8
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=no更改为ONBOOT=yes
BOOTPROTO=dhcp更改为BOOTPROTO=none

在PATH中添加一条新路径

export PATH="$PATH:/home/user/bin"
打赏支持:支付宝/微信。如果你觉得我的文章对你有所帮助,可以打赏我哟。