摘要:关于常用的linux命令记录,以后用到的linux命令尽量记载在这里,不定时更新

批量删除文件

// 批量删除当前目录下以.c结尾的文件,不删除子目录中的文件
find . -name "*.c" -maxdepth 1 | xargs rm -f
find . -maxdepth 1 -name "*.c" -exec rm -f {} \;

// 批量删除当前目录以.c结尾的文件,不删除子目录中的文件
rm -f *.c

批量解压文件

// 批量解压当前目录下以.rar结尾的文件
find . -name "*.rar" -exec unrar x {} \;

// 将/www下的所有文件压缩到www1.zip
zip -r /root/www1.zip /www

// 将file1 file2文件添加进filename.zip压缩文件
zip -r filename.zip file1 file2 

// 将www1.zip解压到/root/dd目录下,解压后会形成/root/dd/www/文件夹
unzip -o -d /root/dd /root/www1.zip

// 将www1.zip解压到当前目录,会在当前目录形成一个www文件夹
unzip www1.zip

// 从v2ray-linux-64.zip单独提取出来geosite.dat,geoip.dat文件
unzip -o v2ray-linux-64.zip "v2ray" "v2ctl" "geosite.dat" "geoip.dat"

// 1.zip是在windows压缩的,因为编码的问题,需要linux把密码转成gbk,在当成解压密码
unzip -P "$(echo -n 啧啧|iconv -f utf-8 -t gbk)" -O CP936 1.zip

// 将rardir下的所有文件压缩到1.rar
rar a 1.rar rardir

// 将1.rar解压到当前目录下,解压后会在当前目录形成rardir文件夹
rar x 1.rar

// 将1.rar解压到/root/zeze下,解压后会在当前目录形成rardir文件夹
rar x 1.rar /root/zeze

// 将1.rar解压到/root/zeze下,解压后会在当前目录形成rardir文件夹,和上面命令一样
unrar x 1.rar /root/zeze

// 将1.7z解压到/www/downloads/temp下
7za x /www/downloads/1.7z /www/downloads/temp

查找

查找python路径

which  查看可执行文件的位置。
whereis 查看文件的位置。 
locate   配合数据库查看文件位置。
find   实际搜寻硬盘查询文件名称。
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which python
whereis python
locate python

grep

// 在/usr/local/lib/python3.5/dist-packages/Cython下的以.py后缀结尾的文件中寻找字符串docstrings
grep -r --include="*.py" "docstrings" /usr/local/lib/python3.5/dist-packages/Cython
grep -i "root" /etc/passwd  //不区分大小写
grep -n "root" /etc/passwd //显示匹配字段所在行号

chmod

chmod +x 1.bash //给1.bash添加可执行权限

查看占用磁盘大小

df -h //查看磁盘设备以及空间占用情况

fdisk -l //查看磁盘设备以及空间占用情况

du -h --max-depth 1 /www //查看www文件下各个文件占用的空间

查看机器cpu类型

# 显示机器有几个cpu以及cpu的型号
cat /proc/cpuinfo | grep name | cut -f2 -d:

查看操作系统信息

常用的linux命令1.jpg

#显示系统详细信息-依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
uname -a

最重要的两条命令:
uname -v //显示操作系统的版本,可以定位到操作系统的版本,然后查找漏洞
uname -r //显示操作系统的内核版本号

显示linux内核名称
uname
uname -s

uname命令常用参数:
-a或–all 详细输出所有信息
-m或–machine 显示主机的硬件(CPU)名
-n或-nodename 显示主机在网络节点上的名称或主机名称
-r或–release 显示linux操作系统内核版本号
-s或–sysname 显示linux内核名称
-v 显示显示操作系统是第几个 version 版本
-p 显示处理器类型或unknown
-i 显示硬件平台类型或unknown
-o 显示操作系统名

对用户组的操作

创建一个用户组

# 创建一个名为test1的用户组
groupadd test1

删除一个用户组

# 删除一个名为test1的用户组
groupdel test1

对用户的操作

创建一个用户

# 创建一个名为test1的用户,-m选项表示为其创建用户目录
useradd -m test1

删除一个用户

userdel命令可以用于删除用户帐号及相关档案。
语法:userdel [-r] 用户名
参数:-r 用于彻底删除,用户HOME目录下的档案会被移除,在其他位置上的档案也将一一找出并删除,比如路径/var/mail/用户名 下的邮件。
警告:userdel不允许你移除正在线上的使用者帐号。你必须kill此帐号现在在系统上执行的程序才能进行帐号删除。

# 杀死keepnight用户的全部进程
killall -u keepnight
# 删除一个叫keepnight的用户
userdel keepnight

彻底删除用户

# 杀死keepnight用户的全部进程
killall -u keepnight
# 彻底删除一个叫keepnight的用户
userdel -r keepnight

修改用户所属用户组

# 将test1用户添加到redis组中,注意是覆盖不是追加组
usermod -g redis test1

# 将test1用户添加到redis组中,注意是追加组不是覆盖,可以多次追加
gpasswd -a test1 redis

# 将test1用户添加到redis组中,注意是追加组不是覆盖,多次追加无效
usermod -G redis test1

#  将test1用户从redis组中移除
gpasswd -d test1 redis

设置文件的拥有者和用户组

方式1

# 将linux下的www-data目录的拥有者和用户组设置为www-data
# www-data:www-data 拥有者:用户组
chown -R www-data:www-data /www

方式2

# 将linux下的www-data目录的拥有者设置为www-data
chown -R www-data /www
# 将linux下的www-data目录的用户组设置为www-data
chgrp -R www-data /www

linux查看用户

# linux查看有用的用户(能够登录系统或者使用系统服务)
cat /etc/passwd | grep -v /bin/false | cut -d : -f 1

# linux查看所有用户(只要是个用户就算)
cat /etc/passwd | cut -d : -f 1

linux查看用户组

cat /etc/group | cut -d : -f 1

快速查看nginx页面的访问情况

cd /var/log/nginx && zcat access.log.*.gz | awk '{print $1,$7}' | sort -n | uniq -c | sort -n | tail -n 15

卸载华为云监控

cd /usr/local/uniagent/script
./uninstall.sh

删除卸载软件后残留的配置文件

$ dpkg -l |grep "^rc"|awk '{print $2}' |xargs aptitude -y purge

linux开启root远程登录

sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/g' /etc/ssh/sshd_config;
sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/g' /etc/ssh/sshd_config;
service sshd restart

ssh-keygen

-C "test" 选项一定要使用,不然会将自己电脑的电脑名称附加到生成的公钥里面。
//生成rsa私钥和公钥
//-C "test"会把"test"附加在公钥末尾。
//如果不指定,会默认附加自己电脑的电脑名称
//-f ./test8 指定文件保存路径
ssh-keygen -t rsa -C "test" -f ./test8

//更改私钥的密码
//-p 表示更改私钥的密码
//-f /root/your_private_path,指定私钥路径
ssh-keygen -p -f /root/your_private_path

//将openssh格式公钥转换为pem格式公钥
//-e表示将openssh格式公钥转换成pem格式公钥
//-m指定导出的公钥为pem格式
ssh-keygen -f /root/temp/openssh.pub -e -m pem > pulic.pem

//将pem格式公钥转换为openssh格式公钥
//-i 表示将其他格式公钥转换成openssh格式公钥 
//-m指定-f输入的为pem格式公钥
ssh-keygen -f /root/temp/pulic.pem -i -m pem > openssh.pub