少女祈祷中...

一、Linux简介

Linux最初由Linus Torvalds出于兴趣编写。
Linux具有稳定、安全、多任务多用户、资源消耗少等特点。


二、体系结构

1、一切皆文件:配置文件保存为纯文本

2、一般有5个主要部分:

  1. 内核(kernel):系统核心功能,内核接口的使用为系统调用
  2. shell:接收用户命令,然后调用相应的应用程序
  3. 公共库函数:构建在系统调用接口之上
  4. 文件系统
  5. 应用程序

IMG_20240929_211043

3、内核、shell和文件系统一起形成了基本的操作系统结构,使用户可以运行程序、管理文件并使用系统。


三、Shell 教程

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

几个常用命令:

  • ls(英文全拼:list files): 列出目录及文件名

  • cd(英文全拼:change directory):切换目录

  • pwd(英文全拼:print work directory):显示目前的目录

  • mkdir(英文全拼:make directory):创建一个新的目录

  • cp(英文全拼:copy file): 复制文件或目录

  • rm(英文全拼:remove): 删除文件或目录

  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

  • clear:清屏

  • shutdown:关机

  • df:查看磁盘空间大小和剩余空间大小

    1
    2
    3
    4
    sed 's/旧内容/新内容/[g全局替换 i忽略大小写 数字替换第n个]' 文件名
    sed '行号或模式' 文件名 #删除
    sed '2i\内容' 文件名 #在第二行前插入
    sed '2i/a\内容' 文件名 #追加

四、Linux vi/vim

所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
但是目前我们使用比较多的是 vim 编辑器。

基本上 vi/vim 共分为三种模式,命令模式(Command Mode)、输入模式(Insert Mode)和命令行模式(Command-Line Mode)
命令模式供用户执行命令,以对文档进行管理。不管用户当前处于何种模式,按ESC键则进入命令模式。
输入模式可输入内容。
命令行模式供用户搜索字符、保存文件或结束编辑等。

用户启动vi/vim时,自动进入命令模式,需要按i进入输入模式,才能输入文本。

在命令模式下按:进入命令行模式,此时输入

  • :w 保存文件
  • :q 退出
  • :wq 保存并退出
  • :q! 强制退出

五、文件内容

111 2223333444455555
/bin 存放Linux的常用命令,包含系统必需可执行二进制文件
/sbin 和/bin类似,用来系统管理,只有root能用
/dev 包含所有设备文件
/home 存放一般用户的个人目录
/lib 存放系统的库文件
/usr 用户程序所在目录
/boot 系统启动时的所需文件
/etc 存放系统管理时用的各种文件配置和子目录
/mnt 临时文件,提供安装点
/tmp 存放程序执行时产生的临时文件
/var 系统日志
/root 超级用户的个人目录

文件目录权限:读写r,写入w,执行x

rwx 二进制表示 权限的八进制 含义
000 0
–x 001 1 可执行
-w- 010 2 可写
r– 011 3 可写可执行
r-w 100 4 可读
r-x 101 5 可读可执行
rw- 110 6 可读可写
rwx 111 7 可读可写可执行

修改文件目录权限

  1. chmod [八进制数字] [文件] #第一个数为拥有者权限,第二个是组用户权限,第三个是其他用户权限
  2. chmod {[ugoa] [+-=] [rwx]} [文件]

u–拥有者 g–组用户 o–其他用户 a–所有人
+–增加某项权限 -–去掉某项权限 =–赋予某项权限
权限符–rwx


aaa

用户组命令

1
2
3
4
5
6
7
8
9
useradd [用户名]                             #添加新用户
passwd [用户名] #设密码
usermod [-l改名 -L锁定 -U解锁 -g改组] [用户名]
userdel [用户名] #删除用户
su [用户名] #切换用户
groudadd [用户组名] #创建用户组
gpasswd [-a加入组 -d删除用户 -M添加多个用户 -A指派管理员] [用户] [组]
groupmod [-g指定标识号 -n改名] [要改的] [组]
groupdel [组] #删除组

文件命令

1
2
3
4
chgrp [组] [文件]                           #修改所属的组
rm -rf [文件] #删除文件
tar -xvzf [文件] -C [路径] #解压到指定路径
tar -czvf [文件1] [文件2] #压缩文件1为文件2

环境

1
2
3
4
5
set                                        #显示当前shell中定义的所有变量
env #专门用于显示当前用户的环境变量
export #设置环境变量,对当前shell和它的子进程生效
declare #声明和显示已存在的shell变量
unset #在shell中删除已定义的变量或函数

脚本运行

正确返回0,错误返回非0值
使用’$?‘返回执行状态

测试数据的值

  • -eq:判断是否相等(=)
  • -ne:判断是否不相等(!=)
  • -gt:判断大于(>)
  • -ge:大于等于(>=)
  • -lt:小于(<)
  • -le:小于等于(<=)

测试文件状态格式[ 表达式 ]
参数

  • -e 文件名:文件存在返回真
  • -r 文件名:文件存在且可读返回真
  • -w 文件名:文件存在且可写返回真
  • -x 文件名:文件存在且可执行返回真
  • -s 文件名:文件存在且至少有1个字符返回真
  • -d 文件名:是目录返回真
  • -f 文件名:是普通文件返回真
  • -c 文件名:字符型特殊文件返回真