查看与查找

  • 系统、内核相关的信息
    cat /etc/os-release sudo lsb_release -a
    uname --all
    env
    export
  • 查看硬件
    • 逻辑cpu核数:cat /proc/cpuinfo | grep "processor" |wc -l
    • 物理cpu核数:cat /proc/cpuinfo | grep "physical id" | sort | uniq|wc -l
    • 显卡实时数据:(每0.2s刷新)
      $
  • 文件查找
    • whereis pkg
    • sudo find / -name "*.txt"
    • $

      有约束的全局查找:除了 /sys/(-xdev)和子目录/mnt/外。

文件、存储相关

  • 查看存储大小:
    • 当前系统磁盘的:
    • 所处目录的:
  • 文件的常用操作:
    • 切割文件: split -b 1G -d --additional-suffix=.txt target_file
    • 压缩文件: tar -zcvf file.tar.gz file
    • 解压缩文件: tar -zxvf file.tar.gz

将终端内容存入日志

  • 使用 > 重定向:your_command > output.log 2>&1

  • 使用 tee 命令:your_command | tee output.log
    输出同时发送到标准输出和指定的文件中。经测试好像并没有。

  • 后台记录日志:使用script -f session.log
    想退出就用exit

  • 备注:执行less -r ~/....log可查看正确渲染出终端控制字符的日志文件。

用户、权限等

  • 切换用户switch user:sudo su [username]

  • 以user1身份执行命令:sudo -u user1 command

  • .sh脚本的执行方法的对比:

    • bash test.sh:启动一个新的Bash子shell来执行test.sh中的命令。它与你当前终端的shell是隔离的。
    • sudo bash test.sh:子shell的操作者是用户root,不是当前shell的用户。否则添加- E参数。
    • source test.sh. test.sh:直接在当前shell执行。
  • 用户免密使用sudo:
    打开sudoers文件: sudo vim /etc/sudoers
    在类似%sudo ALL=(ALL:ALL) ALL的行下添加一行:yourUserName ALL=(ALL:ALL) NOPASSWD: ALL
    保存并退出。

  • 查看所有用户信息:cat /etc/passwd

  • 用户与组

    • 查看当前用户属于哪些组:groups, 或id -nG
    • 查看一个组中有哪些用户:getent group <group_name>
    • 查看所有用户组:cat /etc/group\
    • 查看用户的所有:id

进线程、缓存相关

  • 实时进程:top; htop
  • 查看所有进程:ps aux ps [-ef]
  • 杀死进程:
    • kill -9 [pid],
    • killall -9 [pname]
    • sudo pkill -f {string} # 杀死所有包含指定字符串的进程
  • 清除系统缓存(1可换成2,3):sudo sh -c "echo 1 > /proc/sys/vm/drop_caches"
  • 进程的后台前台:
    • 把占用命令行的进程改到后台挂起:ctrl+ Z
    • 进程在前台后台切换:fg [pid]bg [pid]
    • 查看后台进程列表:jobs
    • 把后台挂起的程序,在后台运行起来:bg
    • 把后台运行的程序调用至前台:fg
    • 直接后台执行命令:command &nohup commandnohup command &nohup command > /dev/null 2>&1 &

系统服务

  • 查看当前系统的所有服务: systemctl list-unit-files --type service, list-unit-files也可改成list-units.
  • 开/关/重启/查看一个服务:sudo systemctl start/stop/restart/status 软件名
  • 功能同上(service是一个比较旧的服务管理命令):sudo service docker stop
  • 将服务设为开机自启:sudo systemctl enable my-service
  • 自定义服务:
    • 创建一个新的服务单元文件,比如 /etc/systemd/system/my-service.service
    • 编辑该文件,指定服务的配置,例如:
      [Unit]
      Description=My Custom Service
      After=network.target

      [Service]
      ExecStart=/path/to/your/command
      Restart=always

      [Install]
      WantedBy=multi-user.target

安全相关

  • 生成密钥对:

网络连接相关

ssh的端口转发功能

  1. 本地端口转发(LPF): 将本地机器的某个端口上的流量通过 SSH 隧道转发到远程机器的某个地址和端口

    • 语法:ssh -L [本地端口]:[目标地址]:[目标端口] [用户名@远程主机]
    • 用途: 在本地访问远程服务器上的服务,就像服务运行在本地一样。因此远程机器的相应端口就不必暴露在互联网上, 非常安全.
    • 精辟总结: 能安全访问别人的非公开服务!
  2. 远程端口转发(RFP): 将远程机器的某个端口上的流量通过 SSH 隧道转发到本地机器的某个地址和端口

    • 语法:ssh -R [远程端口]:[本地地址]:[本地端口] [用户名@远程主机]
    • 用途: 把本地的端口暴露给了远程机器, 如果远程机器有公网IP, 那就暴露给了互联网, 这就是🚀内网穿透🚀
    • 精辟总结: 能把防火墙后的自己暴露出去!
  3. 动态端口转发(DPF): 在本地创建一个 SOCKS 代理服务器,本地所有的网络请求都会经该代理服务器通过 SSH 隧道到达远程服务器,再由远程服务器进行数据转发。

    与 -L 和 -R 明显不同,-D 没有将流量定向到一个特定的远程接口!

    • 语法:ssh -D [本地端口] [用户名@远程主机]
    • 用途:
      • 保护流量安全;
      • 访问被本地网关的防火墙或网络限制的网站, 这就是🚀代理🚀
        精辟中介: 能突破防火墙随意访问!

远程连接、端口、IP等

  • 解析域名:nslookup taddream.siteping
  • 看端口占用:netstat -ltunp

IP查找

  • windows内:用ipconfig

    注意: 列表中第一个IP值是本机IP;其他的比如vEthernetvEthernet(WSL)下的IP是本机构建相应虚拟内网时的网关IP。

  • linux内:
    • 查看完整信息:执行ifconfig,或ip a
    • 获取具体IP值:
      • 自身ip值:是ifconfig命令的输出中的 ‘eth0’ 的IP,或执行hostname -I | awk '{print $1}'

        注:若该Linux是服务器,则IP可能是动态的;若它是WSL2或容器,则IP一定是动态的。

      • 宿主ip值:
        可在宿主机里面执行ifconfig/ipconfig, 其输出中的‘vthernet(WSL)’下的IP就是了, 注意只能在‘vthernet(WSL)’适配器中找, 不能在‘其他适配器’中找。
        或查看本机的nameserver: cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }'

        注:只有WSL或容器等虚拟主机才有’查看宿主IP’的情况。
        注: 一般情况下, wsl或容器的nameserver == 宿主机的‘vthernet(WSL)’适配器下的IP; 如果不等, 以后者为准.
        注:wsl下的容器:

        • 其宿主IP是Windowswsl的宿主机的‘ethernet(WSL)’下的IP,千万千万不是wsl的哦。
        • 其网关IP却在wsl中。

文件传输

  • 本地目录传到远端:scp -r /local/dir user@remote_ip:/remote/dir

软件包相关

多用sudo apt, 少用apt-get

  • 搜索一个包:apt-cache search cudnn

Static Badge Static Badge Static Badge Static Badge
Copyright © 2023-2024 Raymond H., All Rights Reserved.