Linux基础知识
-
什么是Linux:
Linux是一套免费使用和自由传播的操作系统内核,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统内核。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统内核。-
特点:
开放性:特别是遵循开放系统互连(OSI)国际标准。
多用户:操作系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。
多任务:计算机同时执行多个程序,而同时各个程序的运行互相独立。
-
-
Unix和Linux和Ubuntu的关系:
Unix是内核,Linux是在Unix的基础上发展的操作系统,Ubuntu是Linux操作系统中的具体的某一个,相当于Windows 10和Windows操作系统的关系。Unix是爷爷,Linux是爸爸,Ubuntu是儿子。 -
操作系统的三大组成及各自作用:
- kernel:内核是操作系统的核心,具有很多基本的功能,如管理设备,内存,进程;控制系统程序/实用程序和系统硬件之间的功能;管理交换空间,守护进程,文件系统以及其他函数。
- shell:是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。
- fill system:文件系统是文件存放在磁盘等存储设备上的组织方法。
-
LINUX/Unix中相对路径与绝对路径的区别:
- 绝对路径:指定与根目录相关的目录或文件
- 相对路径:指定与当前工作目录相关的文件
-
swap space 、deamon的作用
- swap space(交换空间):是CPU与磁盘之间存在的一个虚拟内存,将平常较少用到或者有可能用到的进程放入交换空间中,可以节省调度进程的时间,若是cpu在磁盘中去调度进程,花费时间较多。
- deamon(精灵进程、后台进程):通常在系统后台运行,没有控制终端,不与前台交互,daemon程序一般作为系统服务使用,是长时间运行的进程,通常在系统启动后就运行,在系统关闭时才结束。
-
常见的shell:
- Bourn shell (sh)
- C shell (csh)
- Bourne-again shell (bash) 是sh的增强版,Linux默认的shell
-
/下的目录介绍
- bin 部分系统可执行文件目录
- usr unix system resources 操作系统的文件
/usr/local 相当于c:/program files - var
可变文件目录
用户信息
apache的www目录 - etc 配置文件目录
查看文件内容使用:cat 文件路径
查看文件内容使用:more 文件路径-
/etc/passwd 用户信息
这些用户中的绝大多数是系统或服务正常运行所必需的用户,我们把这种用户称为系统用户或伪用户。系统用户是不能登录系统的,但是这些用户同样也不能被删除,因为一旦删除,依赖这些用户运行的服务或程序就不能正常执行,会导致系统问题。
用":"作为分隔符,划分为 7 个字段
root: x :0:0:root:/root:/bin/bash
用户名称:密码标志:用户 ID(UID):用户的组 ID(GID):用户的简单说明:用户的家目录:登录之后的Shell系统是通过 UID 来识别不同的用户和分配用户权限的,0:超级用户 UID,1~499:系统用户(伪用户)UID。
-
/etc/shadow 密码信息
1970-01-01 00:00:00 是格林威治时间
时间戳 当前时间到格林威治时间的秒数划分为 9 个字段
root: 6 6 6KoTdD9KR$4Z7gieoQ9hU.8RlcuIqrWscLoB2q2JjqJRtY0H8dYYzgHpr.plqmYtEiKgwQQd2qIS9qyS1ZOLj2FTFqhsCYM/:18337:0:99999:7:::
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段使用date -d "1970-01-01 18337 days"命令可以查看最后一次修改时间
Mon Mar 16 00:00:00 CST 2020
密码有效期 99999,也就是 223 年,可认为是永久生效 -
/etc/group 组信息
分为 4 个字段
root : x : 0 :
组名:密码:GID:该用户组中的用户列表如果该用户组是这个用户的初始组,则该用户不会写入这个字段,第四个字段没有写入 root 用户,因为 root 组是 root 用户的初始组。
-
/etc/gshadow 组密码信息
root : * ::
组名:加密密码:组管理员:组附加用户列表 -
/etc/sudoers 写在sudoers文件内的用户可以临时使用sudo提升为管理员权限
root大老板 临时使用大老板的权利,得到大老板的承认。sudoers -
/etc/profile 核心配置
-
/etc/skel 创建了新用户之后,复制的家文件
-
- opt 安装软件目录 第三方安装包
解压即安装的软件 jdk - home 用户家目录 /home/ubuntu
- root 超级用户家目录
Linux命令
-
adduser 用户名
$ adduser bruip
- su 切换到超级管理员身份
- su 用户名 切换到用户
从root切换到其他用户不用输入密码
从其他用户切换到其他用户需要输入密码
whoami 当前用户 - su -
彻底切换,切换家目录,切换环境变量
直接切换到用户的家目录
每个用户都有一个家目录
有用户变量
-
pwd 查看当前所在路径
-
cd
- 空 ~
- 相对路径:cd不以/开始的
- 绝对路径:cd以/开始
-
ls 查看当前目录下的目录或者文件
- ls 路径:查看指定路径下的文件目录或者文件
- -a 查看所有文件和隐藏文件
- -A 查看所有文件和隐藏文件,除了.和…
- -l 长格式列出所有的文件和目录
-rw-r--r-- 1 root root 11321 Mar 16 14:20 index.html
- 第一个字段:文件属性字段
文件属性字段总共有10个字母组成;第一个字符代表文件的类型。
字母“-”表示该文件是一个普通文件
字母“d”表示该文件是一个目录,字母"d",是dirtectory(目录)的缩写
注意:目录或者是特殊文件,这个特殊文件存放其他文件或目录的相关信息
字母“l”表示该文件是一个链接文件。字母"l"是link(链接)的缩写,类似于windows下的快捷方式
字母“b”的表示块设备文件(block),一般置于/dev目录下,设备文件是普通文件和程序访问硬件设备的入口,是很特殊的文件。没有文件大小,只有一个主设备号和一个辅设备号。一次传输数据为一整块的被称为块设备,如硬盘、光盘等。最小数据传输单位为一个数据块(通常一个数据块的大小为512字节)
字母为“c”表示该文件是一个字符设备文件(character),一般置于/dev目录下,一次传输一个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最小单位为一个字节。
字母为“p”表示该文件为命令管道文件。与shell编程有关的文件。
字母“s”表示该文件为sock文件。与shell编程有关的文件。
第1字符的后面9个字母表示该文件或目录的权限位。
r表是读 (Read) 、w表示写 (Write) 、x表示执行 (eXecute)
其中前三个表示文件拥有者的权限,中间三个表示文件所属组拥有的权限,最后三个表示其他用户拥有的权限。 - 第二字段:链接占用的节点
- 第三字段:文件(目录)拥有者
- 第四字段:文件(目录)拥有者所在的组
- 第五字段:表示文件大小
- 第六字段:文件(目录)最近访问(修改)时间
- 第七字段:文件名
- 第一个字段:文件属性字段
-
cat 预览文件内容
-
more 预览文件内容:空格翻页,回车换行,q退出
-
touch 可以创建文件或者更改最近访问时间
如果文件不存在,创建文件,如果文件存在,修改最后一次访问时间 -
man 帮助手册 man ls
-
sudo 提升临时权限
如果没有使用sudo的权限,需要root用户操作/etc/sudoers 文件,添加用户
sudo !! 执行上次命令 -
文件权限
- 用户角色:
- user 文件拥有者 u
由于Linux是个多人多任务的系统,因此可能常常会有多人同时使用这部主机来进行工作的情况发生, 为了考虑每个人的隐私权以及每个人喜好的工作环境,因此,这个【文件拥有者】的角色就显的相当的重要了!可以为文件设定不同的权限,来限制其他人的访问。 - group 同组人 g
团队开发时,可以设置团队成员的访问权限 - other 其他人 o
其他访问者。
- user 文件拥有者 u
- 文件权限
read 读 r 4
write 写 w 2
execute 执行 x 1 - 修改用户权限
- chmod g+w index.html
为index.html添加同组人权限 - chmod 777 index.html
用8进制设定
rwx rwx rwx
111 111 111
7 7 7
- chmod g+w index.html
- 用户角色:
VIM编辑器
1.vim是vi的升级版,linux的主要文本编辑,类似于window的记事本,vim是可以安装插件的。
2. 三种模式:
输入模式:
输入模式进入命令模式,使用esc
输入模式进入底行模式,使用esc进入到命令模式之后,使用:进入底行模式
命令模式
命令:
yy 复制一行
3yy 复制3行
p 在光标所在位置的下一行粘贴
dd 删除光标所在行
5dd 删除5行
u 撤销
…
命令模式进入输入模式,使用i,a,o,I,A,O
i在光标前插入文本
I在光标所在行前插入
a在光标后插入文本
A在光标所在行末插入
o在光标所在行下插入新行
O在光标所在行上插入新行
命令模式进入底行模式,使用: / ?
底行模式
底行模式进入命令模式,使用两次esc
底行模式进入输入模式,先使用两次esc,进入命令模式,然后再使用i,a,o,I,A,O进入输入模式
:set nu 显示行号
:set nonu 不显示行号
:wq 保存并退出
:w 保存不退出
:q 不保存,直接退出
:q! 强制退出
- 配置当前用户vi永久显示行号和tab键的空格数
vi ~/.vimrc set nu set tabstop=2
文件操作命令
- 创建
- mkdir 目录名
在当前目录创建一个目录 - mkdir 目录名 目录名
在当前目录创建多个目录mkdir a b mkdir ~/a ~/b
- mkdir -p 目录名
需要时创建上层目录mkdir -p ~/b/c
- mkdir 目录名
2.移动
mv 要移动的目录 移动到的路径
将一个目录或文件移动到另一个地方
如果是移动到同一个目录,相当于重命名。
mv day04 day05
mv ~ /test/index.html /var/www/html/test/
-
复制/拷贝
- cp 要复制的目录 复制到的目录
- cp -R 要复制到的目录 复制到的目录
- -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
- -d:复制时保留链接。这里所 说的链接相当于Windows系统中的快捷方式。
- -f:覆盖已经存在的目标文件而不给出提示。
- -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
- -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
- -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
- -l:不复制文件,只是生成链接文件。
-
删除
- rmdir 目录
删除一个空目录 - rm 文件
删除文件 - rm -R 目录
递归删除非空目录中的文件
- rmdir 目录
-
查找
tfind / -name '*.txt'
在根目录下查找.txt文件
-
压缩文件
tar –zcvf xxx.tar.gz /home/briup/day02
将day02文件夹压缩到当前目录下,压缩包名称为xxx.tar.gz
-
解压缩
tar -zxvf xxx.tar.gz
-
sudo
使用root的身份来运行命令
并非所有人都能够运行sudo,而是仅有规范到/etc/sudoers 内的用户才能够运行 sudo 这个命令。其配置文件位于/etc/sudoers中。
在/etc/sudoers文件中,添加 ubuntu ALL=(ALL)ALL一行,其中ubuntu是用户名。 -
删除用户
userdel -r 用户名
-r删除所有的信息
删除用户的相关数据,而用户的数据有:
用户账号/口令相关参数:/etc/passwd, /etc/shadow
使用者群组相关参数:/etc/group, /etc/gshadow
用户个人文件数据: /home/username, /var/spool/mail/username. -
id
id 这个命令则可以查询某人或自己的相关 UID/GID 等等的信息 -
linux系统中,使用/来表示根目录
linux系统中,使用~来表示家目录
linux系统中,使用./来表示当前目录
linux系统中,使用…/来表示上级目录