:::info
在此文档中,仅记录部分常用指令

需要查看详细的命令与讲解可参考
https://www.runoob.com/linux/linux-command-manual.html

:::

路径

涉及路径的操作常在文件夹转换,相关应用,python脚本调用中会使用到

相对路径和绝对路径

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 相对路径是指相对与当前文件夹,目标文件或文件夹所在的位置

# 绝对路径是指从起始点开始到目标文件或文件夹所在的位置
# 代入到Windows中可以理解为从盘符开始一直到目标文件或文件夹的路径

# 以下为具体的例子
# 假设目前所在文件夹为/home/Gaussian文件夹
# 在/home文件夹内有/test, /folder1等众多文件夹
# 绝对路径
/home/test
/home/folder1

# 相对路径
../test
../folder1
1
2
3
4
5
6
# 这个时候就会涉及到几个相对路径的表达方式
# 当前文件夹
./

# 当前文件夹上一级文件夹
../

相关操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 假设此处所在路径 /home, 包含文件 /download, /pyTest
# 同级目录 /data, 包含文件 /pyroot, /wwwroot, /test

# 进入文件夹
# cd后可使用相对路径或绝对路径
cd /data/pyroot
cd ../pyroot

# 查看文件夹内容
# 查看当前所在路径中包含的文件内容
ll
ls

# 可以通过在后面添加指定的路径来查看指定位置中的内容
ll /data/wwwroot

查看当前路径

1
pwd

文件与文件夹

权限

1
2
3
4
5
6
7
# 在图形界面中,可以使用属性来查看文件的权限
# 对于需要进行读写,运行的文件,文件夹,通常需要赋予一定的权限
# 赋予文件或文件夹权限
chmod 000 < 文件或文件夹 >

# 赋予文件夹及其子目录权限
chmod -R 000 < 文件夹 >

在这段指令中,可以看到有一串数字,他并不是默认000
000代表的是所有用户对此文件不可读,不可写,不可知性

这3个数字从左到右分别代表
文件所有者(Owner)、用户组(Group)、其它用户(Other Users)
所拥有的权限

权限包括

R W X
读(read) 写(write) 执行(execute)

但是我们在赋予权限的时候并不会写rwx,而是采用八进制的数字模式

R W X
读(read) 写(write) 执行(execute)
4 2 1

通过加法的方式确定需要赋予的权限
如:读写 4+2=6 -> chmod 666 < 文件 >
通过对不同的群组的权限分配,实现限制部分用户对文件的操作或确保文件的可执行可修改

1
2
3
# 此时,需要文件所有者拥有所有权限,用户组尽可写入与执行,其他用户不提供权限
# 目标文件为 PCA.py
chmod < ??? > < ??? >

文件或文件夹的复制与剪切

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 复制文件到文件夹
cp < 文件所在路径 > < 目标路径 >
# 复制文件夹到xxx
cp -r

# 剪切文件到文件夹
# mv也可以用于文件或文件夹改名
mv [options] < 文件所在路径 > < 目标路径 >
# 参数说明 依照实际情况填写 可以不写
-b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n: 不要覆盖任何已存在的文件或目录。
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

隐藏文件或文件夹

1
2
3
4
5
6
7
# 可以通过在文件前加上"."来实现文件的隐藏
# 以 myself.jpg为例
mv myself.jpg .myself.jpg

# 隐藏后只是直接ll或者ls无法查看
# 查看文件夹内所有文件,包括隐藏文件
ls -all

删除

1
2
3
4
5
6
7
8
rm [options] FileOrFolder
# 参数讲解
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
# 注意 删除文件夹的时候一定要加上 -r
# 请不要随意的rm -rf,使用rm删除文件之前请再三确认
# rm删除的文件无法恢复!!!

查看文件

cat

1
2
# cat可以将你指定的文件的内容打印到终端
cat haha.txt

cat还拥有其他更强大的功能,如将文件内容写入到另一个文件中,制作软盘等等
但因为我平时使用较少,因此就不详细讲解具体内容
https://www.runoob.com/linux/linux-comm-cat.html

vim、vi

vi和vim其实是两个编辑软件

这两个的软件的故事也是很有趣的

【这可能是世界上最简短的悼词。】
https://www.bilibili.com/video/BV1X8411i719/?share_source=copy_web
这是讲vim的开发者Bram的故事,有兴趣可以看看

接下来继续讲正题

1
2
3
4
5
6
# 直接输入vim可以启动vim
# 现在有部分linux(大部分???)输入vi也可以启动,但是还是建议使用vim
vim

# 编辑文件
vim xxx.txt

在使用vim的时候,没有图形交互界面,需要使用键盘快捷键
vim的快捷键众多,可以参考
https://zhuanlan.zhihu.com/p/61515833

以下为最基础的编辑,保存,退出过程

1
2
3
4
5
6
7
8
9
# 例子:编辑环境变量
vim ~/.bashrc

# 开始编辑
i
# 退出编辑模式
ESC
# 保存退出
:wq

查找

whereis

1
2
3
4
5
6
# 在安装完成软件并配置过环境变量后,想找到其路径
whereis g16

# 查找文件
# whereis只能查找二进制文件,不推荐使用
whereis bash

https://www.runoob.com/linux/linux-comm-whereis.html

find

1
2
3
4
5
6
7
8
find [path] [expression]
# path 不填写将默认当前路径
# expression有众多参数选择
# 常用
# 查找where.txt
find -name where.txt
# 查找所有jpg后缀文件
find -name "*.jpg"

文件压缩与解压

常见的压缩文件后缀有:zip, rar, bz2, gz, tar, tar.bz2等等,实际需要的解压指令只有两条,分别为解压zip和非zip的

1
2
3
4
5
# 仅在解压zip的时候使用
unzip *.zip

# 压缩
zip < 文件夹 >
1
2
# 解压
tar -jxvf < 压缩包 >

常用大概就这两个,默认都是解压到当前文件夹

详细可以参考:
https://www.runoob.com/w3cnote/linux-tar-gz.html

打包压缩:
https://zhuanlan.zhihu.com/p/152623706

环境变量

环境便量的修改包含两种

  1. 为当前用户配置环境变量
  2. 为所有用户配置环境变量
  3. 配置临时环境变量

前两者的区别从配置的对象就可以看出来,一个是配置完只有当前环境可以使用,一个是所有都可以使用

1
2
3
4
5
6
7
8
# 为当前用户配置环境变量
vim ~/.bashrc
# 为所有用户配置环境变量
vim /etc/profile
# 修改文件内容,在文本最后进行添加
export PATH="< 需要指定的路径 >:$PATH"
# 配置执行脚本路径 依照实际情况来写 一半不需要
source $g16root/g16/bsd/g16.profile

例子:

1
2
3
4
echo $PATH

# 他貌似并不会输出不包含$PATH的环境变量
# 如从某个环境变量路径延续编写的环境变量他并不显示

软件安装

Linux中的软件安装方式有多种

  1. 使用包管理器进行安装
  2. 在官网下载对应文件进行安装

两种安装方式依然可以细分,以下为讲解

1
2
3
4
5
6
7
8
9
10
11
12
# 通常包含有apt-get,yum等
# 他们的使用方法都非常相似
apt-get install ***
yum install ***

# 卸载
apt-get uninstall ***
yum uninstall ***

"""
请注意,你使用什么包管理器安装,你就使用哪个方式进行卸载
"""
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 下载
wget < 下载链接 >

# 安装
# 根据不同的文件使用不同的安装方式
# 压缩包
# 将压缩包解压到你希望安装的位置即可
tar -jxvf ***
# 配置环境变量 -> 参考3

# .sh
/*.sh

# 删除
# 找到他的文件夹
rm -rf

网络

1
ifcofig

第一次编辑 2023/9/23 1: 25 编写内容1 —-> 2.6.2

第二次编辑 2023/9/27 16: 03 编写内容2.7 —-> 4