欢迎关注系列专栏: 《小团队web技术搭建》
《小团队web技术搭建》(一)环境和工具的准备-第一部分
《小团队web技术搭建》(二)环境和工具的准备-第二部分
《小团队web技术搭建》(三)环境和工具的准备-第三部分
《小团队web技术搭建》(四)虚拟机的安装使用
《小团队web技术搭建》(五)项目的简单部署方式
《小团队web技术搭建》(六)自动化部署方式(CI/CD)(一)
《小团队web技术搭建》(七)自动化部署方式(CI/CD)(二)
《小团队web技术搭建》(八)Docker+持续部署
《小团队web技术搭建》(九)Linux初阶入门(一)
持续更新中...
在实际生产工作中,我们一般以Linux系统作为服务器操作系统,至于为何不用其它系统,这里我们不做讨论。本篇在于对小团队leader所需掌握的一些Linux知识介绍。
之前的文章中我们有部分操作已经是在Linux上完成,现在我们对Linux的使用做一个入门级别的介绍。
Linux的版本
刚接触Linux的同学会对linux比较懵逼,这么多版本该如何选择和有什么区别。
我们需要注意的是Linux作者李纳斯开源的Linux是一个操作系统内核,即只提供了一些基础功能的系统软件。
为了提升它的易用性和扩展功能,各大开发者和企业对其进行二次开发并进行迭代维护,于是就出现了各种版本,但在大多数版本对比功能和性能上,它们的差别不会太大。我们介绍下最常见的几个版本。
- Red Hat 俗称
红帽
,最常见也是比较成熟的linux版本,由同名公司Red Hat开发。对硬件兼容性不错。 - Debian 社区维护版本的典型代表,文档齐全,比较自由。
- Ubuntu 基于Debian发展而来,其桌面版界面很简洁优雅,比较友好。
- Centos 红帽企业版RHEL(Red Hat Enterprise Linux)源代码再编译的产物,所以也比较可靠。
在选择上,不必过于纠结,当你决定使用免费的Linux系统时,选择主流的稳定版本不会错,并且最好是你喜欢和熟悉的。比较推荐Centos和Debian。
你可以通过以下命令查看当前系统内核和发行版:
uname -a
Linux iZbp106v9cy80x0lhprg0rZ 4.18.0-305.3.1.el8.x86_64 #1 SMP Tue Jun 1 16:14:33 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 8.4.2105
Release: 8.4.2105
Codename: n/a
远程连接
我们通常通过ssh协议连接linux服务器(ssh默认端口是22,所以要确保22端口是可用和开放的)你可以通过Putty、SecureCRT、MobaXterm等工具方便地进行服务连接配置和管理。当然ssh并不是连接linux的唯一的方式。
也可以在某个支持ssh的终端使用命令连接:
ssh user@ip
按回车输入密码,再次回车即可。
其中,user是用户名,ip是远程服务器ip(实际使用中通常是公网ip)。
用户权限管理
在linux中,有用户和用户组概念,他们可以是多对多的关系。
新建用户组
groupadd 选项 用户组
选项有:
- -g GID 指定新用户组的组标识号(GID)。
- -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
示例:
# 新建了一个叫做test的用户组
groupadd test
修改用户组
groupmod 选项 用户组
常用的选项有:
- -g GID 为用户组指定新的组标识号。
- -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
- -n 新用户组 将用户组的名字改为新名字
示例:
# 将test用户组重命名为test2
groupmod -n test2 test
删除用户组
groupdel 用户组
新增用户
useradd 选项 用户名
- -c comment 指定一段注释性描述。
- -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
- -g 用户组 指定用户所属的用户组。
- -G 用户组,用户组 指定用户所属的附加组。
- -s Shell文件 指定用户的登录Shell。
- -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
示例:
useradd -g test –d /home/lin -m lin
此命令创建了一个用户lin,其中-d和-m选项用来为登录名lin产生一个主目录 /home/lin。
修改账号
usermod 选项 用户名
选项基本与useradd
一致。
示例:
usermod -d /home/test lin
修改用户lin的主目录为/home/test。
删除账号
userdel 选项 用户名
常用的选项是 -r,它的作用是把用户的主目录一起删除。
示例:
userdel -r lin
用户口令管理
刚创建的用户必须在设置口令后才可以使用,用户账号可使用后也可以自己修改口令:
passwd 选项 用户名
选项:
- -l 锁定口令,即禁用账号。
- -u 口令解锁。
- -d 使账号无口令。
- -f 强迫用户下次登录时修改口令。
示例:
# 用户自行修改口令
passwd
# 超级用户修改口令需指定用户
passwd lin
文件操作
大致介绍命令:
- ls(英文全拼:list files): 列出目录及文件名
- cd(英文全拼:change directory):切换目录
- pwd(英文全拼:print work directory):显示目前的目录
- mkdir(英文全拼:make directory):创建一个新的目录
- rmdir(英文全拼:remove directory):删除一个空的目录
- cp(英文全拼:copy file): 复制文件或目录
- rm(英文全拼:remove): 删除文件或目录
- mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
ls:列出目录及文件
ls 选项 目录名称
选项与参数:
- -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)
- -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
- -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
示例:
#将目录下的所有文件列出来(含属性与隐藏档),不写目录则是当前目录
ls -al
#此时等同于命令ll(若有)
ls -l
ll
cd:切换到某个目录
需要注意的是,linux有文件、目录名称补全功能,在输入命令时按下
Tab
键即可。
示例:
#相对路径
cd www
#绝对路径
cd /root/
pwd:显示当前所在目录
选项与参数:
- -P :显示出确实的路径,而非使用链接 (link) 路径。
示例:
pwd
mkdir:创建目录
mkdir [-mp] 目录名称
选项与参数:
- -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
- -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
示例:
#在当前目录创建test目录
mkdir test
#在当前目录创建test、test2、test3,且他们是父子关系
mkdir -p test/test2/test3
rmdir:删除空目录
rmdir [-p] 目录名称
选项与参数:
- -p 从该目录起,一次删除多级空目录
删除test目录
rmdir test/
cp:复制文件或目录
cp 选项 来源档(source) 目标档(destination)
选项与参数:
- -a: 相当于 -pdr 的意思,-pdr 请参考下列说明;(常用)
- -d: 若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;
- -f: 为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
- -i: 若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
- -l: 进行硬式链接(hard link)的链接档创建,而非复制文件本身;
- -p: 连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- -r: 递归持续复制,用於目录的复制行为;(常用)
- -s: 复制成为符号链接档 (symbolic link),亦即『捷径』文件;
- -u: 若 destination 比 source 旧才升级 destination !
示例:
#复制~/.bashrc到/tmp/bashrc目录下
cp ~/.bashrc /tmp/bashrc
rm:删除文件或目录
这就是删库跑路梗里面经常用到的命令。
在使用这个命令时一定要三思而后行!这造成很多血泪史。删除文件后是不可逆的。特别是带着-r或-f参数!
rm [-fir] 文件或目录
选项与参数:
- -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
- -i :互动模式,在删除前会询问使用者是否确认
- -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!
# 删除test.txt文件
rm test.txt
# 删除目录时,需带上-r
rm -r test
mv:移动文件与目录,或修改名称
mv [-fiu] source destination
# 操作多个文件
mv [options] source1 source2 source3 .... directory
选项与参数:
- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
复制一文件,创建一目录,将文件移动到目录中
[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest
将刚刚的目录名称更名为 mvtest2
[root@www tmp]# mv mvtest mvtest2
篇幅不宜过长,本篇先暂时介绍到这,下一篇我们继续介绍。
感谢阅读!欢迎关注系列专栏: 《小团队web技术搭建》