Linux常用命令

@[TOC] Linux常用命令
整理完后发现,成了个大杂烩,有空着再分分类吧,同学们先将就看:

扫描指定IP在指定范围内的端口:

nmap -v -A 192.168.1.1 -p1-65535

打印第N列之后的所有列:

ll|awk '{for(i=1;i<=4;i++){$i=""}; print $0 }'

命令列出所有用户:

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

查看 XXX 用户下的定时任务

crontab -l -u XXX

crontab -e 编辑用户下的定时任务

1、创建test.sh文件

touch test.sh

2、编辑sh文件

vi test.sh

编辑文件 时:
光标移动:上下左右 k j h l
删除 x
删除整个单词(光标-末尾) dw
從當前光標刪除到行末 d$
删除当前行 dd
插入 i
不保存退出 :q!
保存并退出。 :wq或ZZ
撤销 u
替换 r* *表示被替换的字符
快速删除单词替换 cw
全局替换 😒/(old)/(new)/g
打开新的一行并输入 o
3、保存退出

敲击esc, 然后输入 :wq ,回车退出

4、添加可执行权限,当然默认就是可执行的。

chmod +x test.sh

5、运行文件

./test.sh

或者

sh test.sh

6、删除文件

rm test.sh

如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令:

cp /test1/file1 /test3/file2

查看文件大小

du -sh *

或者

du -sh ./*

服务重启

service mysql restart

systemctl restart mysql

查看数据库服务状态

service mysql status

systemctl restart mysql

重启系统

shutdown -r now

查找当前路径下的100天以内的文件并列出:

find . -name BSEG*.txt -mtime -100 -exec ls -l {} \;

带权限复制:

cp /var/spool/mail/root /var/ftp/pub/log -p

当前路径中搜索包含指定字符串的文件:

grep -l 'mall_user_order_head' ./*

查找文件名后缀为log,且大于1G的文件

find ./ -name "*.log" -size +10000000k

将各个目录分别压缩到文件:

ll|grep -E "^d"|awk '{print $9}'|xargs -i tar zcvf {}.tar.bz2 {}

创建用户,赋予表权限##############################

mysql -uroot -p123456
DROP USER 'dbuser'@'%';
DROP PROCEDURE IF EXISTS LOGINUSER;

CREATE USER 'dbuser'@'%';

DELIMITER //
CREATE PROCEDURE LOGINUSER()
BEGIN
SELECT USER(),CURRENT_USER();
SELECT CONCAT(CURRENT_DATE(),' ',CURRENT_TIME());
END;
//
DELIMITER ;
SET @@global.init_connect='CALL LOGINUSER();';
create user 'dbuser'@'%' identified by 'dbuser';
grant select on mysql.* to 'dbuser'@'%' identified by 'dbuser';

grant SUPER on *.* to 'dbuser'@'%';

show grants for dbuser; # 结果:
| GRANT SUPER ON *.* TO 'dbuser'@'%'                                                                   |
| GRANT SELECT ON `mysql`.* TO 'dbuser'@'%'                                                            |
| GRANT ALL PRIVILEGES ON `db1`.* TO 'dbuser'@'%'                                   |


定义服务:

cat /etc/systemd/system/bookstack.service
  1. 内容:
[Unit]
Description=BookStack service
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/usr/local/nginx/html/bookstack/
ExecStart=/bin/sh -c '/usr/local/nginx/html/bookstack/BookStack >> /var/log/bookstack.log'

[Install]
WantedBy=multi-user.target

双网卡网络配置:
线路1外网:光猫->服务器网卡enp1s0f1
线路2内网:光猫->路由器-核心交换机->服务器网卡enp1s0f0
路由配置:

route add -net 172.16.0.0/16 gw 192.168.11.1 dev enp1s0f0
route add -net 192.168.1.0/24 gw 192.168.11.1 dev enp1s0f0

或者在/etc/sysconfig/network-scripts/static-routes添加:

any net 172.16.0.0/16 gw 192.168.11.1
any net 192.168.1.0/24 gw 192.168.11.1

检查可疑挖矿病毒miner进程,每隔5分钟执行:

crontab -e

加入

*/5 * * * * ps -ef|grep minerd|awk '{print $2}'|xargs kill -9

安全策略:
锁定crontab,避免被恶意程序修改:

chattr +ia /var/spool/cron

升级glibc的时候遇到致命错误,命令失效报错,使用sln命令:

sln /lib64/libc-2.29.so /lib64/libc.so.6

符合条件的指定分隔符下的列,并去重复:

cat access.log |grep “14.18”|awk -F " " ‘{print $1}’|sort -u

输出重定向

1>&2 正确返回值传递给2输出通道 &2表示2输出通道
如果此处错写成 1>2, 就表示把1输出重定向到文件2中.
2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道.
举个例子.

$ ls a.txt b.txt 1>file.out 2>&1
$ cat file.out
ls: b.txt: No such file or directory
a.txt

现在, 正确的输出和错误的输出都定向到了file.out这个文件中, 而不显示在前端.
补充下, 输出不只1和2, 还有其他的类型, 这两种只是最常用和最基本的.

查看已经删除,仍被进程占用没有释放空间的文件相关信息

lsof | grep delete  

保存、恢复iptables规则

iptables-save > iptablesrules
iptables-restore < iptablesrules

批量umount挂载点:

 umount $(df -HT | grep '/var/lib/kubelet/pods' | awk '{print $7}’)

gofastdfs: 上传后遇到返回的url不含端口号

可能是需要修改如下位置,即不能删掉末尾的/:

查看磁盘及挂载目录:

lsblk

VM虚拟机磁盘扩容

参考https://blog.csdn.net/qq_45656020/article/details/124387750:

 fdisk -l
fdisk /dev/vda   # n创建,primary分区,分区号选默认,w写入
 vgdisplay
 reboot      # 重启服务器,谨慎操作
fdisk -l
lsblk
vgdisplay
pvdisplay
pvcreate /dev/vda3
pvdisplay
vgextend centos /dev/vda3
vgdisplay
lvextend /dev/mapper/centos-home /dev/vda3
xfs_growfs /dev/mapper/centos-home

而对于非LVM方式挂载磁盘:

https://baijiahao.baidu.com/s?id=1729517367041260855&wfr=spider&for=pc

可以批量生成docker push命令的命令

 docker image ls|grep 123|awk '{print "docker push "$1":"$2}’

批量生成helm 删除已部署实例的命令

helm list -A|awk '{print "helm delete "$1,"-n "$2}'|grep -Ev "produce1|default|harbor|prod|dev|dashboard|ms|NAME”

SVN基础命令:

检出代码:
svn checkout https://192.168.1.1:1443/svn/code --username u1 --password pwd1

找出可用空间最大的挂载点:

df -T|awk ‘{print $5,$7}’ |sort -nr|awk ‘{print $2}’|head -n 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值