Linux 必备工具, 命令与例子

2023-10-30

目录

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


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/*'

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

6. composer

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

7. docker

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

配置国内镜像 , vi /etc/docker/daemon.json

{
  "registry-mirrors": ["http://hub-mirror.c.163.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn"]
}

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

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 代理

export http_proxy=x.x.x.x:1081
export https_proxy=x.x.x.x:1081
export ftp_proxy=user:password@x.x.x.x:1080
export no_proxy=,localhost,127.0.0.1,10.7.22.2,10.7.21.2 # 不必代理的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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 必备工具, 命令与例子 的相关文章

  • 更改Docker容器中的mysql密码

    我如何更改 docker 容器中的 root 密码 因为一旦我停止 mysql 服务 容器就会自动停止 我应该停止 mysql 容器并部署一个新容器吗 您可以使用正在运行的容器更改它docker exec session https doc
  • 进程如何知道它已收到信号

    如果我错了 请纠正我 以下是我对信号的理解 据我所知 信号生成 和信号传递有2个不同 事物 为了产生信号 操作系统只是在位数组中设置一个位 在过程控制中维护 工艺块 PCB 每一位 对应于特定信号 当设置一个位时 这意味着 该位对应的信号为
  • Spring Boot 和 Kafka,Producer 抛出 key='null' 异常

    我正在尝试使用Spring Boot with Kafka and ZooKeeper with Docker docker compose yml version 2 services zookeeper image wurstmeist
  • 使用 Vala 和 GLib 的正则表达式

    有没有一个函数 比如http php net manual en function preg match all php http php net manual en function preg match all php 使用 GLibh
  • 设置 Vim 背景颜色

    当我尝试更改背景颜色时 vimrc或者直接在 Vim 中使用以下命令 set background dark 这根本不影响我的背景 也没有light选项 不过 当我运行 gvim 时 看起来还不错 有没有办法在不更改 Konsole 设置的
  • 如何让 Docker 容器在系统启动时自动启动?

    假设我有一个要运行的 Docker 容器 那么我可以调用 docker run 一切都很好 是否有一种内置方法可以在系统崩溃并重新启动时自动重新启动容器来运行容器 如果是这样 这在 Docker Compose 中也可用吗 是的 docke
  • 使用 terminfo 的终端颜色?

    我正在编写一个 C 类 允许在终端中使用颜色 我希望它适用于每个终端 在支持真彩色 24 位 的终端上打印 在支持它的终端上具有 256 色 6x6x6 其他都是基本的 16 种颜色 我曾经使用 termcap 编写过一次 C 函数 并且我
  • 期待、互动,然后再次期待

    有几篇关于相同内容的帖子 但我仍然无法使我的期望脚本正常工作 我的目的是自动化一切 但保留用户输入的密码 所以脚本有 3 个部分 自动登录 给予用户交互以输入密码 将控制权交还给 Expect 脚本以继续工作 所以我有一个将生成的脚本 其中
  • Linux Shellcode“你好,世界!”

    我有以下可用的 NASM 代码 global start section text start mov eax 0x4 mov ebx 0x1 mov ecx message mov edx 0xF int 0x80 mov eax 0x1
  • 如何从外部模块导出符号?

    我在内核源代码树之外进行编码 有两个模块 第一个printt有一个功能printtty 将字符串打印到当前 tty 以及第二个模块hello这会调用printtty 在初始化期间 我已经添加了EXPORT SYMBOL printtty 在
  • 如何更改 docker 中的默认分离键顺序?

    Docker 容器的 detach 键序列默认为 control q 或 control p 使用启动容器时可以选择设置按键顺序 detach keys
  • 使用入口点脚本初始化 influxdb2 存储桶

    我正在部署用于存储实时数据的 influxdb 我已经使用 1 8 4 一段时间了 最 近决定更新到 v2 My docker compose yml文件看起来像这样 influxdb image influxdb 2 0 4 alpine
  • bash "&" 不打印 "[1]+ Done "

    我在 bashrc 中调用一个脚本来打印打开终端时收到的新消息数 我希望该调用在访问网络时是非阻塞的 有时需要几秒钟 这意味着我无法使用终端直到完成 但是如果我输入 mailcheck 在我的 bashrc 中 它工作正常 但然后打印一个空
  • 将 bash 脚本作为守护进程运行

    我有一个脚本 它每 X 次运行我的 PHP 脚本 bin bash while true do usr bin php f my script php echo Waiting sleep 3 done 我怎样才能将它作为守护进程启动 要从
  • X 服务器使用什么像素格式?

    X 服务器使用什么像素格式 RGBA ARBG BGRA 如果有任何特定格式的话 Update 我专门寻找有关颜色分量顺序和位模式的信息 你的意思是帧缓冲区格式 或者所有支持的像素图格式 无论是哪一种 都取决于您的图形硬件 驱动程序和配置
  • 为什么 RHEL 上的 bash 中 `read -t` 没有超时?

    Why read t在 RHEL5 或 RHEL6 上从管道读取时不会超时 这是我的示例 在从管道读取数据时 我的 RHEL 盒子不会超时 tail f logfile log grep something read t 3 variabl
  • 如何在 Linux 中显示进程状态(阻塞、非阻塞)

    有没有办法查询 Linux 进程表中进程的状态 以便能够演示执行查询时进程是正在运行还是被阻止 我的目标是从进程或程序的 外部 执行此操作 因为我希望从操作系统进程的角度来理解这一点 但欢迎任何想法 这是Python代码阻塞的过程 impo
  • shell中基于正则表达式的颜色突出显示输出

    我想知道是否可以用颜色突出显示与某些字符串匹配的 shell 命令的输出 例如 如果我运行 myCommand 输出如下 gt myCommand DEBUG foo bar INFO bla bla ERROR yak yak 我希望所有
  • 如何修复 /usr/bin/env 参数处理?

    我遇到了一个奇怪的问题 usr bin env 我设计了一个简单的脚本来显示问题 该脚本使用 Ruby 编写 但使用 Python 编写的类似脚本也会发生同样的情况 这是脚本 usr bin env ruby p ARGV 还有一个没有 u
  • 在 Docker 容器内运行时,如何自动在 API 路由文件中进行 FASTAPI 拾取更改?

    我通过 docker 运行 FastApi 在 docker compose 中创建一个名为 ingestion data 的服务 我的 Dockerfile FROM tiangolo uvicorn gunicorn fastapi p

随机推荐

  • tqdm循环中实时更新进度条的文字(描述)部分

    tqdm是一个显示进度条的工具 可以在使用for循环的时候添加一个tqdm 这样就知道程序的实时进度 tqdm github页面 https github com tqdm tqdm 示例代码 from tqdm import tqdm i
  • 解决Word、Excel启动时提示向程序发送命令出现问题

    还记得突然有一天 打开Excel或者word后 总是提示 向程序发送命令出现问题 那时候很郁闷 不知道什么问题 重启电脑等方法都没用 然后度娘查找 最后才发现是因为按照额外程序导致的 以下详细说说前因后果 以Excel为例 遇到这种问题应该
  • Python中的连续比较运算符(与C语言对比)

    在Python中 连续的比较运算符是允许的 但是在C语言中是编译不会报错 但是不建议这样使用 Python代码 gt gt gt 5 gt 3 lt 4 True gt gt gt 6 gt 3 lt 1 True 在Python中这两行表
  • 常见的js代码调试

    这里主要探讨使用浏览器来调试javascript方法 并且仅对于IE 对于Opera7 Mozilla FireFox Netscape Navigator等浏览器偶在开发过程中用的很少 没有太多经验 在此就不予探讨 工具的安装 在安装of
  • thymeleaf基本语法

    thymeleaf基本语法 Spring Boot整合Thymeleaf 模版 依赖 创建模板文件 定义页面 简单表达式 Thymeleaf 常用语法 定义局部变量 注释 标准注释 析器级注释 取值 拼接 内联表达式 th inline 字
  • 简单理解磁盘结构

    本文首发于 Guanngxu 的个人博客 磁盘到底是怎样工作的 一文理解硬盘结构 数据库系统总会涉及到辅助存储 大多都是磁盘 因为它们能够存储大量需要长期保存的数据 因此我们有必要先了解了解磁盘的相关知识 根据机械原理 存储器的容量越大其速
  • Mybatis-Plus 实现多表联合查询+分页+查询条件

    Mybatis plus 自己只能完成单表操作 所以如果想要实现多表 需要借助 Mybatis 实现 首先引入mybatis plus依赖 这里就不演示了 返回结果集封装 传递分页以及查询的参数 主要代码在 Service 中 Reques
  • 若依微服务报错Error: Cannot find module ‘html-webpack-plugin‘解决

    遇到的问题 Error Cannot find module html webpack plugin 但是已经有html webpack plugin了 还是提示了报错 解决办法 https gitee com y project RuoY
  • LeetCode每日刷题:合并两个有序数组

    题目 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2 另有两个整数 m 和 n 分别表示 nums1 和 nums2 中的元素数目 请你 合并 nums2 到 nums1 中 使合并后的数组同样按 非递减顺序 排列 注意
  • LightGBM原理介绍

    简介 是GBDT模型的一个进化版本 其主要思想是利用弱分类器 决策树 迭代训练以得到最优模型 该模型具有训练效果好 不易过拟合等优点 备注 容易出现过拟合的风险 需要限制树的最大深度来防止过拟合 LGB是一个实现GBDT算法的框架 支持高效
  • Python学习笔记(三)

    文章目录 1 异常 2 单测 3 读写文件 3 1 读文件 3 2 写文件 3 3 操作文件和目录 4 正则表达式 4 1 贪婪匹配 5 其它 5 1 StringIO BytesIO 5 2 序列化 5 2 1 pickle 5 2 2
  • 3D光照阴影 平面阴影矩阵推导及代码实现

    3D光照阴影 平面阴影矩阵推导及代码实现 参考有关知识于是辛苦几个小时 推导出光照 平面阴影转换矩阵见图片 平面阴影矩阵推导第一页 平面阴影矩阵推导第二页 平面阴影矩阵 具体代码实现 第三页 到这里光照阴影的平面矩阵推导结束还有伪代码 参考
  • 如何使用学生账号来激活使用Jetbrains全家桶

    使用 edu邮箱注册学生账号来激活使用JetBrains全家桶 起因 之前激活过Jetbrains家的IDE 升级到2017 3 3版本 提示又要激活 试着原来的方法 结果用来激活的License Server全都失效 据称搭建本地反向代理
  • obj[‘x‘]和obj[x]的区别

    对象数据类型 由零到多组键值对 属性名和属性值 组成的属性名的类型 说法一 属性名类型只能是字符串或者Symbol 说法二 属性名类型可以是任何基本类型值 处理中可以和字符串互通 但是属性名绝对不能是引用数据类型 如果设置引用类型 最后也是
  • Python 爬虫学习笔记(二)urllib下载图片和视频

    一 urllib的1个类型和6个方法 1 response的类型 我们打印一下urllib request方法获取的response是什么类型 import urllib request url http www baidu com res
  • springboot yml文件配置Map List等数据

    springboot yml文件配置Map List等数据 配置类定义 yml 配置 使用 说明 配置类定义 import lombok Getter import lombok Setter import org springframew
  • 007 034 打印一个三角形

    例 使用输出语句输出一个三角形 include
  • 20+个小而精的Python实战案例(附源码和数据)

    公众号 尤而小屋作者 Peter编辑 Peter 大家好 我是Peter 最近小编认真整理了20 个基于python的实战案例 主要包含 数据分析 可视化 机器学习 深度学习 时序预测等 案例的主要特点 提供源码 都是基于jupyter n
  • Java实现扑克牌自动发牌系统

    利用Java的ArrayList实现随机给三个人发扑克牌 import java util ArrayList import java util List import java util Random class Card private
  • Linux 必备工具, 命令与例子

    目录 1 wget 2 screen 3 unzip gzip 4 netstat 5 git 6 composer 7 docker 8 docker compose 9 timedatectl set timezone Asia Sha