Linux 必备工具, 命令与例子

目录

1. wget

2. screen

3. unzip/gzip

4. netstat

5. git

6. composer

7. docker

8. docker-compose

9. timedatectl set-timezone Asia/Shanghai 时区设置

10. date  时间查看/设定

11. dig: Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。

12. du 查看目录大小

13. systemctl 显示运行服务

14. 查找目标文件夹下,符合条件的子目录/文件,并删除

15. 添加 / 编辑用户组

16. 查询端口占用

17. 添加带目录,指定组,附属组的用户

18. 时区设置

19. proxychains,命令在网络代理环境下执行

20. 监察进程流量

21. 建多层目录

 22 检查CPU核数

23 htpasswd (apt install apache2-utils)

24 wc 统计

25 iftop

26 w 查负载, load average分别对应于过去1分钟,5分钟,15分钟的负载平均值。

27 pm2 管理node进程工具

28 killall

29 firewall-cmd 相关命令

30 netplan - 新一代网络配置工具

31 apt-file - 寻找包内命令,从而知道要安装所需的包

32 hostnamectl 设置主机名

33 journalctl 管理系统的事件日志记录

34 scp 复制远程文件 

35 export HTTPS_PROXY 代理

36 jobs, fg, bg

37 watch 周期性执行给定指令,监视运行情况

38 lsblk 展示块设备(block devices)的信息,包括磁盘、分区和挂载点

39 nc

40 iostat 和 iotop 

41 dd

42 系统服务设置

43 rm移动文件(除了指定文件/目录)到其他目录

44 tree 列出目录结构,L-层数

45 nfs 

46 setfacl

47 snap

48 Ubuntu22.04下磁盘扩容

49 宝塔相关

50 pdf生成工具wkhtmltopdf


1. wget

2. screen

screen案例:

   新建一个lnmp会话:screen -S lnmp(lnmp为会话名,可自己定义)

   离开会话并让程序断续运行:ctrl a d (按住ctrl不放,分别按 a 和 d)

   恢复后台运行的会话:screen -r lnmp(lnmp为自己定义的会话名)

   显示所有screen创建的会话:screen -ls

   在会话里执行exit命令会话是结束运行并退到shell中

3. unzip/gzip

# 递归压缩target目录
zip -rq xxx.zip target

# 压缩target目录,排除某个目录
zip -rq web.zip web -x 'web/image/*'

# 解压到指定目录
unzip -q web.zip -d target

4. netstat

5. git

# 指定私钥获取仓库
git clone -c "core.sshCommand=ssh -i /data0/Auths/ssh/gitlab/id_rsa"  git@gitlab.com:bennybi/iot-age-te001.git

# 指定端口2222获取路径
ssh://git@host001.dev.ia:2222/dev1/team1-prj2.git

# 强制合并
git fetch
git reset --hard HEAD
git merge origin/$CURRENT_BRANCH

6. composer

安装:apt install composer

参数: 
--ignore-platform-reqs # 忽略版本冲突

使用:
- 安装laravel
composer global require "laravel/installer"

- 添加laravel命令路径操作
vi $HOME/.bashrc
最末添加 export PATH="$PATH:$HOME/.config/composer/vendor/bin"
source $HOME/.bashrc

7. docker

docker rm `docker ps -a -q` # 删除所有容器
docker rmi `docker images -q` # 删除所有镜像
docker logs {container} # 看日志
docker ps -a  # 列出运行中的容器服务
docker stop {container} # 停止容器服务
docker image ls  # 列出已安装的镜像包
docker image prune --force     # 清理没关联的镜像文件
docker stats # 看资源
docker restart <container name> # 重启容器服务

# 查看容器ip
docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

docker login ${REGISTRY_URL} -u $LOCAL_REGISTRY_LOGIN -p $LOCAL_REGISTRY_PASSWORD
docker build --output type=registry,oci-mediatypes=false --cache-from "${DOCKER_IMAGE_TAG}" -t "${DOCKER_IMAGE_TAG}" --push --provenance=false .
docker push ${DOCKER_IMAGE_TAG}

镜像及代理设置

编辑:/etc/docker/daemon.json

{
	"registry-mirrors": ["https://mirrors.ustc.edu.cn", "http://mirror.azure.cn", "https://hub.docker.com"],
	"insecure-registries": ["http://host001.dev.ia:18181", "http://host001.dev.ia:5050"],
	"http-proxy": "http://proxy-server0:1081",
	"https-proxy": "http://proxy-server0:1081",
	"no-proxy": "*.k8s.ia,*.dev.ia,*.aliyun.com,*.aliyuncs.com,*.huaweicloud.com,localhost,127.0.0.1,0.0.0.0,10.0.0.0/8,172.17.0.0/12,192.168.0.0/16"
}

如果代理不起效,法2

# 参考https://blog.csdn.net/qiuweifan/article/details/139771938

# 创建 dockerd 相关的 systemd 目录,这个目录下的配置将覆盖 dockerd 的默认配置
mkdir -p /lib/systemd/system/docker.service.d

# 新建配置文件 /lib/systemd/system/docker.service.d/http-proxy.conf,这个文件中将包含环境变量
[Service]
Environment="HTTP_PROXY=http://proxy-server0:1081"
Environment="HTTPS_PROXY=http://proxy-server0:1081"
Environment="NO_PROXY=*.k8s.ia,*.aliyun.com,*.aliyuncs.com,*.huaweicloud.com,localhost,127.0.0.1,0.0.0.0,10.0.0.0/8,172.17.0.0/12,192.168.0.0/16"


# 检查环境变量
systemctl show --property=Environment docker

systemctl daemon-reload && systemctl restart docker


8. docker-compose

# apt install pip
# pip install docker-compose

9. timedatectl set-timezone Asia/Shanghai 时区设置

10. date  时间查看/设定

11. dig: Dig是一个在类Unix命令行模式下查询DNS包括NS记录,A记录,MX记录等相关信息的工具。

# centos 安装
yum install bind-utils

# debian/ubuntu 安装
apt-get install dnsutils

用例,查看本机公网ip
dig +short myip.opendns.com @resolver1.opendns.com

12. du 查看目录大小

#查看当前目录下,1层目录的大小总量
du -h -d1 ./ 

13. systemctl 显示运行服务

# 显示全部的服务
systemctl --type=service --all

# running 的服务
systemctl --type=service --state=running

# 服务随机自启
systemctl enable {service}

# 查询服务随机自启
systemctl is-enabled {service}

# 服务停止随机自启
systemctl disable {service}

14. 查找目标文件夹下,符合条件的子目录/文件,并删除

# 删除vendor下的.git目录 (含子目录)
find ./vendor -type d -iname .git | xargs rm -rf

# 删除vendor下的.gitignore文件 (含子目录)
find ./vendor -iname .gitignore | xargs rm -rf

15. 添加 / 编辑用户组

usermod -aG wheel ben  # 给用户添加组
usermod -g root ben    # 给用户改主组

16. 查询端口占用

# lsof -i:80
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 1188 root    4u  IPv4  22652      0t0  TCP *:http (LISTEN)
docker-pr 1196 root    4u  IPv6  22075      0t0  TCP *:http (LISTEN)

又或者

# netstat -anptl
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      574/sshd
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2334/cupsd
tcp        0      0 0.0.0.0:15672           0.0.0.0:*               LISTEN      1263/docker-proxy

17. 添加带目录,指定组,附属组的用户

useradd -g ubuntu -G www-data,ubuntu -m git

18. 时区设置

timedatectl set-timezone Asia/Shanghai
 
#修改时区后同步cron时间
service rsyslog restart
service crond restart

19. proxychains,命令在网络代理环境下执行

proxychains 调用命令

# WSL2下查宿主机IP
cat /etc/resolv.conf | grep -oP '(?<=nameserver\ ).*'

查到后,把ip填入/etc/proxychains.conf

20. 监察进程流量

#apt-get install nethogs
#nethogs

21. 建多层目录

mkdir -p api/staging/src

 22 检查CPU核数

cat /proc/cpuinfo | grep processor
或
lscpu

23 htpasswd (apt install apache2-utils)

htpasswd -bc file user passwd // 新建文件,并建账号
htpasswd -b file user passwd // 增/改用户密码

24 wc 统计

ps -aux|grep php-fpm|wc -l

25 iftop

iftop是类似于top的实时流量监控工具。
 

26 w 查负载, load average分别对应于过去1分钟,5分钟,15分钟的负载平均值。

$ w
12:22:02 up 44 days, 21:48,  2 users,  load average: 3.96, 6.28, 5.16

27 pm2 管理node进程工具

# 安装
npm install -g pm2

# 启动并定义一个node进程服务
pm2 start /path/yapi/vendors/server/app.js --name yapi

# 常用命令
pm2 l
pm2 start yapi
pm2 stop yapi
pm2 show yapi #显示详细

28 killall

# 杀所有vi进程
killall vi
# 杀所有进程
killall -r '.*'

29 firewall-cmd 相关命令

firewall-cmd --permanent --query-port=2222/tcp  # 查询是否开了端口
firewall-cmd --permanent --add-port=2222/tcp # 加端口
firewall-cmd --permanent --remove-port=2222/tcp # 禁止端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="{ip}" port protocol="tcp" port="3000" accept" # 仅允许指定ip访问端口
firewall-cmd --reload # 重载应用

30 netplan - 新一代网络配置工具

配置文件:/etc/netplan/00-installer-config.yaml

network:
  ethernets:
    enp0s31f6:
      addresses: [192.168.1.9/24]
      dhcp4: no
      optional: true
      gateway4: 192.168.1.1
      nameservers:
         addresses: [10.10.10.1]
         #addresses: [8.8.8.8,114.114.114.114]
    enp3s0:
      dhcp4: true
  version: 2

修改后运行 netplan apply

31 apt-file - 寻找包内命令,从而知道要安装所需的包

# apt-file search /usr/bin/phpize
php7.0-dev: /usr/bin/phpize7.0
php7.2-dev: /usr/bin/phpize7.2

32 hostnamectl 设置主机名

hostnamectl set-hostname k8s-node-1

33 journalctl 管理系统的事件日志记录

journalctl -f -u kubelet    # 查看kubelet日志

34 scp 复制远程文件 

# 复制远程目录到当前路径 
scp -r root@k8s-master-1:/dir_path ./

# 将本地目录复制到远程主机目录
scp -r ./test root@k8s-master01:/dir_path 

35 export HTTPS_PROXY 代理

# 固定方式
修改文件“/etc/profile”,在文件结束位置增加如下内容:
# 设置http代理
export http_proxy=http://127.0.0.1:1081
# 设置https代理
export https_proxy=https://127.0.0.1:1081
# 设置ftp代理
export ftp_proxy=socks5://127.0.0.1:10808

# 临时方式
export http_proxy=http://x.x.x.x:1081
export https_proxy=http://x.x.x.x:1081
export ftp_proxy=user:password@x.x.x.x:1080
export no_proxy=rx-print.com,aliyun.com,aliyuncs.com,huaweicloud.com,127.0.0.1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 # 不必代理的ip

# git代理
git config --global http.proxy 'socks5://192.168.0.108:1080'
git config --global https.proxy 'socks5://192.168.0.108:1080'

git config --global --unset http.proxy
git config --global --unset https.proxy

# docker-compose.yml设置代理
 some-api:
        environment:
            - HTTP_PROXY=http://172.21.0.1(虚拟网关ip):1081
            - HTTPS_PROXY=http://172.21.0.1:1081
            - NO_PROXY=localhost,127.0.0.1,windows.net,aliyun.com,aliyuncs.com,huaweicloud.com,127.0.0.1,10.0.0.0/8,172.21.0.0/16,192.168.0.0/16

36 jobs, fg, bg

jobs - 显示当前命令任务
fg - 把命令后台任务提到前台运行
bg - 带回命令后台运行

example:
# jobs
[1]   Running                 bash download-file.sh &
# fg
# 按[CTRL-Z] 退出交互并挂起
[2]+  Stopped
# bg 继续运行

37 watch 周期性执行给定指令,监视运行情况

watch kubectl get po -n tidb-cluster

38 lsblk 展示块设备(block devices)的信息,包括磁盘、分区和挂载点

~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0    7:0    0  79.9M  1 loop /snap/lxd/22923
loop1    7:1    0  61.9M  1 loop /snap/core20/1405
loop3    7:3    0  53.3M  1 loop /snap/snapd/19457
loop4    7:4    0  63.4M  1 loop /snap/core20/1974
loop5    7:5    0 111.9M  1 loop /snap/lxd/24322
vda    252:0    0    40G  0 disk
├─vda1 252:1    0     1M  0 part
├─vda2 252:2    0   200M  0 part /boot/efi
└─vda3 252:3    0  39.8G  0 part /
vdb    252:16   0   500G  0 disk

39 nc

# 探测目标端口可否联通
nc -zv 172.16.20.215 6443
Connection to 172.16.20.215 6443 port [tcp/*] succeeded!

# 建个端口监听
nc -l 3333

# 连接
nc 10.0.2.2 3333

# 端口扫描
 nc -v -w 1 10.0.2.2 -z 22-81

40 iostat 和 iotop 

iostat:查看相关磁盘使用信息
iotop: 可以按照IO使用情况来显示进程列表

# 如果没有 iostat 命令,那么使用 yum install sysstat 进行安装
 iostat -x 1 10

41 dd

法1:
# 备份tf卡 
dd if=/dev/sda | gzip>/iso/c0-master0.gz

# 写入镜像
1、删除SD卡分区。
使用 fdisk 命令对SD卡格式化

2、写入备份文件
$ gzip -dc /iso/c0-master0.gz | sudo dd of=/dev/sda

法2:
# 镜像备份
dd if=/dev/sdb conv=sync,noerror bs=4M | gzip -c > ./backup_image.img.gz
# 还原
gunzip -c ./backup_image.img.gz | dd of=/dev/sdb bs=4M

42 系统服务设置

# Example
cp /mnt/Projects/IOT-AGE/TE001/src/te001s.service /lib/systemd/system/
systemctl daemon-reload
sudo systemctl enable te001s.service  // 启用
sudo systemctl disable te001s.service  // 停用
sudo systemctl status te001s.service  // 查看状态

43 rm移动文件(除了指定文件/目录)到其他目录

mv !(f1.zip|folder1|index.php) twzc021-api

44 tree 列出目录结构,L-层数

tree ./target -d -L 2

45 nfs 

# 安装服务端
apt install -y nfs-kernel-server

# 安装客户端
apt install -y  nfs-common

# 配置访问目录
mkdir -p /data0/nfs
echo "/data0/nfs *(rw,sync,no_subtree_check,no_root_squash)" >> /etc/exports

# 客户机挂载nfs服务器目录
mount master0.c0.k8s.ia:/data0/nfs /mnt/nfs

# 卸载
umount -l /mnt/nfs

#nfs相关命令:
showmount -e localhost #显示已经 mount 到本机 nfs 目录的客户端机器
exportfs -rv #查看本机共享的文件或目录

46 setfacl

# ACL文件权限管理
apt install acl

# Give the read-write-execute permissions to deployer user for directory /var/www
setfacl -R -m u:deployer:rwx /var/www

47 snap

snap find <应用程序名称>:查找可用于安装的 snap 应用程序。
snap install <应用程序名称>:安装 snap 应用程序。
snap refresh <应用程序名称>:更新 snap 应用程序到最新版本。
snap remove <应用程序名称>:卸载已安装的 snap 应用程序。
snap info <应用程序名称>:查看 snap 应用程序的详细信息。
snap list:列出所有已安装的 snap 应用程序。
snap changes:查看系统中最近的 snap 更改操作。
snap revert <应用程序名称>:还原 snap 应用程序到上一个版本。
snap disable <应用程序名称>:禁用 snap 应用程序并停止其自动更新。
snap enable <应用程序名称>:启用已禁用的 snap 应用程序。

48 Ubuntu22.04下磁盘扩容

# 先用parted工具
parted
> (parted) print
> (parted) resizepart
> Partition number? 3
> Yes/No? yes 
> End?  [2551MB]? 500G
> (parted) quit

# 调整一个卷组中的物理卷的大小
pvresize /dev/sda3

# 查看物理卷容量
pvs

# 调整逻辑卷大小
lvresize --resizefs -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

49 宝塔相关

# nginx 站点/代理配置路径
/www/server/panel/vhost/nginx

50 pdf生成工具wkhtmltopdf

apt install wkhtmltopdf
wkhtmltopdf --version
wkhtmltopdf www.baidu.com baidu.pdf

# 参考链接: https://blog.csdn.net/qq_25647857/article/details/138248214

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bennybi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值