Linux基础-青训营
Linux与前端
前端部署环境是Linux
前端运维相关(Ngnix,Node.js)
操作系统相关基础
计算机硬件组成
冯诺依曼
操作系统
两大功能:
管理计算机资源:软件资源、硬件资源
提供用户接口:命令接口、图形接口、程序接口
操作系统启动流程:
固化在主板上的程序,启动时默认执行
BIOS,MBR分区
UEFI,GPT分区
重装系统
linux概述
内核+常用软件 = 发行版本
# 查看内核版本
uname -a
cat /proc/version
# 查看系统版本
cat /etc/os-release
linux系统结构
linux的基本组成
linux的体系结构
进程管理
进程是:
占有一定系统资源的正在执行的程序或命令
一个cpu核同时只能运行一个进程
PID PPID
# ps process status进程状态
# -ef 查找指定进程
# grep global regular expression
ps -ef|grep nginx
# top 实时显示 process 的动态
# -p 指定进程
top -p 12345
kill
进程调度
文件系统
一切皆文件
开发者仅需要一套API和工具即可调取Linux系统中的绝大部分资源
bin:binaries的缩写,命令
boot:启动Linux的核心文件
dev:设备
etc:系统管理配置文件和子目录
home:用户主目录,每个用户有自己的目录
lib:系统动态连接共享库,类似windows中的dll文件,几乎所有应用程序都需要用到这些共享库
mnt:临时挂载其他文件系统,比如光盘
opt:optional,额外软件目录
proc:processes,虚拟文件系统,内核运行状态的特殊文件,虚拟目录,系统内存的映射
root:管理员用户主目录
sbin:是 Superuser Binaries (超级用户的二进制文件) 的缩写,管理员系统管理程序
usr:unix shared resources(共享资源) 的缩写,存储用户应用程序和文件,类似windows的program files。下面的子目录还有/usr/bin,/usr/sbin等。
var:variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
重要的目录: /etc,/bin相关的,/var 注意不要误删除或随意修改
虚拟文件系统
VFS,为不同类型的文件提供统一接口
proc、sysfs等为不同的文件类型
文件读取流程
用户权限
linux软件包管理
底层:dpkg(Debian),rpm(Red hat)
上层:yum(CentOS),apt(Ubuntu),dnf
linux常用命令
文件系统
文件目录操作
# list files
ls
ls 目录名称
ls -a 全部文件(显示隐藏的)
ls -d 仅显示目录
ls -l 长数据串列出,包含文件属性和权限等
# change directory
cd
./ 下一级
.. 上一级
cd ~ 当前用户根目录
cd / 所有用户共享的根目录
# print work directory
pwd
pwd -P 显示确实路径,非link路径(文件链接到另一个地址的文件,类似Windows的快捷方式)
# make directory
mkdir
mkdir -m 配置文件权限
mkdir -p 将所需目录递归创建起来
[root@www tmp]# mkdir test1/test2/test3/test4
# mkdir: cannot create directory `test1/test2/test3/test4':
No such file or directory <== 没办法直接创建此目录啊!
[root@www tmp]# mkdir -p test1/test2/test3/test4
# remove directory 删除一个空目录
rmdir
-p 删除多级空目录
[root@www tmp]# rmdir -p test1/test2/test3/test4
[root@www tmp]# ls -l <==您看看,底下的输出中test与test1不见了!
drwx--x--x 2 root root 4096 Jul 18 12:54 test2
# copy file 复制文件or目录
cp [options] source dest
cp [options] source... dest
-a 相当于-pdr
-d 保留链接
-f 覆盖已存在目标文件
-i 覆盖之前询问
-p 复制修改时间和权限
-r 复制目录的子目录和文件
-l 不复制文件,只生成链接文件
# remove 删除文件or目录
rm [options] 文件or目录
-f 忽略不存在文件的警告
-i 删除前询问
ir 递归删除(删除目录)
# move file 移动文件or目录,修改文件or目录名称
mv [options] source dest
mv [options] source... dest
-f
-i
-u 目标文件存在时,只有source更新才升级(update)
# 修改文件or目录名称
mv 旧名称 新名称
文件目录查找
# find 指定目录下查找文件or目录
find [path] [expression]
path:可以是多个路径,默认为当前路径
expression:
-name pattern:支持通配符*和?
-type:f普通文件,d目录,l链接
-size:文件大小
以及各种时间参数...
详见:<https://www.runoob.com/linux/linux-comm-find.html>
文件内容查看
# cat concatenate 从第一行开始显示文件内容
cat
# tac 从最后一行
tac
# nl 显示行号得显示内容
nl
# more 一页一页显示
more 文件
space:下翻一页
enter:下翻一行
/字符:向下搜寻字符
f:显示出档名和当前显示的行数
q:离开
b:往回翻页(对管线无用)
# less
less
# head 显示前几行,默认10
head [-n number] 文件
# tail 显示后几行,默认10
tail [-n number] 文件
-f 持续侦测,ctrl+c结束
文件属性
# chgrp change group
# -R 递归
chgrp [-R] 属组名 文件名
# chgrp change owner
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
# chmod change mode
# rwx分别为4,2,1,权限数字为相加结果
# 数字更改权限
chmod [-R] xyz 文件或目录
# 符号更改权限
# 示例
chmod u=rwx,g=rx,o=r 文件名
# 查看文件属性和文件所属用户和组
ll
ls -l
ls -al
# touch 修改文件或者目录的时间属性,包括存取时间和更改时间
# 若文件不存在,系统会建立一个新的文件
touch newFileName
用户和用户组
参考:www.runoob.com/linux/linux…
# 查看当前登录用户信息
w
# 查看当前用户所属组
groups
#查看用户uid
id username
# 新增用户
sudo useradd
# 更改用户口令(密码)
sudo passwd
# 切换用户
su
磁盘管理
# disk free 文件占用磁盘量
df [-ahikHTm] [目录或文件名]
# disk used 磁盘空间使用量
# fdisk 磁盘分区
# make filesystem 磁盘格式化
mkfs
# file system check 磁盘检验
# 磁盘挂载和卸载 mount unmount
yum&apt
apt update
apt install
apt remove
apt search
apt list --installed