Linux入门必学
创始人
2024-09-25 12:46:47
0

入学篇-Linux


🧐 本次学习由InternStudio平台赞助

🧿算力平台:https://studio.intern-ai.org.cn/console/instance

🧿闯关流程:https://aicarrier.feishu.cn/wiki/XBO6wpQcSibO1okrChhcBkQjnsf

🧿闯关文档地址:https://github.com/InternLM/Tutorial/tree/camp3/docs/L0

🧿推荐学习资料:计算机教育中缺失的一课 · the missing semester of your cs education (missing-semester-cn.github.io)


1. InternStudio平台使用教程

平台首页:

image-20240718101541142

创建机器:

image-20240718101644835

选择镜像:

image-20240718101724488

image-20240718101930310

记得修改运行时间:

image-20240718101803708

2. Linux 登录方式

2.1 添加ssh密钥

2.1.1 本地端创建生成密钥

本地端powershell输入ssh-keygen -t rsa

输入命令后一路回车就可以了,这里的密钥默认情况下是生成在~/.ssh/目录下的,~表示的是家目录,如果是windows就是C:\Users\{your_username}\

2.1.2 服务器端添加密钥
  • 方式一:在线添加
    image-20240718105230406
    image-20240718105239565

image-20240718105334657

  • 方式二:写入文件
    image-20240718105935169

选择登录方式:

image-20240718102013097

2.2 在线登录

根据个人爱好选择喜欢的用户界面:

  • JupyterLab

  • CLI

  • VsCode (地表最强,不接受反驳)

image-20240718102243393

2.3 powershell + ssh登录:

复制登录命令到powershell,这里的37367是开发机所使用的SSH端口,一般使用的都是22端口,没有这个端口号的话是连不上SSH的,并且每个人的端口都不一样,所以如果大家在连接开发机时出现连不上的情况,那就需要检查一下是不是端口错了。

image-20240718102606209

image-20240718102850063

成功登录

image-20240718102928978

2.4 VsCode + remote SSH 登录

当然也可以使用SSH远程连接软件,例如:Windterm、Xterminal等。这里我们使用VScode进行远程连接,使用VScode的好处是,本身它就是代码编辑器,进行代码修改等操作时会非常方便。

image-20240718110249247

image-20240718110459569

输入登录命令:

image-20240718110608275

image-20240718110626126

如果将*StrictHostKeyChecking noUserKnownHostsFile* /dev/null删除掉会跳出指纹验证的弹窗:

3. Linux使用

3.1 快速认识常用命令

命令功能
ls列出目录中的文件或子目录
cd 改变当前工作目录的路径
pwd显示当前工作目录的路径
cp复制文件或目录
mv移动或重命名文件或目录
rm删除文件或目录
mkdir创建一个新的目录
touch创建一个空文件或修改文件的时间戳
cat查看文件内容或合并文件
more / less分页显示文件内容
head / tail显示文件的开头或结尾部分
grep在文件中搜索指定的字符串
find在目录树中搜索文件
tar打包或解压文件
gzip / gunzip压缩或解压缩文件
chmod修改文件或目录的权限
chown改变文件或目录的所有者
ps显示当前运行的进程
top显示实时进程和系统负载信息
kill发送信号到进程
df显示文件系统的磁盘空间使用情况
du显示文件或目录的磁盘使用情况
free显示内存和交换空间的使用情况
ping测试网络连接
ssh安全地访问远程服务器
scp安全地复制文件到远程服务器
wget从网络上下载文件
curl传输数据的工具,支持多种协议
sudo以超级用户身份执行命令

3.2 服务器端查看系统信息的命令

命令功能
hostname开发机名称
uname -a查看开发机内核信息
lsb_release -a查看开发机版本信息
nvidia-smi查看 GPU 的信息

3.3 端口映射

什么是端口映射?

端口映射可以将外网中的任意端口映射搭配内网中的相应端口,实现内网与外网之间的通信。通过端口映射可以从外网范文内网中的服务或应用,实现跨越网络的便捷通信。

为什么要进行端口映射?

因为开发机Web IDE中运行web_demo时,直接访问开发机内 http/https 服务可能会遇到代理问题,外网链接的ui资源没有被加载完全。

为了解决这个问题,我们需要对运行web_demo的连接进行端口映射,将外网链接映射到我们本地主机

4. Linux基础命令 (详解版)

在继续阅读之前建议先快速了解Linux常用命令 —>[ 3.1 快速认识常用命令](####3.1 快速认识常用命令)

4.1 文件管理

4.1.1 touch

image-20240718122905138

4.1.2 mkdir

image-20240718122927764

4.1.3 cd

image-20240718123010163

4.1.4 pwd

image-20240718123115840

4.1.5 cat

cat命令可以查看文件里面的内容,更多的使用命令可以使用--help命令查看:

4.1.6 vi or vim

进入编辑模式可以使用i,vim的方便之处就是可以在终端进行简单的文件修改。

vi 或者 vim 有三种模式:

4.1.7 cpln

cp:复制文件或文件夹

  • 复制文件:cp 源文件 目标文件
  • 复制目录:cp -r 源目录 目标目录

ln:创建类似windows的快捷方式,ln [参数] [源文件或目录] [目标文件或目录]

  • -s:创建软链接(符号链接)也是最常用的;
  • -f:强制执行,覆盖已存在的目标文件;
  • -i:交互模式,文件存在则提示用户是否覆盖;
  • -n:把符号链接视为一般目录;
  • -v:显示详细的处理过程。
4.1.8 mvrm

mv命令和rm命令的使用方式很相似

mv命令:移动文件或者目录的,同时还可以进行重命名

rm:删除文件或者目录的

mv命令常用参数:

  • -i:交互模式,覆盖前询问。
  • -f:强制覆盖。
  • -u:只在源文件比目标文件新时才进行移动。

rm命令常用参数:

  • -i:交互模式,删除前询问。
  • -f:强制删除,忽略不存在的文件,不提示确认。
  • -r:递归删除目录及其内容。
4.1.9 find

find命令是Linux系统中一个强大的文件搜索工具,它可以在指定的目录及其子目录中查找符合条件的文件或目录,并执行相应的操作。

find [查找路径] 参数:

  • -name [文件名] :按文件名进行查找
  • -type [文件类型 ]:按文件类型进行查找,f:文件
  • -size [文件大小] :按文件大小查找,+100M:大于100M的文件
  • -mtime/ -atime/ -ctime:按修改时间进行查找。例如,find /path/to/directory -mtime -7将查找指定目录及其子目录中在7天内修改过的文件。
  • -pern:按权限进行查找
  • -user:按用户进行查找
  • -group:按组进行查找
  • -exec:对找到的对象执行操作,例如:find /path/to/directory -name "*.txt" -exec rm {} \;将删除找到的所有以.txt结尾的文件。
4.1.10 ls

ls命令可以用来列出目录的内容以及详细信息

常用参数:

  • -a:显示所有文件和目录,包括隐藏文件(以.开头的文件或目录)。
  • -l:以长格式显示详细信息,包括文件权限、所有者、大小、修改时间等。
  • -h:与-l结合使用,以人类可读的方式显示文件大小(如KMG等)。
  • -R:递归列出子目录的内容。
  • -t:按文件修改时间排序显示。
4.1.11 sed

sed命令是一种流编辑器,主要用于文本处理,在处理复杂的文件操作时经常用到。

参数说明:

  • -e