Liunx常用命令总结分享


前言

我们在敲代码的过程中,会接触到一些Liunx命令,能够熟练的使用Liunx命令可以使我们事半功倍,接下来就对一些常用的Liunx命令就行总结。

一、文件处理

1. 创建文件夹

创建文件夹最常用的命令就是mkdir。

mkdir data
创建一个名为data的文件夹

2. 创建文件

创建文件常用命令是touch。

touch mian.py
创建一个名为main.py的python文件

3. 移动文件

移动文件常用命令是mv,即move的缩写。

mv /data/main.py test
移动data文件夹下的main.py文件到test文件夹里

mv /data/a test/b/
移动data目录下的a文件夹到test/b目录下。这里分两种情况,如果test目录下b文件夹存在,那么a文件夹就会被移动到b目录下;如果b文件夹不存在,那么a文件夹就会被移动到test文件夹下并且改名为b。因此,如果想改文件夹的名字也可以使用mv命令。

mv /data/a test/b/
如果b文件夹下已经有a文件夹了,那么b文件夹中的原a文件夹就会被覆盖,可以增加-i使系统询问是否覆盖。
mv -i data/a test/b/

mv /data/a/* test/b/ 将a文件夹下所有的文件移动b文件夹。
mv /data/a/*.jpg test/b/ 将a文件夹下所有带.jpg的文件移动到b文件夹。

前面的mv /data/a test/b/是将整个a文件夹移动到b文件夹下,大家注意区别。

mv data/a/test1.py data/a/test1.py test/b
同时移动a文件夹下的test1.py和test2.py到b文件夹。
注意:目标路径只能有一个,即最后一个。

4. 复制文件

复制文件夹常用命令是cp,即copy的缩写。

cp /data/a/main.py test/b/
复制a文件夹下main.py文件到b文件夹下

cp /data/a/* test/b/
复制a文件夹下的所有文件到b文件夹下

cp -r /data/a test/b/
将整个a文件夹复制到b文件夹下。如果b文件夹不存在,那么a文件夹就会复制到test文件夹下并且改名为b,此方法也可以起到改名的效果。
注意:如果要复制整个文件夹,要加上-r,就是递归的意思,-r可以将整个文件夹复制过去(mv命令移动整个文件夹不需要-r)。

cp -i /data/a/* test/b/
将a文件夹下的所有文件复制到b文件夹下,如果有重名的文件,会询问是否覆盖文件。如果不加-i的话,复制时有重名的文件会直接覆盖

cp /data/a/test1.py /data/a/test2.py test/b
同时复制a文件夹下的test1.py和test2.py文件到b文件夹。
注意:目标路径只能有一个,即最后一个。

5. 删除文件

删除文件夹常用的命令时rm,即remove的缩写。

rm /data/a/main.py
删除a文件夹下的main.py文件

rm /data/a/*
删除a文件夹下的所有文件

rm -r /data/a
删除整个a文件夹

rm a.txt b.txt
同时删除a文件和b文件。

6. 显示文件目录

一般显示文件目录使用的是ls命令,即list的缩写。

ls 列出当前文件夹下的内容
ls /data/a 列出a文件夹下的内容
ls -a 显示该文件夹下的所有文件内容,包括隐藏文件(单纯ls命令不会显示隐藏文件)
ls -l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等,如下图所示
在这里插入图片描述
ls -t 按照文件的修改时间排序显示文件,最新的文件在前面

7. 计算文件夹中文件数量

前面我们说到,ls-l命令可以列出文件夹下文件的详细信息,有多少个文件就输出多少行,因此我们只要统计ls -l命令输出多少行就可以了。统计ls -l 命令输出多少行需要用到管道命令。在这个命令中,ls -l | 命令1,命令1就是管道命令,其对ls-l命令的输出进行再次处理。常用的管道命令有grep(查找字符串),sort(排序命令)和wc(统计命令)。为了节约篇幅,这里介绍在计算文件数量时常用的管道命令。

grep "^-" ,在这个命令中就是输出第一个位置为‘-’的字符串。同理,
gerp "^d" ,就是输出第一个位置为‘d’的字符串。
wc -l, 这个命令的作用是统计行数,l就是Line的缩写。

在这里插入图片描述
根据ls -l 命令的输出我们可以看到,如果是文件夹,那么这一行的第一个字符串是’d’。如果是文件,那么这一行的第一个字符串是’-'。因此,我们可以将ls -l 命令与常用的管道命令相结合来统计文件数量。

统计目录下文件夹数量:ls -l |grep "^_"| wc -l

ls -l | grep "^-" , 这个命令是查找ls -l的输出中第一个位置为’-‘的行,因此输出为
在这里插入图片描述
可以看到,显示的每一行第一个字符都是’-',也就是每一行都代表一个文件。在此基础上在加上统计命令wc -l就能统计出当前目录下有多少个文件了。
ls -l |grep "^-"| wc -l 该命令就是统计该路径目录下有多少个文件。输出如下:
在这里插入图片描述
输出是4,也就是文件的数量是4个,统计正确。

统计文件夹数量:ls -l |grep "^d"| wc -l

这个命令与前面的命令唯一不同之处就是把grep "^-” 换成了grep "^d"

统计目标路径下所有文件夹和文件加在一起的数量:ls -l | wc -l
在这里插入图片描述
注意:ls -l | wc -l 命令就是统计ls -l的行数,但是ls -l的输出的第一行是total,这并不代表一个文件或者文件夹,但是wc-l也把这一行统计进去了,因此最终的结果应该是ls -l |wc -l的输出减1。在这一个例子里,便是6-1=5个,即文件夹和文件的数量一共是5个。

8. 显示和编辑文件内容

在命令终端中显示文件内容的方式有很多中,这里就不一一向大家介绍了,我最常用的就是vi 命令,这个命令即可以打开文件,也可以编辑文件,同时还支持打开很大的文件,非常方便。

vi /data/a/main.py
这个命令就是打开main.py。打开文件后,可以按上下左右键控制光标的移动,按下i键进入编辑模式,按下esc键退出编辑模式,输入:q退出vi命令。

vi命令更加详细的使用方法网上很多,本文为了节约篇幅就不一一向大家介绍了。

9. 文件改名

文件改名我最常用的方法就是mv命令。

mv /data/a /data/b
如果data文件夹下没有b文件夹,那么a文件夹就会改名为b文件夹。

二、远程连接(网络)

1. 远程登录服务器

ssh username@ip

SSH,是一种网络协议,用于在网络上安全地访问远程计算机。默认访问的端口是是22,可以使用-p 参数修改访问的端口号。

ssh -P 24 username@ip

访问ip地址的24号端口

2. 从本地上传东西到服务器

scp local_file uesrname@ip: /path/to/destination

同时scp命令还有一些可选项

-r:递归复制,复制整个文件夹。
-v:详细模式,显示更多的信息。
-P:指定端口号,用于连接到远程主机的非标准SSH端口。(P是大写的)
-C:启用压缩,可以在传输过程中压缩数据。
-q:安静模式,不显示进度条。

从24号端口传输文件

scp -P 24 local_file uesrname@ip: /path/to/destination

3. 从服务器上下载东西到本地

scp uesrname@ip: /path/to/destination local_file

scp -P 24 uesrname@ip: /path/to/destination local_file

注意:无论是在本地上传文件到服务器,还是从服务器下载文件到本地,都是使用本地的终端窗口执行命令。

4. 查看当前网络配置

ifconfig

5. 测试本地主机与服务器连通性

ping ip

三、系统内存管理

1. 查看显卡占用

nvidia-smi

在这里插入图片描述
这是对于跑深度学习的朋友经常需要用到的一条指令,用来查看当前服务器的使用情况。

2. 查看当前进程

ps(process status)命令用于查看当前系统中正在运行的进程的状态和信息,进程信息文件中包含了进程的PID、状态、父进程ID、CPU利用率、内存占用等信息。一般常用的命令有:

ps -aux 查看所有进程的详细信息
ps -u username 查看username账户的进程信息

3. 关掉进程

kill命令用来删除执行中的程序或工作。

kill -9 PID

PID指进程的编号,可以使用ps命令获得,-9 指强制关掉进程。

4. 查看磁盘使用情况

du(disk usage)命令用于估计文件和目录占用的磁盘空间。它通过遍历指定的目录树来计算每个目录和文件的大小。

一些常用的 du 命令选项包括:
-h:(human)以人类易读的格式显示大小(如KB、MB、GB)。
-s:仅显示总计。
-a:显示目录中每个文件的磁盘使用情况。
-c 或 --cumulative:包括子目录的总和。
–max-depth=N:限制输出结果的深度。

例如:

du -h /data/test
此命令会递归遍历当前目录下所有文件夹并以人类可读的方式显示这些文件夹的内存大小。
在这里插入图片描述
du -h --max-depth=1 /data/test
如果一个目录下的子文件夹很多,使用du -h是很不方便的,此时我们可以使用–max-depth=N来指定他遍历的深度。du -h --max-depth=1 /data/test是只对/data/test/下的一级子文件夹的内存进行计算。
在这里插入图片描述

du -sh /data/test
只显示test文件夹占用的总内存,-s:只显示文件内存总计,-h:以人类可读的方式,因此-sh是以人类可读的方式显示文件大小。
在这里插入图片描述

除了du命令之外,常用的命令还有df(disk free)。此 命令用于显示文件系统的磁盘空间使用情况。它可以报告文件系统的总大小、已使用大小、可用大小以及挂载点。

df -h (-h指以人类可读的方式)
在这里插入图片描述

区别:
du 命令关注的是文件和目录占用的磁盘空间,它从用户空间的角度来查看磁盘使用情况。
df 命令关注的是文件系统级别的磁盘空间使用情况,它从系统的角度来查看磁盘空间。
因此如果想查看某一个具体文件夹的内存大小,使用du命令,想查看整个文件系统的内存使用情况,使用df。

四、其他

1. 查看当前路径

pwd
在这里插入图片描述

2. 切换工作路径

切换工作路径常用命令是cd。

cd .. 返回上一级目录
cd . 当前目录
cd /data 进去到根目录下的data路径下

3. 更改文件权限

在同一个服务器上,a用户创建的文件b用户是无法修改的,如果a用户想让b用户可以写入文件,需要修改文件权限。修改文件权限常用的命令是chmod(change mode)。
用户可以使用chmod设置文件或目录的读(r)、写(w)和执行(x)权限。

权限类型:
读(r):允许查看文件内容或目录下的文件列表。
写(w):允许修改文件内容或在目录中创建、删除、重命名文件。
执行(x):允许执行文件或进入目录。
权限模式:
数字模式:使用数字来表示权限,其中 4 代表读,2 代表写,1 代表执行。将它们相加来表示组合权限,例如 7(读+写+执行)。
符号模式:使用字母和运算符来表示权限,如 u(用户,即文件所有者)、g(组,即文件所属组)、o(其他,即既不是用户也不是组的其他人)、a(所有,即所有人)。

chmod 777 /data/test/main.py
所有用户(文件所有者、所属组和其他用户)都将拥有对该文件的读、写和执行权限。

4. sudo命令

sudo命令允许非 root 用户以超级用户的身份执行特定的命令。

用法:使用 sudo 来执行需要高权限的命令。
sudo [命令]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值