一个terminal窗口就是以个屏幕, 远程连接了一个服务器, 每一个terminal可以连接到任何一个其他服务器上;
关掉terminal相当于只是关掉了屏幕, 但远程服务器是一直开着的————by peter佬的笔记
linux的文件系统:
根目录: /
bin目录(常用可执行文件命令)
etc目录
var目录
lib目录(安装包, 头文件)
home目录(所有用户的家目录)
特殊的: .表示当前目录, ..表示上层目录, ~/表示家目录;
路径指示方式
- 绝对路径,从根目录开始描述,开头一定是/
- 相对路径,从当前路径开始描述路径
- .表示当前目录, ..表示上层目录
- ~/表示家目录
-
常用命令介绍
ctrl c
: 取消命令,并且换行- 可以杀掉某个程序,关掉,再换行
- 输错了 ctrl+c 取消输入的
ctrl u
: 清空本行命令- 按了很长一串,ctrl+u 清空本行
tab
键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项ls
: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件- ls -h 人性化的显示文件详细信息
- ls -a 显示所有隐藏文件 ps:隐藏文件是.开头的
- ls -A 不显示上层目录的隐藏文件
pwd
: 显示当前路径cd XXX
: 进入XXX目录下, cd .. 返回上层目录cp XXX YYY
: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,比如../dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txt- cp=复制+粘贴+重命名
mkdir XXX
: 创建目录XXX 也就是创建文件夹rm XXX
: 删除普通文件;rm XXX -r
: 删除文件夹rm *__
__处选填,不填就是全删rm*.txt
删除所有txt类型的文件
mv X XX YYY
: 将XXX文件移动到YYY,和cp命令一样,XXX和YYY可以是一个路径;重命名也是用这个命令- mv=剪切+粘贴+重命名
touch XXX
: 创建一个文件cat XXX
: 展示文件XXX中的内容- 复制文本
windows/Linux下:Ctrl + insert,Mac下:command + c - 粘贴文本
windows/Linux下:Shift + insert,Mac下:command + v
-
补充:
- history 显示历史指令
- ↑ 显示上调指令 ↑↑ 显示上上条指令
- 复制粘贴指令,部分电脑需要按再Fn功能键
- 如复制文本 Ctrl + insert + Fn
- 如粘贴文本 Shift + insert + Fn
- {a..c}: dir_{a..c} == dir_a dir_b dir_c
- cp ZZZ/XXX XXX -r此类命令 会合并两个文件夹
2. 创建作业 & 测试作业的正确性
homework 1 create 可以重新创建所有lesson_1的作业
homework 1 create id 可以单独创建lesson_1的第id个作业. e.g.
homework 1 create 0 可以只重新创建lesson_1的第0个作业
homework 1 test 可以评测lesson_1的所有作业
3. 作业
创建好作业后,先进入文件夹/home/acs/homework/lesson_1/,然后:
homework 1 create
cd homework/lesson_1/
cd homework_0
(0) 进入homework_0文件夹,分别创建文件夹dir_a, dir_b, dir_c
mkdir dir_{a..c}
//等价于下面三行
mkdir dir_a
mkdir dir_b
mkdir dir_b
//等价于下面一行
mkdir dir_a dir_b dir_c
cd ../homework_1
(1) 进入homework_1文件夹,将a.txt, b.txt, c.txt 分别复制成: a.txt.bak, b.txt.bak, c.txt.bak
cp a.txt a.txt.bak
cp b.txt b.txt.bak
cp c.txt c.txt.bak
cd ../homework_2
(2) 进入homework_2文件夹,将a.txt, b.txt, c.txt 分别重命名为: a_new.txt, b_new.txt, c_new.txt
mv a.txt a_new.txt
mv b.txt b_new.txt
mv c.txt c_new.txt
cd ../homework_3
(3) 进入homework_3文件夹,将dir_a文件夹下的a.txt, b.txt, c.txt分别移动到文件夹dir_b下
mv dir_a/a.txt dir_b/a.txt
//上下两行等价
mv dir_a/b.txt dir_b
mv dir_a/c.txt dir_b
方法二:
cp dir_a/* dir_b
rm dir_a/*
cd ../homework_4
(4) 进入homework_4文件夹,将普通文件a.txt, b.txt, c.txt删除
rm {a..c}.txt
cd ../homework_5
(5) 进入homework_5文件夹,将文件夹dir_a, dir_b, dir_c删除
rm dir_{a..c} -r
cd ../homework_6
(6) 进入homework_6文件夹,查看task.txt的内容,并按其指示进行操作
cat task.txt
mkdir dir_a
mv task.txt dir_a/done.txt
cd ../homework_7
(7) 进入homework_7文件夹,创建文件夹dir_0, dir_1, dir_2,
将a.txt, b.txt, c.txt复制到dir_0下,重命名为a0.txt, b0.txt, c0.txt;
将a.txt, b.txt, c.txt复制到dir_1下,重命名为a1.txt, b1.txt, c1.txt;
将a.txt, b.txt, c.txt复制到dir_2下,重命名为a2.txt, b2.txt, c2.txt;
mkdir dir_{0..2}
cp a.txt dir_0/a0.txt
cp a.txt dir_1/a1.txt
cp a.txt dir_2/a2.txt
cp b.txt dir_0/b0.txt
cp b.txt dir_1/b1.txt
cp b.txt dir_2/b2.txt
cp c.txt dir_0/c0.txt
cp c.txt dir_1/c1.txt
cp c.txt dir_2/c2.txt
cd ../homework_8
(8) 进入homework_8文件夹,分别在dir_a, dir_b, dir_c文件夹下查看task.txt的内容,并分别按照指示进行操作
cat dir_{a..c}/task.txt
rm dir_a/a.txt
mv dir_b/b.txt dir_b/b_new.txt
cp dir_c/c.txt dir_c/c.txt.bak
cd ../homework_9
(9) 进入homework_9文件夹,将其中所有txt类型的文件删除
rm *.txt