linux常用命令记录

王忘杰
2022-06-25 / 3 评论 / 4,554 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年05月25日,已超过550天没有更新,若内容或图片失效,请留言反馈。

基础命令

systemctl enable --now zabbix-agent2 启动并开机启动服务
hostnamectl set-hostname xx修改主机名
fstrim -a 磁盘空间回收
pwd 显示当前目录
pwd -P 显示物理路径而非软连接
pwd -L 显示软连接
.. 上层目录
. 当前目录
who 当前登录的用户和登录方式
poweroff 关机
reboot 重启
clear 清空屏幕
scp -pr /tabk root@192.168.1.10:/test 
PATH环境变量
echo $PATH
history 命令历史
cd 切换目录
ls 显示目前内容
-a 显示隐藏文件
-l 显示详细信息
-h 大小单位
    
mkdir 创建目录
-p 递归创建
-m 777  权限模式
-v 显示详细信息

不调用别名
cp
/cp 
    

lsof 列出打开的文件进程
    
sudo tcpdump -i eth0 -c 3 
输入三个包
    
netstat -r 路由表
netstat -i 接口
route -n 查看路由表
ip route add 172.17.0.0/16 via 172.16.21.1 添加静态路由
ip route del 172.17.0.0/16 via 172.16.21.1 删除静态路由

修改Docker默认网段,配置加速
/etc/docker/daemon.json(自行创建)
{
    "registry-mirrors": [
        "https://dockerproxy.com",
        "https://hub-mirror.c.163.com",
        "https://mirror.baidubce.com",
        "https://ccr.ccs.tencentyun.com"
    ],
    "bip":"192.168.66.1/24"
}



curl ifconfig.me 查看外网IP

替换系统rm命令,带回收站

建立rm目录 mkdir 700 /rm
myrm(){ D=/rm/$(date +%Y%m%d%H%M%S); mkdir -p $D; mv -v "$@" $D && echo "moved to $D ok"; }
alias rm=myrm
~/.bash_profile 

centos在关机或开机时一直等待,提示A stop job is running for ……
通过systemd的设置项跳过
/etc/systemd/system.conf

DefaultTimeoutStartSec=15s
DefaultTimeoutStopSec=15s
systemctl daemon-reload

作者:Cindy_lina
链接:https://www.jianshu.com/p/412094e4aab0
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

tree 树状显示目录内容
tree /boot/ -P *.conf 显示boot目录下已conf结尾的文件
    
ctrl+z 将当前程序放入后台
fg切换回前台
    
查看当前用户
whoami
who am i
    
切换用户
su -l xx
查看用户组 groups xx
    
cat /etc/group | sort 查看用户组并进行字典排序
sort -r反转
sort -t ':' -k 3 以:为分隔符,以第三段为基准排序
sort -n 按数字排序
uniq 过滤重复行
grep -E "aa|bb" 同时匹配aa和bb关键字
sudo usermod -G sudo lilei 把lilei加入到sudo用户组
sudo deluser lilei --remove-home 删除用户并删除用户目录
一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件
sudo chown root aa 改变aa文件的文件所有者为root
chmod ugo-rw aa    减去所有者 用户组 其他用户的读取写入权限
mkdir -p father/son/grandson  同时创建父目录

# 使用通配符批量创建 5 个文件
$ touch file{1..5}.txt
    
# 批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后缀的文件
$ rename 's/\.txt/\.c/' *.txt
    
# 批量将这 5 个文件,文件名改为大写
$ rename 'y/a-z/A-Z/' *.c
cat -n passwd    带行号查看文件
nl    带行号查看文件
    
tail /etc/passwd -n 1    显示最后一行
查看文件类型 file /bin/ls
    
vim
u 撤销
dd删除一行
p粘贴一行
:s/three/thre 替换
:! 执行命令
:r !ls 提取内容
:r xx.exe 提取文件
v可视化
y复制
    
输出一个变量  echo $tmp
PATH=$PATH:/home/xx/xx 添加PATH环境变量
source  .zshrc  让变量自己生效
    
搜索命令  whereis who
which
find / -name xx
打印当前目录下的文件目录列表 ,可以使用如下命令:
find  .  -print
找到当前目录下所有 php 文件,并显示其详细信息,可以使用如下命令:
find . -name “*.php” -exec ls -l {} \;
    
time ls 测量命令运行时间
    
zip -r -o xx.zip /home/xx  zip压缩
du -sh 0 *  当前目录文件大小,目录深度0
unzip -l xx.zip  查看包内容
unzip -O GBK xx.zip 已中文编码解压
    
tar -cvzf xx.tar.gz ~  压缩
tar -xvzf xx.tar.gz     解压缩
    
修复rpm包
yum reinstall -y
    
r    查看文件内容    列出目录内容
w    修改文件内容    创建删除目录
x    执行文件        进入目录

/bin/bash^M: bad interpreter报错
使用dos2unix filename
    
    
df -h 查看分区结构
    
;顺序运行  命令执行顺序
&&正确就运行
||错误就运行
    
cut /etc/passwd -d ':' -f 1,6   以:为分隔符 打印第一个和第六个字段
打印/etc/passwd文件中每一行的前N个字符:
    
# 前五个(包含第五个)
$ cut /etc/passwd -c -5
# 前五个之后的(包含第五个)
$ cut /etc/passwd -c 5-
# 第五个
$ cut /etc/passwd -c 5
# 2到5之间的(包含第五个)
$ cut /etc/passwd -c 2-5
    
# 查看环境变量中以"yanlou"结尾的字符串
$ export | grep ".*yanlou$"
    
cat xx > 1.txt  2>&1 2重定向到1内
echo 1 | tee 1.txt    同时重定向
zsh;exec 1>1.txt;exit永久重定向
/dev/null 2>&1黑洞
这个命令在有些时候十分有用,特别是当用来处理产生大量输出结果的命令如 find,locate 和 grep 的结果,详细用法请参看 man 文档。
$ cut -d: -f1 < /etc/passwd | sort | xargs echo
    
反向解析
nslookup -qt=ptr 45.63.123.106

关闭selinux
临时 setenforce 0
永久 /etc/selinux/config
SELINUX=disabled

硬盘读写测速
[root@veeam-centos ~]# time dd if=/dev/zero bs=10M of=/test.b count=5000
5000+0 records in
5000+0 records out
52428800000 bytes (52 GB, 49 GiB) copied, 427.657 s, 123 MB/s

real    7m8.215s
user    0m0.016s
sys     0m43.097s

[root@veeam-centos ~]# time dd if=/test.b of=/dev/null bs=10M count=5000
5000+0 records in
5000+0 records out
52428800000 bytes (52 GB, 49 GiB) copied, 37.2162 s, 1.4 GB/s

real    0m37.260s
user    0m0.008s
sys     0m16.270s

空间回收
fstrim /

centos7配置网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens32
bootproto=static
onboot=yes
IPADDR=192.168.1.160
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=119.29.29.29
DNS2=8.8.8.8

systemctl restart network

linux安装VMwareTools

mount /dev/cdrom /mnt
cp /mnt/VMtools.tar.gz ~
tar xvzf ~/VMtools.tar.gz
~/vmwaretools/vminstall.pl

centos7 suse15时区设置,NTP同步

systemctl status chronyd
[root@zabbix ~]# cat /etc/chrony.conf
# These servers were defined in the installation:
server 114.115.116.117 iburst

[root@zabbix ~]# timedatectl set-timezone Asia/Shanghai
[root@zabbix ~]# timedatectl status
      Local time: Sat 2022-04-16 22:05:38 CST
  Universal time: Sat 2022-04-16 14:05:38 UTC
        RTC time: Sat 2022-04-16 14:05:38
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
      
chronyc -a makestep 立即同步时间
chronyc tracking 查看同步状态

linux查看外网IP

curl ifconfig.me

临时切换中文环境

export LANG=zh_CN.utf8

显示80,443并发数,显示nginx phpfpm mysql进程数,显示负载 内存 swap CPU使用率

echo "";echo "uptime" ;uptime | awk '{print $3 $4 $5}';echo http 80: ; netstat -na | grep :80 |grep -v grep  | wc -l ;echo https 443: ; netstat -na | grep :443 |grep -v grep  | wc -l ;echo php-fpm: ; ps aux | grep php-fpm|grep -v grep | wc -l ;echo nginx: ;ps aux | grep nginx|grep -v grep| wc -l;echo mysql: ;ps aux | grep mysql |grep -v grep| wc -l ;echo load:;w | grep load| awk '{print $10,$11 $12}';echo UseMem MB:;free -m | grep buffers/cache|grep -v grep | awk '{print $3}';echo FreeMem MB:;free -m | grep buffers/cache|grep -v grep | awk '{print $4}';echo UseSwap MB:;free -m | grep Swap |grep -v grep| awk '{print $3}';echo CPU:;top -n1 | grep Cpu;echo ;echo ; echo

整站爬取

wget  -E --referer http://wo166.com/ -r -m -k http://wo166.com/

mysql数据库操作,导出导入

mysqldump -utntsec -ptnt123456789sql -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --databases tntsec > tntsecbak.sql
    
mysql -utntsec -ptnt123456789sql -h127.0.0.1 -P3306 --default-character-set=utf8 tntsec < tntsecbak.sql

iptables防火墙操作,ip6tables操作相同

iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
    
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status
iptables -A INPUT -i lo -j ACCEPT 
    
当前规则/etc/sysconfig/iptables
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT 
-A INPUT -i lo -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25000 -j ACCEPT 
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 

firewalld防火墙操作

firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --permanent --add-port=10050-10051/tcp
firewall-cmd --reload
firewall-cmd --list-ports
firewall-cmd --list-services

查看端口监听和占用状态
yum -y install net-tools

[root@zabbix ~]# netstat -lnpt | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      4880/httpd

[root@zabbix ~]# ps aux | grep 4880 | grep -v grep
root      4880  0.0  0.0 230548  5288 ?        Ss   18:53   0:00 /usr/sbin/httpd -DFOREGROUND
zabbix   24880  0.0  0.0 677532  2720 ?        S    Apr12   0:21 /usr/sbin/zabbix_server: http poller #1 [got 0 values in 0.000742 sec, idle 5 sec]

查看端口并发数

netstat -na | grep :443
netstat -na | grep :8080
wc -l

centos7配置网卡VLAN ID

/etc/sysconfig/network-scripts/ifcfg-ens192

PHYSDEV=ens192
VLAN=yes
VLAN_ID=2
TYPE="VLAN"
REORDER_HDR=yes
GVRP=no
MVRP=no
#以上为新增配置
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens192"
UUID="279fcd97-8de8-473a-80e2-67257d05ef5e"
#DEVICE="ens192" 屏蔽此配置
ONBOOT="yes"
IPADDR="172.16.21.148"
PREFIX="25"
GATEWAY="172.16.21.254"
DNS1="172.16.21.245"
IPV6_PRIVACY="no"

挂载本地源
1、镜像挂载
虚拟化环境镜像装载

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

ISO镜像直接挂载

mkdir /mnt/cdrom
mount /xxdvd.iso /mnt/cdrom

2、配置本地源

/etc/yum.repos.d/Media.repo

[InstallMedia]
name=CentOS Linux 8
baseurl=file:///mnt/cdrom/BaseOS
gpgcheck=0
enabled=1

[AppStream]
name=AppStream
baseurl=file:///mnt/cdrom/AppStream
enabled=1
gpgcheck=0

3、关闭其他源

enabled=0

查看UUID

blkid
ls -l /dev/disk/by-uuid
vol_id /dev/sda1

nginx负载均衡

upstream appnode_proxy_backend_of_site_172.16.10.41 {
    server  172.16.10.39:12345 weight=1 max_fails=0 fail_timeout=10s backup;
    server  172.16.10.40:12345 weight=5 max_fails=0 fail_timeout=10s;
    server  172.16.10.42:12345 weight=1 max_fails=0 fail_timeout=10s;
}

server {
    listen      12345;
    access_log  /data/mystack/sites/172.16.10.41/log/nginx/access.log proxy;
    proxy_pass  appnode_proxy_backend_of_site_172.16.10.41;
}

安装图形界面

yum groupinstall "Server with GUI" -y

设置图形启动

systemctl set-default graphical

linux挂载windows共享文件夹
手动挂载

mount -t cifs -o username="*",password='' //172.16.1.10/File /17216110File/

fstab自动挂载

//172.16.1.10/File /17216110File cifs defaults,uid=1000,gid=1000,username="*",password='' 0 0

查看

# df -h /17216110File/
Filesystem          Size  Used Avail Use% Mounted on
//172.16.1.10/File  301G   64G  237G  22% /17216110File

vSphere虚拟机XFS文件系统扩容
1、通过vSphere扩大磁盘空间,添加新磁盘无需重启,扩大磁盘空间可能需要重启
2、partprobe刷新磁盘空间,查看新添加的硬盘
3、通过gdisk为新添加的硬盘分区,格式为lvm格式,partprobe刷新磁盘
4、lsblk识别到分区
5、创建PV
pvcreate /dev/sdd1
6、扩展VG
vgextend vg_data /dev/sdd1
7、扩展LV
lvextend -l +100%FREE /dev/vg_data/lv_data
8、XFS文件系统重新识别
xfs_growfs /dev/vg_data/lv_data

0

评论

博主关闭了所有页面的评论