1:VM虚拟机
==防止出现问题:养成备份的好习惯!==(在做一些可能影响系统的事前备份)
VM虚拟机的两种备份方式:拍摄快照(短期高频)和克隆(长期低频)。
关机命令:1.shutdown (-h) now;2.halt(关闭内存);
以超级管理员身份登录:sudo -i,输入密码。(tips:输密码时光标不会移动)
找不到之前创建好的虚拟机:查看—>自定义—>库。
2:acwing学习
AC terminal复制,粘贴快捷键:Ctrl +insert
,Shift + insert
。
acwing Linux基础课:轻理论,重实践。
目前的的app,web,小程序等各种应用的模式:前端形式各种各样。后端都是用server来处理。
基础技术就是掌握好sever,一套后端框架可以服务多种前端形式。
server绝大多数都是部署在Linux上,所以需要先学好Linux,Linux基础课就是整个工程课系列的基础。
学习资料 :菜鸟教程,黑马程序员Linux笔记,尚硅谷Linux课程资料,韩顺平Linux课程。
参考博客: https://www.junmajinlong.com/linux/index/。
《趣谈Linux操作系统》 : https://time.geekbang.org/column/article/87111。
3:lesson1
3.1:课程概论
Linux的常见发行版本:Ubuntu,CentOS等等。
terminal其实就相当于主机的一个屏幕。同时打开两个终端也就是打开了2个屏幕,它们共享一台主机,在其中一个终端使用命令也会影响另一个终端。
我们可以通过ssh将终端连接到自己的或者公司的服务器,本地都不需要Linux环境,只需要一个万能屏幕就行,操作服务器可以通过终端来操作,很方便。
先介绍两个常用的帮助指令:man
和help
。
用法示例:man ls
,ls --help
。(需要能看懂英语)
如果嫌英语麻烦,可以直接百度指令。
help、man、—help命令区别:
1、help 命令:只能查询shell内置命令。
使用格式:help cd
2、—help 命令:只能查询linux外部命令。
使用格式:mkdir --help
3、man 命令:即可以帮助查询linux内置命令,也可以查询linux外部命令。man查询的内容比其余两个命令内容都多。
使用格式:man cd
q Q 退出界面。
4、其中 “—help、man”是我们常用命令。
关于命令等Linux内容,现学现查是最高效的学习方式。
3.2:文件系统结构
Linux一切皆文件。
①在windows是文件的,在Linux下同样也是文件;
②在windows不是文件的,在Linux下也是以文件的形式存储的。
日常学习中和日常工作中,对于文件的操作的都有哪些种类?
创建文件、编辑文件、保存文件、关闭文件、重命名文件、删除文件、恢复文件。
Linux系统的根目录就是/
,一个斜杠。
使用命令:ls /
。可以看到根目录下的文件结构。
以下是对这些目录的解释:(了解,不需要记忆)
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令,一些可执行文件的命令。/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。- /var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 - /lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。存一些安装包,库文件等。 - /home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。表示除了root用户以外其他用户的家目录。 - /root:
该目录为系统管理员,也称作超级权限者的用户主目录。
文件的两种路径:
绝对路径:从根目录开始的路径,例如ls /home/grant/passwd
。ls后面的就是绝对路径。
相对路径:不从根目录开始的路径,例如当前在/home路径下,ls /grant
。ls后面的就是相对路径。
在Linux文件系统中有两个特殊的目录,一个用户所在的工作目录,也叫当前目录,可以使用一个点 . 来表示;另一个是当前目录的上一级目录,也叫父目录,可以使用两个点 .. 来表示。
- . :代表当前的目录,也可以使用 ./ 来表示;
- .. :代表上一层目录,也可以 ../ 来代表。
如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。
~ :代表当前使用者的家目录,或者~/。~grant
或者~grant/
表示名为grant的家目录。
3.3:文件管理常用命令
linux命令查询网站: https://www.linuxcool.com/。
ls (列出目录):list
在Linux系统当中, ls 命令可能是最常被运行的。
选项与参数:
- -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
- -A:显示除隐藏文件“.”和“..”以外的所有文件列表
- -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据(常用)
- -h:将文件内容大小以GB、KB等易读的方式显示
- 参数可以叠加使用:
ls -lh
或者ls -hl
都可以,效果一样,与顺序无关
pwd (显示目前所在的目录)
pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。
cd (切换目录)
cd是Change Directory的缩写,这是用来变换工作目录的命令。
1 | 使用绝对路径切换到 runoob 目录 |
cp (复制文件或目录)
cp 即拷贝文件和目录。其实应该是:复制+粘贴+重命名。
语法:#cp 被复制的文档路径 文档被复制到的路径,还兼有重命名的功能
1 | acs@83ea09fe037b:~$ ls |
文件夹的复制:
cp a b -r
:a和b属于同一级目录,-r参数用于递归复制文件和目录,将整个a目录复制到b的下面。
cp a c -r
:a存在,c不存在,将整个a目录复制到当前目录的下面,命名为c。当前目录同时存在a,c。
这样复制时注意文件覆盖问题!
mkdir (创建新目录)
如果想要创建新的目录的话,那么就使用mkdir (make directory)吧。
- 参数-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
1 | mkdir ./a/b/c -p # 在当前目录下创建一连串目录a/b/c |
history (查看历史命令,很有用!)
history命令用于显示用户以前执行过的历史命令,并且能对历史命令进行追加和删除等操作。
rm (移除文件或目录)
remove,谨慎使用删除命令。删除后找不回来,不走回收站!
选项与参数:
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
- -i :互动模式,在删除前会询问使用者是否动作,加上这个删除文件比较保险
- -r :递归删除啊!删除目录时需要加上!这是非常危险的选项!!!
1 | rm a.txt b.txt # 可以删除多个文件a和b |
touch (创建文件)
touch命令有两个功能:一是创建新的空文件,二是改变已有文件的时间戳属性。
mv (移动文件与目录,或修改名称)
move,剪切+粘贴,兼有重命名的功能。
和cp命令类似的格式。
1 | acs@83ea09fe037b:~$ mkdir a b |
cat
由第一行开始显示文件内容。用来查看文件内容。
1 | acs@83ea09fe037b:~$ touch test.txt |
3.4:Linux讲义
- 常用命令介绍
ctrl c: 取消命令,并且换行
ctrl u: 清空本行命令
tab键:可以补全命令和文件名,如果补全不了快速按两下tab键,可以显示备选选项
ls: 列出当前目录下所有文件,蓝色的是文件夹,白色的是普通文件,绿色的是可执行文件
pwd: 显示当前路径
cd XXX: 进入XXX目录下, cd .. 返回上层目录
cp XXX YYY: 将XXX文件复制成YYY,XXX和YYY可以是一个路径,比如../dir_c/a.txt,表示上层目录下的dir_c文件夹下的文件a.txt
mkdir XXX: 创建目录XXX
rm XXX: 删除普通文件; rm XXX -r: 删除文件夹
mv XXX YYY: 将XXX文件移动到YYY,和cp命令一样,XXX和YYY可以是一个路径;重命名也是用这个命令
touch XXX: 创建一个文件
cat XXX: 展示文件XXX中的内容 - 创建作业 & 测试作业的正确性
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的所有作业 - 作业
创建好作业后,先进入文件夹/home/acs/homework/lesson_1/,然后:
(0) 进入homework_0文件夹,分别创建文件夹dir_a, dir_b, dir_c
(1) 进入homework_1文件夹,将a.txt, b.txt, c.txt 分别复制成: a.txt.bak, b.txt.bak, c.txt.bak
(2) 进入homework_2文件夹,将a.txt, b.txt, c.txt 分别重命名为: a_new.txt, b_new.txt, c_new.txt
(3) 进入homework_3文件夹,将dir_a文件夹下的a.txt, b.txt, c.txt分别移动到文件夹dir_b下
(4) 进入homework_4文件夹,将普通文件a.txt, b.txt, c.txt删除
(5) 进入homework_5文件夹,将文件夹dir_a, dir_b, dir_c删除
(6) 进入homework_6文件夹,查看task.txt的内容,并按其指示进行操作
(7) 进入homework_7文件夹,创建文件夹dir_0, dir_1, dir_2,
(8) 进入homework_8文件夹,分别在dir_a, dir_b, dir_c文件夹下查看task.txt的内容,并分别按照指示进行操作将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;
(9) 进入homework_9文件夹,将其中所有txt类型的文件删除
1 | 作业答案 |
shell脚本统一处理:https://www.acwing.com/solution/content/63079/。