Linux 学习笔记

shuyepl 2022-05-30 20:19:00
Categories: > Tags:

我最近在阿里云那里领取了一个免费试用的 ECS 服务器,之前知道一些基本的 Linux 命令,但就很基础 创建文件之类的 ,感觉要在那上面玩的话不是很够,所以就想着来学习一下 Linux 的知识,选择这个这个课程(课程链接见网页最下方的参考资料处)我也是纠结了很久的时间,在 b 站上面查了一下 Linux 的课程,有长有短,有 Ubantu 的,有 Centos 的,真的很纠结,现在,在经历一个下午的纠结之后,我决定了,先找个简单一点的课程入门先,这个课程的时间很短,只有七个多小时 老师讲课的声音很好听 ,我粗略的看了一下目录,和那些几十个小时的 Linux 课程在内容上好像没差多少 指基本操作方面 ,所以用它来作为一个基本的入门教学视频的话,应该是够的,而且,我目前想快速学好一点操作,快点去玩内个免费的服务器(只有一个月的使用时间),所以,不说了,开学!!! ^_^


前面几节课老师讲解了一下关于 Linux 系统、操作系统等的基础知识,算是了解性的一些知识,像是 Linux 系统主要用在 服务器端 ,Linux 系统较为 安全 等,这些在我下午纠结学习那个课程百度的时候就已经了解过了,也有一些知识是平时了解的,嗯~,就感觉这几节课程有点像是每本书前面的前言一样,了解一下就可以了,没什么好记录的。

在这期间,老师反复强调,要活用浏览器,因为指令是在是太多了,不可能全部都记住的,忘记了查一下就是了 O(∩_∩)O哈哈~

第六集,终于要开始安装 Linux 操作系统啦,老师这里使用的是虚拟机的方案 就是在电脑上安装一个虚拟机软件,然后虚拟机软件里面虚拟出一台计算机,我们在这台计算机里面安装一个 Linux 操作系统来供我们学习使用

安装

下载和安装 VMware 和 Linux

这个部分的话,我觉得可以在这里忽略一下先,这个文章还是以记录 Linux 系统的学习使用为主,至于其他的内容的话,百度或许会给出更好的答案(我是在网上找到一个安装 Linux 系统的东西,直接包含虚拟机,按着里面的教程来的话就能完成这一部分的内容了)

下面我这边在操作过程中使用的 VMware 版本是 15.5 ,Linux 版本是 ubuntu-18.04.1-desktop-amd64

关于为了调整窗口大小我要安装 VM Tools 这件事

安装完成之后刚想跟着老师的操作调整一下窗口的大小,可是发现无论怎么调整,都只能按照拉伸窗口,而无法像老师那样对自适应大小

001

上网查了一下,发现可能是没设置屏幕分辨率的原因,跟着教程走一遍,设置了分辨率,发现还是一个样子,没什么改变,然后,我在下面找到了另一篇文章,说可能是我没安装一个东西:VM Tools,所以现在尝试一下安装这个插件,看能不能解决问题(这篇文章在下方的参考资料中有,是第二个链接,他内个文章里面使用的 Linux 是英文版本的,而且版本和我这个不太一样,有一些按钮之类的东西都有了一点变动, 然后,我在内个教程的指导下,结合一些自己的想法,摸索出了一套自己的操作,所以我觉得还是记录一下比较好)

在打开虚拟机,运行 Linux 系统的情况下(重点 因为你可以试一下看不运行 Linux 执行下面的操作会有什么效果 ^_^)

在上方的菜单栏中选中 虚拟机 选项,在展开的菜单中选择 安装 VMware Tools(T)… 选项,

002

在弹出来的窗口中点击 确定选择

003

进行完上面的操作之后,在 Ubantu 系统的桌面上会出现一个 VMware Tools 的东西,双击它

004

进入这个文件的管理界面后,找到内个图标和别人不一样的文件(后缀为 .tar.gz 的),然后对它右键选择复制(或者直接 Ctrl + C 也可以,看个人喜好了)

005

然后找一个文件夹,将他复制过去,这里我选在在 文档 下创建一个 temp 临时文件,

006

创建完成之后双击进入文件夹,右键选择 粘贴 选项(或者直接 Ctrl + V ),将文件复制到当前目录下

007

再在当前文件夹的空白处右键选择 在终端打开

008

接下来的这一顿操作就是我现在不太能解释太多的了(因为涉及到一些命令了)

在出现的终端中输入以下的内容:tar zxf VMwareTools-10.3.10-13959562.tar.gz ,回车(这里注意一下 ,在 tar zxf 之后跟着的那个英文是你 刚刚复制的内个文件的名字 ,嗯,这里的话建议在刚才的终端中输入 ls 命令,查看内个文件的名字,然后将内个文件的名字选中,右键选择 复制 ,再在下面输入 tar zxf ,然后在后面粘贴文件的名字 ~~为什么要弄这么麻烦呀,嗯, 因为我写这个命令的时候名字写错了 (⊙o⊙)…~~)

上面那条命令的作用是将刚才的文件进行解压,等待解压完成之后输入 ls 命令,查看当前文件夹中的内容时可以看到,当前的文件夹中多出来了一个文件夹

009

接着,我们在命令行中输入以下的内容:sudo ./vmware-tools-distrib/vmware-install.pl 进行安装 如果我没猜错的话,这个命令的意思应该是以管理员身份运行刚刚的内个文件夹中的一个安装程序

然后,这里中文写得很清楚,输入用户的 密码 ,好吧,其实我这里遇到了一点小问题,输密码的时候没有反应,就是你在键盘上这么敲都好,屏幕就好像卡住了一样,但当你的鼠标移动到别的地方点击的时候,它又很正常,这个时候我直接将终端干掉重来,然后,在干掉两次之后,我在內篇博客里面看到 直接输入用户密码,输入过程中不会显示 ,(⊙o⊙)…

010

接下来的安装流程就比较简单了,我看了一下,基本都是在问你要把什么东西安装在内个文件夹中,以及一些基本的设置,这里我总结出了一个操作的方式

如果在要你输入的地方那里后面的 中括号内包含的是 yes 或者 no 这两个单词的 ,在后面输入 yes 然后回车

如果在 中括号内,包含着的是一个路径的,就是有一个 / ,但是没有 yes 或者 no 这两个单词的直接回车,这个直接回车的意思应该是按照默认的来进行配置,反正我这里看的也不是很懂,而且我目前对个人定制也没什么要求,就直接一路默认下来了,虚拟机嘛,能用就行 ,大不了坏了就直接干掉,从头来过再搞一个

011

好了,按照上面的操作来的话应该是能看到下面这个样子的,这样就表示安装成功了

012

接下来,在终端中输入 sudo reboot ,这里依旧很明显的中文,要求你 输入用户密码 (记得,它还是不会显示出来的,直接输入之后回车就好了),然后它会自动重启操作系统(指虚拟机里面的 Ubantu 操作系统)

重启之后,在你原来的电脑上创建一个文件夹用来跟虚拟机进行文件共享,像我的话是直接在 D 盘目录下创建了一个 share 文件夹,路径是 D:\shar ,大家可以根据自己的爱好进行设置,之后,我们回到虚拟机,在虚拟机上方的菜单栏中找到 虚拟机 选项,在下拉菜单中选择 设置

013

在出现的界面中依次按顺序点击: 选项 –> 共享文件夹 –> 总是启用 –> 添加

014

出现了一个向导界面,点击 下一步

015

在下一个界面中,点击 浏览(R)… ,选择你刚才创建的文件夹,再点击 下一步

016

点击 启用此共享 (我这边是默认选中的),下面的内个 只读 选项不要选中,然后点击 完成 ,over

017

在虚拟机中访问共享文件的方法,在 桌面中右键 –> 打开终端(E) ,在终端中输入:cd /mnt/ ,然后按两次 Tab 键,回车,就进去了

然后,现在来到了最激动人心的时候了,我终于可以让这个小窗口变大一点了 O(≧▽≦)O

调整窗口的大小

在虚拟机的左上角,找到 查看 菜单,点击,在下拉菜单中选择 立即适应客户机

018

然后 bomm ~ ,这个窗口就变得舒服多了 o(* ̄︶ ̄*)o

019

嗯,因为我是有一个副屏的,所以,我发现当我把虚拟机在另外一个屏幕上全屏之后,更爽了,这不就相当于两台电脑了吗 (⊙o⊙)…

如何连上网络

好吧,又有问题了,和老师安装的东西不一样,就会有很多的差别,我这个上不了网,Firefox 浏览器中输入网站连接后显示找不到网站,所以,现在,开动吧,搜索引擎

(⊙o⊙)…

网上搜索了一下,然后看见一个文章,开头就说了,无法解决主机的网络是 WIFI 连接的情况 ,然后,我这个就刚好是这种情况,于是,我打算胡乱尝试,在之前的文章中有看到 NAT 这个词,然后我好像在之前安装 Ubantu 的过程中有看到相关的选项,所以我打算看一下,然后没想到的是,我选择了一个 NAT 选项之后,网络连接就连接上了 (⊙o⊙)…

在虚拟机的上方菜单栏中点击 虚拟机 –> 可移动设备 –> 网络适配器 –> 设置

022

在弹出窗口的右边中,将 NAT 模式(N):用于共享主机的 IP 地址 选项给点选上,然后点击下方的 确定 就可以了(我之前在没更改时候点选的选项是 仅主机模式(H):与主机共享的专用网络

023

文件管理系统

Linux 中没有盘符的概念,只有一个根目录,在根目录下有 bin、etc、home、lib、usr 等目录,这些目录在存放数据的时候最好分门别类来存放,比较有规则,在查找的时候比较好查找,具体的存放东西类型我现在还不打算去了解得很清楚,等先把下面的内容学习了之后,有需要用到了,再去了解清楚

Linux 在往电脑中加额外的硬盘的时候,是通过 挂载 的方式加入到电脑系统中的,也就是在上面讲到的目录中创建一个文件夹,内个文件夹就对应着这一块新加入的硬盘

在关闭虚拟机的时候选择 挂起 的话,虚拟机会保存当前系统的运行状态,在下次重新启动虚拟机的时候,会恢复当前的状态

根目录下各文件夹存文件的规则

目录 存放的文件
/home 存放用户相关的文件,一般各个用户在这个文件夹下都有一个对应他的文件夹存放他的资料,如下载的东西等
/usr 用户 安装的应用程序(命令)
/bin 二进制文件,普通命令
/etc 放置配置文件

在打开终端的时候,一般会检测是哪一个用户登录的,然后打开的终端默认是在该用户的文件夹下操作的

Linux 基础命令

命令 作用
pwd 查询当前目录的绝对路径
ls 列出当前目录下的所有文件
cd 进入文件夹,后面要跟进入的 文件夹名称 ,或者 相对路径 ,如果没有跟其他的内容的话,回车会直接回到 home 目录
cd .. 返回上一级的路径
cd ~ 直接回到 home 目录
cd - 在近期操作过的目录之间切换
clear 清屏
touch 创建文件,后面跟上文件的名字和文件的后缀(也可以没有后缀,那样创建的文件就是没有后缀的文档)
mkdir 创建文件夹,后面跟文件夹的名字
rm 移除文件(如果要使用过这个指令移除文件夹的话,要在它的后面加上一个参数 -d 或者 -r
rmdir 移除文件夹
rm -rf 删库跑路
mv 移动文件,后面可以跟两个参数,第一个是要移动的文件或者文件夹,第二个是要移动到的地方的路径,在这个路径后面可以跟上这个文件的名字,相当于给这个文件改名
cp 拷贝文件,参数和 mv 一样,唯一的区别是,在拷贝文件夹的时候,要指定参数 -r
which 查看每个命令所对应的程序的存储位置
find 查找专用命令
locate 查找命令,比较快
cat 查看文档的内容,后面跟上文件名
more 查看文档的内容,后面跟上文件名,文档内容分页显示
grep 从文档中搜索某个内容
echo 回显,后面跟着的内容会原封不动的输出,默认输出到控制台上
| 管道,将管道符号前命令的输出作为管道符号后面内容的输入
ln 创建软链接或者硬链接

基础命令的具体用法和一些基础内容的解释

通配符

通配符搭配上字符和符号表示一种规则,符合这种规则的文件,或者其他的东西就能被这个通配符匹配到,在使用通配符的时候不能单纯只用通配符,这样识别不到的,必须结合其他字符一起使用

符号 代表的含义
* 任意多个字符
? 代表一个任意字符
[] 在中括号里面可以写上一些字符,表示这些字符中的任意一个,它只表示一个字符,如果在中扩号里面写上的都是数字的话还可以写成:[1-6] 的样式,表示从 1 到 6 这六个数字

例子:

查看帮助文档

命令 --help
或者
man 命令

用户管理相关命令

使用 id 指令可以查看用户的信息

id 用户名            # 如果没有跟用户名的话,查看的是当前用户的信息

普通用户下的操作,首先是 添加用户 ,使用命令

sudo useradd 用户名        # sudo 表示以管理员身份运行

注意:上面这种添加方式是不会常见用户的”家目录”的,如果要添加“家目录”的话,要在这条命令中加上 -m 选项(“家目录”的意思就是在 home 文件夹中的和用户名一模一样的文件夹)

sudo useradd -m 用户名

如果要将用户添加到指定的 中(该组必须存在),可以使用 -g 选项

sudo useradd -g 组名 用户名        # 如果在创建用户的时候没有指定分组的话,默认是分到一个和用户名一模一样的组中去的

查看添加用户是否成功,输入下面的命令,在显示的文本中最后一行的开头查看有没有显示你刚刚添加的用户名,有的话就表示添加成功了

cat /etc/passwd                # 查看所用的用户

设置用户的密码

sudo passwd 用户名        # passwd 指令如果没有指定用户名的话,默认是修改当前用户的密码

然后应该会弹出来一行字,让你输入密码,输入密码回车,接着重新再输入一遍密码验证一下,就行了(注意这里的这条指令有可能不是先让你输入要设置的密码,而是验证你用户的密码,然后在执行这里所说的设置密码的操作,之所以这里没有让我验证密码是因为,我刚刚验证密码不久)

启用 root 用户 ,现在的系统默认情况下是启用普通用户的,必须通过普通用户给超级管理员用户设置密码才能使用(超级管理员的用户名就是 root

sudo passwd root

然后按照提示操作,就可以了

切换用户su 指令

su root        # 这个命令是切换到超级管理员用户,把 root 改成其他用户名可以切换其他用户

如果切换成功的话,可以发现我们输入命令的地方,前面显示的东西,在 @ 符号的前面,由原来的用户名,变成了我们切换的用户的用户名了 ,而且,此时,在我们输入命令的地方,前面的 $ 也会变成 #

如果要退出切换的用户,使用快捷键 Ctrl + D 或者输入命令

exit

如果用户有“家目录”的话,可以在切换用户的命令中间,加上 - 直接切换到用户的“家目录”

注意 :在当前用户(操作系统在创建的时候创建的那一个用户)和 root 用户的提示符前面是有一些用户、系统和当前目录的消息,而普通用户是没有的

用户的删除 使用 userdel 指令

userdel 用户名        # 这个是不会删除用户的“家目录”的

如果想要在删除用户的时候顺便将用户的“家目录”给删除掉的话,要使用下面的命令

userdel -r 用户名

强制删除的命令如下(强制删除的意思是即使用户当前是登录状态,也会被删除)

userdel -f 用户名

影子文件 :/etc/shadow

查看当前用户

whoami

查看当前登录计算机的用户

who

修改用户的初始组

usermod -g 要修改成的用户组 要修改用户组的用户名

修改用户的附加组

usermod -G 要添加的用户组 用户的名字

这个可以一次性给一个用户添加多个分组,中间通过逗号隔开,而且每一次修改都会覆盖掉之前的修改,之前添加的组如果这次没有添加的话,会被覆盖掉,没有了

用户组管理

用户组的添加 ,使用 groupadd 命令

groupadd 组名

查看添加是否成功,使用下面的命令,具体的查看方式,和查看用户的方式一样

cat /etc/group

用户组的改名

groupmod -n 新名字 要改名字的组

影子文件 :/etc/shadow

Shell

作用是将我们的命令转化成机器语言

有三种: /bin/bash、/usr/sbin/nologin、/bin/sh

bach 的命令提示符是:用户名@系统:当前路径$

sh 的命令提示符是:$

查看所有的 Shell

cat /etc/shells

修改 Shell

chsh        # 输入这个命令,验证密码之后输入要修改的 Shell 就可以了
# 或者使用下面的这个命令
usermod -s 要修改成的shell 要修改shell的用户

命令分类

命令 分为内置命令和外置命令,内置命令比较常用,一般直接在系统启动的时候就加载在内存中了,要使用它的时候就直接使用就行了,外置命令在系统开始启动的时候没有加载到内存中,得等到使用它的时候再加载到内存中使用

使用 which 查找命令的位置之后没有显示的就说明该命令是内置的命令,反之,有显示的就是外置的命令

权限管理

在使用 ll 命令查看文件的时候,在文件的前面可以看到一串字符 ,内一串字符就便是操作权限

第一个字符如果是 d 的话,就表示这个是一个文件夹,如果是一个 - 的话,就表示这是一个二进制文件

后面的字符就是三个一组的组合了,字符分别可以出现 rwx ,代表了三种不同的权限

对于 文件 而言:r 是读(查看文件内容)的权限,w 是写(修改文件内容)的权限,x 是执行(如果文件可以执行的话)的权限

对于 文件夹 而言:r 是读(读取文件夹目录中的内容)的权限,w 是写(创建,删除文件及修改文件名字)的权限,x 是可以进入目录(但不能查看文件目录)的权限

第一组代表了文件的所有者对它的操作权限

第二组代表了文件的所属组对它的操作权限

第三组代表了其他用户对它的操作权限

权限修改

只要超管和文件所有者可以对文件权限进行修改

格式 1 :

chmod [ugoa][+-=][rwx] 这里填上要修改权限的文件名

对上面这个命令的解释:这上面的 [] 是通配符来的,u 表示所有人,g 表示组, o 表示对其他用户,a 表示对以上三种情况应用同一种修改

+ 表示添加权限, - 表示减少权限, = 表示权限等于后面的值所对应的权限

多个权限(比如用户的权限和组的权限)一起修改的时候可以通过逗号的方式连接

chmod u-rw,g-r 文件名

格式 2 :

使用数字表示权限,r = 4, w = 2, x = 1,如果要多个权限,就将对应权限的值加起来,即 rw = 6,rwx = 7,wx = 3

chmod 444 文件名         # 这个表示文件所有人,组用户,其他人都给了 r 的权限
# 等价于
chmod u=r,g=r,o=r 文件名

修改所有文件包括所有文件夹里的子文件夹的权限

chmod -R 对应权限的数字 指定的文件

另外两个命令 chownchgrp 分别是用来修改文件所属者和文件所属组的权限

chown 要修改成的所属者 文件名
chgrp 要修改成的所属组 文件名

如果修改失败的话就是权限不够,在命令前面加上 sudo 就可以了

这两个文件也是可以加上 -R 选项的

防火墙设置


参考资料: