Linux 基础操作学习(1):连接与文件操作
Windows 远程连接 Linux 环境
我的 PC 是 Windows 11 操作系统,而我购置的服务器安装的是 Linux 环境(CentOS),如需用 PC 操作服务器,则需要建立 PC 和远程服务器的远程连接。
我这里使用到的工具是 Windows 自带的 Powershell,Win
+R
输入 powershell
即可打开。
这里顺便推荐一波 Windows Terminal 作为默认终端程序打开 Powershell,非常美观!而且有很多配置可调。
Powershell 自带支持 ssh
命令。直接输入 ssh {user}@{ip}
即可建立连接。
最后一行 []
内显示 {用户名}@{主机名} {目录}
时,说明已经进入 Linux 终端。
目录操作
登录系统后输入 ls /
后即可查看/
,即根目录下所有目录和文件。
1 | [I have no name!@i-ym8u2kyp ~]$ ls / |
各个目录的功能可参见 Linux 系统目录结构 | 菜鸟教程 (runoob.com)。
Linux 系统的文件路径有 绝对路径 和 相对路径 两种写法:
- 绝对路径 由根目录(
/
)写起,如/usr/share/dic
- 相对路径 由当前路径写起。在 Linux 文件系统中,
.
代表当前目录(也可用./
表示),..
代表上一层目录(也可用../
表示)。如我们的当前目录绝对路径为/usr/share/doc
,在当前目录用相对路径方式表示/usr/share/man
的方法是../man
。
另外需要注意,如果一个目录或文件名以 .
开始,如 .bashrc
,说明该目录 / 文件为隐藏目录 / 文件,默认状态下不显示。
处理目录的常见命令
常见命令有:ls
、cd
、pwd
、mkdir
、rmdir
、cp
、rm
、mv
。可以通过 man [命令]
的方式来查看命令的使用文档。
ls
列出目录及文件名(list files)
常用参数:
-a
:连同隐藏文件一起展示所有文件-d
:仅列出目录本身,而不是列出目录内的文件数据-l
:长数据串列出详情
如:
1 | [I have no name!@i-ym8u2kyp ~]$ ls -l / # 展示详情 |
1 | [I have no name!@i-ym8u2kyp ~]$ ls -dl / # 展示当前目录详情 |
cd
cd [目录]
切换目录(change directory)
如:
1 | [I have no name!@i-ym8u2kyp ~]$ cd /dev # 切换到指定绝对路径 |
pwd
显示当前所在的目录(print working directory)
常用参数
-P
:显示确实路径,而非连结路径
mkdir
mkdir [目录名/路径]
创建新目录(make directory)
常用参数
-m
:配置文件权限,忽略默认权限配置影响-p
:可递归创建多级目录
如:
1 | [I have no name!@i-ym8u2kyp ~]$ cd /tmp |
1 | [I have no name!@i-ym8u2kyp tmp]$ mkdir -m 711 test7 # 创建目录并配置权限 |
关于文件权限,可以查看 Linux 文件基本属性 | 菜鸟教程 (runoob.com)
rmdir
rmdir [目录名/路径]
删除空目录(remove directory)
常用参数
-p
:可递归删除多级目录
如:
1 | [I have no name!@i-ym8u2kyp tmp]$ rmdir test5 |
如果要删除非空目录,可参见后续的 rm
命令
cp
cp [源路径] [目标路径]
复制文件或目录(copy)
常用参数:
-i
:若目标路径存在,覆盖前先询问动作-p
:复制时联通属性复制-r
:递归复制目录
1 | [I have no name!@i-ym8u2kyp tmp]$ mkdir test7 |
1 | [root@www ~]# cp ~/.bashrc /tmp/bashrc |
rm
rm [文件/目录路径]
移除文件或目录(remove)
常用参数:
-f
:强制执行(force),忽略不存在的文件-i
:互动模式(interactive),询问是否执行-r
:递归删除,删除目录及子目录
1 | [I have no name!@i-ym8u2kyp tmp]$ rm -ri test7/test8/test9 |
mv
mv [源路径] [目标路径]
移动文件或目录,或修改名称(remove)
常用参数:
-f
:强制执行,如果目标文件已存在,不会询问而直接覆盖-i
:若目标已存在,询问是否直接覆盖
如:
1 | [I have no name!@i-ym8u2kyp tmp]$ mv test9 test7/test8/test9 |
实战:在目录下创建文件夹、删除文件夹
- 在
/home/datawhale
目录下,新建一个以英文昵称为名的文件夹 A - 在文件夹 A 内部创建一个以
datawhale
命名的文件夹 B - 在 B 文件夹内创建一个空的 txt 文件
- 删除上一步创建的文件
- 删除文件夹 B,然后删除文件夹 A
1 | [I have no name!@i-ym8u2kyp ~]$ cd /home/datawhale |
文件操作
wget
wget [目标文件URL]
下载文件的命令很多,如 wget
、apt-get
等,这里以 wget
为例。我租赁的服务器安装的是 CentOS 系统,未预装 wget
,使用该命令可能会提示 command not found。可以使用 yum
先安装 wget
:
1 | yum -y install wget |
常用参数:
-O [name]
:将下载的文件重命名-c
:断点续传(重新启动下载中断的文件)-b
:后台下载
如:
1 | [I have no name!@i-ym8u2kyp tmp]$ wget -O douban.png https://img3.doubanio.com/f/frodo/144e6fb7d96701944e7dbb1a9bad51bdb1debe29/ # 下载并重命名 |
cat
cat [文件路径]
从第一行开始显示文件内容(将文件连接到屏幕上,concatenate)
常用参数:
-b
:列出非空白行行号-n
:列出所有行行号-v
:列出一些看不出来的特殊字符-E
:将结尾的断行字节显示出来-T
:将[tab]
以^l
展示出来-A
:等同于-vET
如:
1 | [I have no name!@i-ym8u2kyp ~]$ cat -b /etc/my.cnf |
tac
从最后一行开始显示(正好是 cat
反过来)
1 | [I have no name!@i-ym8u2kyp ~]$ tac /etc/my.cnf |
head
head [文件路径]
取出文件前几行(默认 10 行)
常用参数:
-n [行数]
:指定显示的行数
如:
1 | [I have no name!@i-ym8u2kyp ~]$ head -n 5 /etc/my.cnf |
tail
与 head
相反,取出文件后几行。
实战2:在目录下下载文件、阅读文件
- 在
/home/datawhale
目录下,新建一个以英文昵称命名的文件夹 A - 在文件夹 A 内创建一个以
datawhale
命名的文件夹 B - 使用
wget
命令下载 https://mirror.coggle.club/dataset/affairs.txt,到文件夹 B - 使用
cat
、head
、tail
命令阅读下载的文件 - 在命令行使用
ipython
进入 Python3 环境,并使用pandas
读取下载的文件
1 | [I have no name!@i-ym8u2kyp ~]$ mkdir -p ./MarioZZJ/datawhale # [1,2] 创建文件夹 |
文件编辑:Vim
nano
nano 是 Linux 的一个基础编辑器,使用 nano [文件路径]
即可使用 nano 打开文件
第一行反色部分指示 nano 版本和文件路径,随后下方显示出文件内容,我们在终端使用键盘上的方向键可以移动光标查看文件内容。在屏幕最底端展示的是快捷键,使用快捷键即可实现上述操作。以 Windows 操作的终端为例:
^
后接按键,代表该操作可以用Ctrl + [按键]
的方式触发。例如要退出编辑器,可以按Ctrl+X
;以及屏幕上提示的其他操作M-
后接按键,代表该操作可以用Alt + [按键]
的方式触发。例如Alt + M
:打开/关闭支持鼠标移动光标Alt + R
:查找模式下输入正则表达式
vim
vim 是知名的 Linux 内置文本编辑器,功能较为丰富,在程序员中被广泛使用。详细教程可参考 Linux vi/vim | 菜鸟教程。
vim 分为三种模式,分别是命令模式(command mode)、输入模式(insert mode)和底线命令模式(last line mode)
命令模式
使用命令 vim [文件路径]
即可使用 vim 编辑器打开文件。
默认进入的是命令模式,该模式下敲击键盘会被视作命令而非输入字符。命令模式支持的命令较少,使用更多命令可以按 :
进入底线命令模式。而如需输入则可以按 i
进入输入模式。
一般模式支持很多按键功能,介绍几个常用的:
h
、j
、k
、l
:作用与←
、↓
、↑
、→
相同,可移动光标。[行数]+h/j/k/l/←/↓/↑/→
:组合快速移动任意行/字符数Ctrl + F/B
:(forward/backward)相当于Page Up / Page Down
。
输入模式
命令模式下,按 i
进入输入模式:
在输入模式下部分按键的功能如下:
- 字符按键,及其与
Shift
按键的组合:输入字符 - 回车
[Enter]
:换行 - 退格
[Backspace]
:删除光标前一个字符 - 删除
[Del]
:删除光标后一个字符 Insert
:切换光标未输入/替换模式。光标分别为竖线/下划线。Page Up/Down
:上下翻页HOME/END
:移动光标到行首/行尾ESC
:退出输入模式,切换到命令模式
底层命令模式
命令模式下,按 :
进入底层命令模式:
在底线命令模式中,基本的命令有:
q
:退出程序w
:保存文件q!
:强制离开而不保存w [文件名]
:将编辑的数据存储为另一个档案r [文件名]
:在编辑的数据中,将另一个文件的数据追加到游标后面! [终端指令]
:暂时离开 vim,在指令中执行指令,并打印结果set nu/set nonu
:显示/取消行号
实战4:在目录下使用 vi 或 vim 编辑文件
-
使用 Nano 和 Vim 分别创建
.py
文件,并输入以下内容,并运行1
2#!/usr/bin/env python3
print('Hello World!')
实操:
- 感谢您的赞赏