Linux

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统。Linux系统性能稳定,是整体开源的软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。

在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,它还被当作服务器,甚至当作网络防火墙,这是Linux的一大亮点。

---升阶命令

参考:GitHub - ibraheemdev/modern-unix: A collection of modern/faster/saner alternatives to common unix commands.

---scp

Linux scp 命令用于 Linux 之间复制文件和目录。scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。【scp [可选参数] file_source file_target】

参考:

Linux scp命令 | 菜鸟教程 (runoob.com)

用winscp从本地上传文件到服务器上出现复制文件到远端时错误 - Will-Zhong - 博客园 (cnblogs.com)

---wget

参考:wget命令详解

wget命令是Linux系统用于从Web下载文件的命令行工具,支持 HTTP、HTTPS及FTP协议下载文件。

wget http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

---服务器

【lspci | grep -i nvidia】   查看linux系统显卡型号,若有Nvidia显卡会显示型号等信息。

【cat /proc/cpuinfo】   查看CPU详细信息

【cat /proc/cpuinfo |grep "physical id"】  筛选physical id 信息 (若是这个机器一共有2个cpu,0是一个,1是一个)

【cat /proc/cpuinfo |grep processor】 筛选processor 信息(标号0-7的话,表示一共有8个核)

【cat /etc/issue】   查看Linux发行版信息

【uname -r】   查看Linux内核信息

【fdisk -l】   查看硬盘以及分区信息

【netstat -tunlp】   显示 tcp,udp 的端口和进程等相关情况

查询IP地址:

  • 【ifconfig】最常用,查看所有的 ip,找到 ens 开头的网卡,即可找到对应的 ip
  • 【hostname -i】主机的 ip
  • 【ip addr】网卡的方式查看 ip,找到 ens 开头的网卡,即可找到对应的 ip

安装anaconda:

  1. wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh
  2. bash Anaconda3-2022.05-Linux-x86_64.sh
  3. cd ~
  4. vim .bashrc【添加export PATH=$PATH:/root/anaconda3/bin】
  5. source .bashrc

安装成功后键入:conda -V,有效输出版本号。 【conda 4.12.0】

借助anaconda,安装多个python环境:

  1. conda create -n <环境名> python=<版本>
  2. source activate <环境名> 【实际命令:conda activate 环境名】
  3. conda/pip install 需要的第三方库

查看虚拟环境列表:conda info -e/conda env list

切换环境: conda activate <环境名>

退出当前虚拟环境:conda deactivate

删除虚拟环境(包含已安装的相关python库):conda remove -n <环境名> --all

参考:介绍一下rz、sz命令

rz 命令(Receive ZMODEM),使用 ZMODEM 协议,将本地文件批量上传到远程 Linux/Unix 服务器,注意不能上传文件夹。使用虚拟终端软件,如 XShell、SecureCRT 或 PuTTY 来连接远程服务器后,使用rz命令可以上传本地文件到远程服务器。
输入rz回车后,会出现文件选择对话框,选择需要上传文件,一次可以指定多个文件,上传到服务器的路径为当前执行rz命令的目录。

常用选项:

-+, --append 将文件内容追加到已存在的同名文件
-E, --rename 已存在同名文件则重命名新上传的文件,以点和数字作为后缀
-a, --ascii 以文本方式传输
-b, --binary 以二进制方式传输,推荐使用
--delay-startup N 等待 
-e, --escape 对所有控制字符转义,建议使用
-p, --protect 对 ZMODEM 协议有效,如果目标文件已存在则跳过
-q, --quiet 安静执行,不输出提示信息
-v, --verbose 输出传输过程中的提示信息
-y, --overwrite 存在同名文件则替换
-X, --xmodem 使用 XMODEM 协议
--ymodem 使用 YMODEM 协议
-Z, --zmodem 使用 ZMODEM 协议
--version 显示版本信息
--h, --help 显示帮助信息

sz 命令(Send ZMODEM)通过 ZMODEM 协议,可将多个文件从远程服务器下载到本地。注意不能下载文件夹,如果下载文件夹,请先打包再下载。
命令选项基本与rz相同,请参考上文rz的命令选项或者sz的manual,或者运行命令sz -h查看。   

【关于PC和服务器之间文件传输】【PC到服务器:rz -E】【服务器到PC:sz filename】

---查看内存使用

free

1、free 命令显示系统使用和空闲的内存情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。free命令默认是显示单位kb,可以采用free -m和free -g命令查看,分别表示MB和GB。另外,free -h会自动选择以适合理解的容量单位显示。 

2、Mem: 表示物理内存统计,如果机器剩余内存非常小,一般小于总内存的20%,则判断为系统物理内存不够; Swap: 表示硬盘上交换分区的使用情况,如剩余空间较小,需要留意当前系统内存使用情况及负载,当Swap的used值大于0时,则表示操作系统物理内存不够,已经开始使用硬盘内存了。

3、当Linux的物理内存快被耗尽时,系统会把一些进程占用的内存转移swap区,当物理内存被释放一部分时,swap区的一些内存占用又慢慢回到mem区,但是mem区却不再是之前的满负荷状态,而是有一部分free的内存!  

top top 命令查看系统的实时负载, 包括进程、CPU负载、内存使用等等。键入 q 退出。  

 

df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。

df [选项] [文件]

  • df -hl 查看磁盘剩余空间
  • df -h 查看每个根路径的分区大小
  • 使用ls -llls-lh命令进行查看当前目录下文件,前者会显示成字节大小,而后者会以KB、MB等为单位进行显示.
  • 通过命令du -h –max-depth=1 *,查看当前目录下各文件、文件夹的大小.
  • 查询当前目录总大小可以使用du -sh,其中s代表统计汇总的意思,即只输出一个总和大小.
  • 命令du -h –max-depth=0 *,可以只显示直接子目录文件及文件夹大小统计值.
  • 使用du -sh 目录名称查看指定目录的总大小.

---GPU

参考:

科普帖:深度学习中GPU和显存分析

GPU之nvidia-smi命令详解

nvidia-smi 是Nvidia显卡命令行管理套件,基于NVML库,旨在管理和监控Nvidia GPU设备。

显存占用和GPU利用率是两个不一样的东西,显卡是由GPU计算单元和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。

推荐小工具:gpustat,直接pip install gpustat即可安装,gpustat基于nvidia-smi,可以提供更美观简洁的展示,结合watch命令,可以动态实时监控GPU的使用情况。

GPU计算单元类似于CPU中的核,用来进行数值计算。衡量计算量的单位是flop: the number of floating-point multiplication-adds,浮点数先乘后加算一个flop。计算能力越强大,速度越快。衡量计算能力的单位是flops: 每秒能执行的flop数量。 

---文件

【cd ~】        跳转到当前用户根目录下

【rm file】       删除file文件

【rm -rf file/fold】          强制删除文件file,或者删除文件夹fold及其内容 

【ls -a】        打开目录下所有文件列表

【mvdir path1 path2】      移动或者重命名目录 跟着两个目录名就是重命名

【mkdir】       创建目录

mkdir -p BBB/Test】    在工作目录下的 BBB 目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)

【pwd】      显示当前目录的路径

【dircmp】     比较两个目录的内容

【cp】       复制文件

【cp -r dir1 dir2】     将dir1及其dir1下所包含的文件复制到dir2下

【cp -r dir1/. dir2】    将dir1下的文件复制到dir2, 不包括dir1目录

【mv A B】     将目录A重命名为B(同重命名文件)

【mv /a /b/c】     将/a目录移动到/b下,并重命名为c

【mv /home/1.txt /opt/】     是将home文件夹下的1.txt文件,移动到opt文件夹下,然后home文件夹下的1.txt文件将被删除

【cat file】      显示文件内容

【ls -a】 显示当前目录下的所有文件及文件夹包括隐藏的.和..等

【ls -al】 显示当前目录下的所有文件及文件夹包括隐藏的.和..等的详细信息

【ls -lR | grep "^-" | wc -l 】    查看当前目录下有多少文件(包括子文件夹里面的),R代表子目录

【ls -l|grep "^-"| wc -l】      查看当前目录下的文件数量(不包含子目录中的文件)

【ls -l|grep "^d"| wc -l】    查看当前目录下的文件夹目录个数(不包含子目录中的目录),同上,如果需要查看子目录的,加上R

【ls -lR|grep ^d|wc -l】    查看某文件夹下文件夹的个数,包括子文件夹里的。

【cat temp.7z.* > temp.7z】  将分卷压缩包合起来,以便后续解压 

【7z x file.7z 】     解压 file.7z

【7z x file.7z -o./mydir -aoa】   详细命令解释见下表:

x 表示解压缩,并且使得压缩包内的文件所在的目录结构保持不变。
如果希望解压缩后所有的文件都存放在同一个目录下,则使用 e 命令。
-o./mydir 表示把压缩包内的文件解压缩到 ./mydir 目录下。-o 这个参数用于指定输出目录。
覆盖选项 -aoa:表示直接覆盖现有文件,而没有任何提示
-aos:跳过现有文件,其不会被覆盖。
-aou:如果相同文件名的文件以存在,将自动重命名被释放的文件。Eg:文件 file.txt 将被自动重命名为 file_1.txt。
-aot:如果相同文件名的文件以存在,将自动重命名现有的文件。Eg:文件 file.txt 将被自动重命名为 file_1.txt。

【7za x test.zip -r -o./】    不同于7z,7za是独立的执行文件,-r 表示递归解压缩所有的子文件夹,-o./ 为当前目录

【tar -xzvf file.tar.gz 】     解压 file.tar.gz

【tar -xf file.tar】      解压 file.tar,-x 是解开的意思

【mkdir dir_data】【tar -xf data.tar -C dir_data】 tar解压到指定目录

【tar -rf all.tar *.gif】    将所有.gif的文件增加到all.tar的包里面去。-f,是最后一个参数,后面只能接档案名。-r是表示增加文件的意思

【tar --help】     查看命令说明

【zip -r test.zip test】  将test文件夹压缩为test.zip(-r表示递归处理,所有文件和子目录一并处理)

【unzip test.zip】       将压缩文件text.zip在当前目录下解压缩

【unzip -v test.zip】      查看压缩文件目录,但不解压

【unzip elasticsearch-head-master.zip -d head/】       如果要把文件解压到指定的目录下,需要用到-d参数

【unzip -n test.zip -d test/】【unzip -n -d test/ test.zip】      将压缩文件text.zip在指定目录/tmp下解压缩(-d),如果已有相同的文件存在,要求unzip命令不覆盖原先的文件(-n)

【find . -name "*.java"】       find 将开始在当前目录(用“.”表示)中查找任何扩展名为“java”的文件

【find . -name '*.mp4' |wc -l】    返回当前目录(包含子目录)中后缀.mp4的文件数目 (wc -l表示统计输出信息的行数,因为经过前面的过滤已经只剩下普通文件,一个目录或文件对应一行,所以统计的信息的行数也就是目录或文件的个数)

---用户

【su username】【su - username】    

su是(switch user)切换用户的缩写。通过su命令,可以从普通用户切换到root用户,也可以从root用户切换到普通用户。从普通用户切换到root用户需要密码(该密码是普通用户的密码),从root用户切换到普通用户不需要密码。

  • $表示普通用户
  • #表示超级用户,也就是root用户

当使用命令 su username时,对话特征和原始的登录身份一样。如果想要对话进程拥有转换后的用户 ID一致的特征,要使用短斜杠: su – username。

sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。另外一个区别是其默认行为。sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。

sudo su 运行sudo命令给su命令提权,运行su命令。 要求执行该命令的用户必须在sudoers中才可以。

【chmod -R 777 /dir1/dir2/】     设置dir1/dir2/的权限

~在Linux中代表用户主目录:对一般用户,~表示/home/(用户名);对于root用户,~表示/root 

如果要查看~的真实面貌,可以先进入~目录,然后用pwd -P命令查看~的绝对路径:【cd ~】【pwd -P】

MacOS

Mac下查看、添加path环境变量

 

--tips

差别:文件名大小写(mac 会忽略大小写,但是linux 不会。

yum install libsndfile   [centos系统]

--zsh

zsh: command not foundmac终端指令失效解决方法

发现zsh终端里所有命令(ls/vim/...)全部失效了,参考上面链接:打开finder,快捷键【command+shift+句点】,显示隐藏文件夹;打开.zshrc文件;添加【

export PATH=/bin:/usr/bin:/usr/local/bin:${PATH}】,保存关闭;【source .zshrc】使之生效;done!

besides:oh-my-zsh ,“zsh: command not found: ls”

Windows

Windows操作系统,是由美国微软公司(Microsoft)研发的操作系统,问世于1985年。起初是MS-DOS模拟环境,后续由于微软对其进行不断更新升级,采用了图形用户界面(GUI),提升易用性,使Windows成为了应用最广泛的操作系统。

---文件

目的 命令解析
cd跳转目录 添加强制跳转参数/d,即cd /d+path,其中path为目的路径,直接跟在/d后面,无空格。
查看文件 dir,相当于linux系统下的命令ls

参考

[1] Terminal,git,vim常用命令整理以及删除本地git仓库

[2] 如何查看linux服务器内存使用情况 - 疯了的小蜗 - 博客园 (cnblogs.com)

[3] unzip解压失败( cannot find zipfile directory)

[4] 【Linux】Linux统计文件夹、文件数量的命令

[5] Linux zip命令

[6] linux 打包压缩tar、gzip、bzip2、xz、zip、unzip

相关文章: