Linux命令使用的一些积累(持续更新)

1. 使用创建文件的命令一次性批量创建(test1,test2,test3,test4,test5)这几个文件

touch test{1..5}

 

2. 使用一条命令创建/ni/hao/a

mkdir -p /ni/hao/a

 

3. awk命令

3.1 基础用法

awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file

 [-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value

'  '          引用代码块

BEGIN   初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符

//           匹配代码块,可以是字符串或正则表达式

{}           命令代码块,包含一条或多条命令

         多条命令使用分号分隔

END      结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息

 

3.2 使用awk取出系统IP地址,使用多种方法

方法1: ifconfig ens33 | grep "inet " | awk '{print $2}'

先通过ifconfig查出系统网卡为ens33,ip地址前都是inet,整个字段有inet 和inet6,取出所要的inet 将其第二列打印出来,即为所要的ip地址

方法2: ifconfig ens33 | awk '/inet / {print $2}'

awk也支持过滤,通过两个斜杠来匹配过滤条件,然后跟上要执行的动作

 

4. 将 /etc/sysconfig/selinux 文件中的 SELINUX=enforcing 替换成 SELINUX=disabled

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux 

如果不加 -i 则为伪替换 匹配内容中的g意思是全局,分隔符可以用多种符号 's###g' 或 's@@@g' 或 's///g' 

 

5. 现有1-100个文件,需要保留75,76,78三个文件,其余全部删除

rm -f $(ls | grep -Ev "75|76|78")

$() 是固定的写法,里面表示command命令,这些命令会优先执行

 

6. 添加xiaoming用户,用户ID为6969,基本组为ops,附加组为dev,注释信息xiaoming student,登陆shell:/bin/bash

groupadd ops
groupadd dev
useradd -u 6969 -g ops -G dev -c "xiaoming student" -s /bin/bash

-g 为基本组,可以想成是亲爹,只能有1个 , 而 -G 为附加组,可以想成是干爹,可以有多个

 

7. 批量删除UID>1000的用户

awk -F ':' '$3>1000{print $1}' /etc/passwd | sed -r 's#(.*)#userdel -r \1#g' | bash

awk:以冒号为分隔符,提取一行对比第三列是否大于1000,如果大于则打印它第一列的名称(仍然是以冒号为分隔符)

sed:拼接命令

 

8. 以非交互的方式给用户设定密码

echo "123" | passwd --stdin 用户名

 

9. su与环境变量的关系

su - username    属于登陆式Shell
su username      属于飞登陆式Shell

它们最大的区别在于加载的环境变量不一样

 

10. 以某个用户的身份来执行某个任务,使用命令 su -c username

su - "root" -c "echo "123" | passwd --stdin root" 
使用root用户将root的密码改为123

 

11. 添加sudo权限

usermod username -G wheel

 

12. 将 /etc/passwd 中的用户按 UID 大小排序

sort -t":" -k3 -n /etc/passwd

 -t 可以在 sort 命令中匹配字符,这边是按 :匹配,对第三列进行排序,加上 -n ,以数字的大小来比对

 

13. 统计当前 /etc/passwd 中用户使用的 shell 类型

awk -F ':' '{print $7}' /etc/passwd | sort | uniq -c 

以 : 为分隔符,取出第7列的内容并打印出来,作为排序的输入(只有排序过的数据才能去重统计),最后将其统计出来,-c 可以看到具体数目,运行结果如下:

 

14. 应用程序链接数据库的密码是 123456 ,但忘记这个密码在哪个文件里了,可以通过find结合grep找出来

find /code -type f | xargs grep -nRi "123456"

-n 显示行号          -R 递归搜索            -i  忽略大小写

 

15. 查看文件大小

du -sh file
# du 会显示指定的目录或文件所占用的磁盘空间
# -s 显示总和
# -h 以人性化的方式显示

 

16. 打包与压缩

16.1 常见压缩包类型

格式

压缩工具

.zip

zip压缩工具

.gz

gzip压缩工具,只能压缩文件,会删除原文件(通常配合tar使用)

.bz2

bzip2压缩工具,只能压缩文件,会删除原文件(通常配合tar使用)

.tar.gz

先使用tar命令归档打包,然后使用gzip压缩

.tar.bz2

先使用tar命令归档打包,然后使用bzip压缩

 

16.2 文件打包与压缩 tar

#语法:tar [-zjxcvfpP] filename

c  #创建新的归档文件

x  #对归档文件解包

t  #列出归档文件里的文件列表

v  #输出命令的归档或解包的过程

#指定包文件名,多参数f写最后

z  #使用gzip压缩归档后的文件(.tar.gz)

j  #使用bzip2压缩归档后的文件(.tar.bz2)

J  #使用xz压缩归档后的文件(tar.xz)

C  #指定解压目录位置

X  #排除多个文件(写入需要排除的文件名称)

h  #打包软链接

--hard-dereference  #打包硬链接

--exclude  #在打包的时候写入需要排除文件或目录

 

16.3 常用打包与压缩组合

czf  #打包tar.gz格式

cjf  #打包tar.bz格式

cJf  #打包tar.xz格式

 

zxf  #解压tar.gz格式

jxf  #解压tar.bz格式

xf  #自动选择解压模式

tf  #查看压缩包内容

 

17. rpm

注意点:不支持自动处理依赖,需要人为处理

17.1 基础命令示例

-i:安装软件包
-v:显示安装过程
-h:显示安装进度条

安装: rpm -ivh /PATH/package.rpm
卸载: rpm -e package.rpm
升级:  rpm -Uvh /PATH/package.rpm
查询:
rpm -q vsftpd        #查询软件包是否安装
rpm -qa vsftpd       #查询系统中所有的软件是否存在vsftpd
rpm -ql vsftpd       #查询软件包将内容解压到哪些目录中了
rpm -qc vsftpd       #查询软件包配置所存储的位置
rpm -qf /usr/bin/find   #查看绝对路径文件,属于哪个软件包提供

17.2 rpm查询软件包

选项描述
rpm -q查看指定软件包是否安装
rpm -qa查看系统中已安装的所有RPM软件包列表
rpm -qi查看指定软件的详细信息
rpm -ql查询指定软件包所安装的目录、文件列表
rpm -qc查询指定软件包的配置文件
rpm -qf查询文件或目录属于哪个RPM软件

 

18. yum安装、卸载、升级、查询

yum源:一个.repo文件中包含了 http | https | ftp协议的地址
yum仓库:当打开地址,能够看到一堆软件包(仓库:一堆软件的合集)

安装:    

yum install vsftpd
yum reinstall vsftpd
yum localinstall vsftpd

卸载:

yum remove vsftpd -y

升级:

yum update -y  #升级所有;
yum update package #升级指定的软件包;

查询:

yum list   #查询所有仓库
yum list installed #查询系统中已安装的软件包;
yum provides #命令名称|文件的路径;

 

19. 清缓存

echo "3" > /proc/sys/vm/drop_caches

 

20. Linux系统中,删除/data/files⽬录下1周前修改过且⼤于10MB的⽂件

find /data/files -type f -time +7 -size +10M -exec rm {} \

 

21. 更改Linux主机名

hostnamectl set-hostname gyx

 

22. 查看端口

netstat -lntp

 

23. 给mysql授权

grant all privileges on *.* to 'all'@'%' identified by '123';

 

24. 开启forward转发

sysctl -a | grep forward  #查看forward开启

或者

sysctl -p

 

vim /etc/sysctl.conf   #打开此配置文件进行编辑

上述步骤也可直接用重定向追加的命令解决:

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值