任务描述 | 完成所需时间 | |
---|---|---|
闯关任务 | 完成SSH连接与端口映射并运行hello_world.py | 10min |
可选任务 1 | 将Linux基础命令在开发机上完成一遍 | 10min |
可选任务 2 | 使用 VSCODE 远程连接开发机并创建一个conda环境 | 10min |
可选任务 3 | 创建并运行test.sh 文件 | 10min |
任务一:
任务二:
任务三
3.1 文件管理
在 Linux 中,常见的文件管理操作包括:
-
创建文件:可以使用
touch
命令创建空文件。 -
创建目录:使用
mkdir
命令。 -
目录切换:使用
cd
命令。 -
显示所在目录:使用
pwd
命令。 -
查看文件内容:如使用
cat
直接显示文件全部内容,more
和less
可以分页查看。 -
编辑文件:如
vi
或vim
等编辑器。 -
复制文件:用
cp
命令。 -
创建文件链接:用
ln
命令。 -
移动文件:通过
mv
命令。 -
删除文件:使用
rm
命令。 -
删除目录:
rmdir
(只能删除空目录)或rm -r
(可删除非空目录)。 -
查找文件:可以用
find
命令。 -
查看文件或目录的详细信息:使用
ls
命令,如使用ls -l
查看目录下文件的详细信息。 -
处理文件:进行复杂的文件操作,可以使用
sed
命令。
这里介绍几种我们在课程中会使用到的命令:
3.1.1 touch
我们可以使用touch快速的创建文件,这样我们不用手动点击进行创建了。例如我们要创建一个demo.py
文件:
3.1.2 mkdir
同样的使用方法,如果要创建一个名为test
的目录:
3.1.3 cd
这个命令会是使用最多的一个命令,在使用之前需要为没有计算机基础的同学讲一下目录结构,画一张图让大家理解:
我们现在使用的是root
目录,也是root用户的家目录~
,linux操作系统中/
表示根目录,根目录下有许多系统所需的目录和文件,刚才我们创建的目录就存在与root
目录下,其中.
表示的是当前目录,..
表示的上级目录。如果我现在要进入到test
目录,然后回到root
目录,我们可以这样操作:
3.1.4 pwd
我们可以使用pwd
命令查看当前所在的目录:这样可以方便我们确定我们当前所在哪个目录下面。
3.1.5 cat
cat
命令可以查看文件里面的内容,更多的使用命令可以使用--help
命令查看:
-
-a,--show-all等价于-vET
-
-b,--number-non空白数非空输出行,覆盖-n
-
-e, 等价于-vE
-
-E,--show-结束显示$在每一行的末尾
-
-n,--number编号所有输出行
-
-s,--crick-空白抑制重复的空输出行
-
-t等价于-vT
-
-t,--show-tabs将制表符显示为^I
-
-v,--show非打印使用^和M-表示法,LFD和TAB除外
3.1.6 vi or vim
当我们需要编辑文件的时候可以使用vi
或者vim
命令,当你进入文件编辑以后,有三种模式:
进入编辑模式可以使用i
,vim的方便之处就是可以在终端进行简单的文件修改。
3.1.7 cp 和 ln(重点)
cp
**命令在后面课程中会经常用到,它是用来将一个文件或者目录复制到另一个目录下的操作,常用的使用有:**
-
复制文件:
cp 源文件 目标文件
-
复制目录:
cp -r 源目录 目标目录
但是如果我们是要使用模型的话,这种操作会占用大量的磁盘空间,所以我们一般使用ln
命令,这个就和windows的快捷方式一样。linux中链接分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
所以我们一般使用软连接,它的常用的使用方法如下:
ln [参数][源文件或目录][目标文件或目录]
参数如下:
-
-s:创建软链接(符号链接)也是最常用的;
-
-f:强制执行,覆盖已存在的目标文件;
-
-i:交互模式,文件存在则提示用户是否覆盖;
-
-n:把符号链接视为一般目录;
-
-v:显示详细的处理过程。
3.1.8 mv 和 rm
mv
命令和rm
命令的使用方式很相似,但是mv
是用来移动文件或者目录的,同时还可以进行重命名。rm
命令则是用来删除文件或者目录的。
常用的使用方法如下:
-
mv 命令:
常用参数:
-
-i
:交互模式,覆盖前询问。 -
-f
:强制覆盖。 -
-u
:只在源文件比目标文件新时才进行移动。
使用示例:
-
mv file1.txt dir1/
:将文件file1.txt
移动到目录dir1
中。 -
mv file1.txt file2.txt
:将文件file1.txt
重命名为file2.txt
。 -
rm 命令:
常用参数:
-
-i
:交互模式,删除前询问。 -
-f
:强制删除,忽略不存在的文件,不提示确认。 -
-r
:递归删除目录及其内容。
使用示例:
-
rm file.txt
:删除文件file.txt
。 -
rm -r dir1/
:递归删除目录dir1
及其所有内容。
删除目录的命令也可以使用rmdir
。
3.1.9 find
find
命令是Linux系统中一个强大的文件搜索工具,它可以在指定的目录及其子目录中查找符合条件的文件或目录,并执行相应的操作。
以下是find
命令的一些常见用法:
-
按文件名查找:使用
-name
选项按照文件名查找文件。例如,find /path/to/directory -name "file.txt"
将在指定目录及其子目录中查找名为file.txt
的文件。 -
按文件类型查找:使用
-type
选项按照文件类型查找文件。例如,find /path/to/directory -type f
将查找指定目录及其子目录中的所有普通文件。 -
按文件大小查找:使用
-size
选项按照文件大小查找文件。例如,find /path/to/directory -size +100M
将查找指定目录及其子目录中大于100MB的文件。 -
按修改时间查找:使用
-mtime
、-atime
或-ctime
选项按照文件的修改时间、访问时间或状态更改时间查找文件。例如,find /path/to/directory -mtime -7
将查找指定目录及其子目录中在7天内修改过的文件。 -
按文件权限查找:使用
-perm
选项按照文件权限查找文件。例如,find /path/to/directory -perm 755
将查找指定目录及其子目录中权限为755的文件。 -
按用户或组查找:使用
-user
或-group
选项按照文件的所有者或所属组查找文件。例如,find /path/to/directory -user username
将查找指定目录及其子目录中属于用户username
的文件。 -
执行操作:使用
-exec
选项可以对找到的文件执行相应的操作。例如,find /path/to/directory -name "*.txt" -exec rm {} \;
将删除找到的所有以.txt
结尾的文件。
3.1.10 ls
ls
命令可以用来列出目录的内容以及详细信息。
常用参数及使用方法如下:
-
-a
:显示所有文件和目录,包括隐藏文件(以.
开头的文件或目录)。 -
-l
:以长格式显示详细信息,包括文件权限、所有者、大小、修改时间等。 -
-h
:与-l
结合使用,以人类可读的方式显示文件大小(如K
、M
、G
等)。 -
-R
:递归列出子目录的内容。 -
-t
:按文件修改时间排序显示。、
3.1.11 sed
sed
命令是一种流编辑器,主要用于文本处理,在处理复杂的文件操作时经常用到,在后续的课程中会使用到,sed
命令常用参数及使用示例如下:
-
参数说明:
-
-e<script>
或--expression=<script>
:直接在命令行中指定脚本进行文本处理。 -
-f<script文件>
或--file=<script文件>
:从指定的脚本文件中读取脚本进行文本处理。 -
-n
或--quiet
或--silent
:仅打印经过脚本处理后的输出结果,不打印未匹配的行。
-
-
动作说明:
-
a
:在当前行的下一行添加指定的文本字符串。 -
c
:用指定的文本字符串替换指定范围内的行。 -
d
:删除指定的行。 -
i
:在当前行的上一行添加指定的文本字符串。 -
p
:打印经过选择的行。通常与-n
参数一起使用,只打印匹配的行。 -
s
:使用正则表达式进行文本替换。例如,s/old/new/g
将所有 "InternLM" 替换为 "InternLM yyds"。
-
-
示例: