2020-11-05

linux

Linux 是一个多用户多任务的操作系统,也是一款自由软件,拥有良好的用户界面,
支持多种处理器架构,移植方便。
严格的来讲,Linux 并不算是一个操作系统,只是一个 Linux 系统中的内核,即计算
机软件与硬件通讯之间的平台;
大量的服务器部署在linux上。
免费,开源,稳定,安全,方便,免移植,可定制,直观的操作。新老皆宜,大小通吃。
设计原则:1)所有的东西都是文件,所以管理简单
2)所有操作系统配置数据都存储在正文文件中
3)每个操作系统命令或应用程序很小,只完成单一功能
4)避免使用俘获用户的接口,很少交互命令,应用程序由vi编辑器等完成交互
5)多个程序串接在一起完成复杂任务

linux系统目录结构

/bin:bin是Binary的缩写,此目录中存放着经常使用的命令
/boot:存放启动Linux时使用的一些核心文件。包括连接文件以及镜像文件
/dev:dev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
/etc:存放所有的系统管理所需要的配置文件和子目录
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
/lib:存放着系统最基本的动态连接共享库,几乎所有的应用程序都需要用到这些共享库 /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
/mnt:让用户临时挂载别的文件系统,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了
/opt:给主机额外安装软件所摆放的目录,比如安装Oracle数据库在此目录下,默认是空的
/proc:是一个虚拟的目录,它是系统内存的映射,可以通过直接访问这个目录来获取系统信息,这个目录的内容不在硬盘上而是在内存里
/root:该目录为系统管理员,也称作超级权限者的用户主目录
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序
/selinux:这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的
/srv:存放一些服务启动之后需要提取的数据
/sys:该目录下安装了2.6内核中新出现的一个文件系统sysfs,sysfs文件系统集成了:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统
/tmp:存放一些临时文件
/usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录 /usr/bin:系统用户使用的应用程序
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序
/usr/src:内核源代码默认的放置目录
/var:存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。主要存放各种日志文件
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除,如果你的系统上有 /var/run 目录,应该让它指向 run

Linux文件属性

通过命令 ll或 ls-l可以查看某个目录下所有的文件以及文件类型、权限、属组等
[[email protected] /]# ll
total 64
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin
dr-xr-xr-x 4 root root 4096 Apr 19 2012 boot
……
每个文件的属性从左到右由10个字符确定
第0位确定文件类型,其字符意义如下:
d:目录 -:文件
l:链接文档(link file)
b:装置文件里面的可供储存的接口设备
c:装置文件里面的串行端口设备,例如键盘、鼠标
第1-3位确定属主(该文件的所有者)拥有该文件的权限
第4-6位确定属组(所有者的同组用户)拥有该文件的权限,
第7-9位确定其他用户拥有该文件的权限。
第1、4、7表示读权限:如果用"r"字符表示,则有读权限,如果用"-“字符表示,则没有读权限
第2、5、8表示写权限:如果用"w"字符表示,则有写权限,如果用”-“字符表示没有写权限
第3、6、9表示执行权限:如果用"x"字符表示,则有执行权限,如果用”-"字符表示,则没有执行权限
dr-xr-xr-x 2 root root 4096 Dec 14 2012 bin:表示bin是一个目录,属主、属组以及其他用户具有读权限,没有写权限,具有执行权限;dr-xr-xr-x表示文件属性,第一个root表示属主(该文件的所有者),第二个root表示属组(所有者用户所在的组)

Linux常用命令

ls: 列出目录
cd:切换目录
pwd:Print Working Directory,显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录
cp: 复制文件或目录,命令 cp/usr/text.txt/tmp/text1.txt将usr目录下的text.txt复制到tmp目录下,并重命名为text1.txt
rm: 移除文件或目录,命令 rm-f text.txt强制删除文件
mv:移动文件与目录,或修改名称,命令 mv/tmp/test.txt/usr将tmp目录下的test.txt文件移动到/usr目录下
cat:由第一行开始显示文件内容
tac:从最后一行开始显示,可以看出 tac 是 cat 的倒着写
nl:显示的时候,顺道输出行号
more:一页一页的显示文件内容
less:与 more 类似,但是比 more 更好的是,他可以往前翻页
head:只看头几行
tail:只看尾巴几行
vim或vi:编辑文件

Linux用户管理

添加账号
命令: useradd[option]用户名:系统管理员添加账号,并未新账号分配用户号、用户组、主目录和登陆Shell等资源,刚添加的账号是被锁定的,无法使用
useradd[option]用户名:如 useradd-d/usr/jack-m jack表示创建一个用户jack,其中-d和-m选项用来为登录名jack产生一个主目录/usr/jack
option:
-c comment:指定一段注释性描述。
-d 目录:指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组:指定用户所属的用户组。
-G 用户组,用户组:指定用户所属的附加组。
-s Shell文件:指定用户的登录Shell。
-u 用户号:指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
useradd-s/bin/sh-ggroup–G adm,root gem:此命令新建了一个用户gem,该用户的登录Shell是 /bin/sh,它属于group用户组,同时又属于adm和root用户组,其中group用户组是其主组,adm、root是附加组
删除账号
命令: userdel选项用户名
userdel-r jack:删除用户jack,-r的作用是把用户jack的主目录一起删除
修改账号
命令: usermod选项用户名,可以修改用户的用户号、主目录、用户组、登录Shell

usermod-s/bin/ksh-d/home/z–g developer sam:此命令将用户sam的登录Shell修改为ksh,主目录改为/home/z,用户组改为developer
用户口令(密码)管理
命令: passwd选项用户名
选项: -l 锁定口令,即禁用账号 -u 口令解锁 -d 使账号无口令 -f 强迫用户下次登录时修改口令
当前登录账号修改口令
输入命令 passwd:需输入旧口令和新口令
Old password:xxxxxx
New password:xxxxxx
Re-enter new password:xxxxxx
超级管理员修改用户口令
命令 passwd jack:修改jack的口令,只需输入新口令即可
New password:xxxxxx
Re-enter new password:xxxxxx

每个用户都有一个或多个用户组,系统可以对一个用户组中的所有用户进行集中管理
添加用户组
命令 groupadd选项用户组
选项:
-g GID:指定新用户组的组标识号(GID)。
-o:一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
groupadd group1:向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1
groupadd-g101group2:向系统中增加了一个新组group2,同时指定新组的组标识号是101
删除用户组
命令 groupdel用户组
groupdel group1:从系统中删除用户组group1
修改用户组
命令 groupmod选项用户组
选项:
-g GID: 为用户组指定新的组标识号。
-o:与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
-n 新用户组 :将用户组的名字改为新名字
groupmod-g102group2:将组group2的组标识号修改为102
groupmod–g10000-n group3 group2:将组group2的标识号改为10000,组名修改为group3
/etc/passwd文件
Linux系统中每个用户都在/etc/passwd文件中有一个对应的记录行,用于记录此用户的一些基本属性;/etc/passwd文件所有账户都是可读的
执行命令:cat /etc/passwd
root❌0:0:Superuser:/:
daemon❌1:1:System daemons:/etc:
bin❌2:2:Owner of system commands:/bin:
sys❌3:3:Owner of system files:/usr/sys:
adm❌4:4:System accounting:/usr/adm:
uucp❌5:5:UUCP administrator:/usr/lib/uucp:
auth❌7:21:Authentication administrator:/tcb/files/auth:
cron❌9:16:Cron daemon:/usr/spool/cron:
listen❌37:4:Network daemon:/usr/net/nls:
lp❌71:18:Printer administrator:/usr/spool/lp:
jack❌200:50:jack san:/usr/jack:/bin/sh

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

口令:用户加密的口令是存放在/etc/shadow文件中,/etc/passwd文件中的口令之存放一个特殊字符“x”,
用户标识号:用户标识号和用户名是一一对应的,几个用户名对应一个用户标志号,表示是同一用户,但可以有不同的口令、不同的主目录以及不同的登录Shell
组标志号:对应着/etc/group文件中的一条记录
主目录:用户的起始工作目录,创建用户时可以指定用户的主目录
登录Shell:用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell
/etc/group文件
用户组的所有信息都存放在/etc/group文件中
输入命令 cat /etc/group
root❌0:
bin❌1:bin,daemon
daemon❌2:bin,daemon
sys❌3:bin
tty❌5:
disk❌6:
mem❌8:
组名:口令:组标识号:组内用户列表
组名:是用户组的名称,由字母或数字构成。与/etc/passwd中的登录名一样,组名不应重复。
口令:字段存放的是用户组加密后的口令字。一般Linux 系统的用户组都没有口令,即这个字段一般为空,或者是x。
组标识号:与用户标识号类似,也是一个整数,被系统内部用来标识组。
组内用户列表:是属于这个组的所有用户的列表,不同用户之间用逗号(,)分隔。这个用户组可能是用户的主组,也可能是附加组。

Linux磁盘管理

Linux磁盘管理好坏直接关系到整个系统的性能问题,磁盘管理常用命令:df、du、fdisk
df:列出文件系统的整体磁盘使用量
du:检查磁盘空间使用量
fdisk:用于磁盘分区
命令 df选项目录或文件名
选项:
-a:列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k:以 KBytes 的容量显示各文件系统;
-m:以 MBytes 的容量显示各文件系统;
-h:以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H:以 M=1000K 取代 M=1024K 的进位方式;
-T:显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i:不用硬盘容量,而以 inode 的数量来显示
输入命令: df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 26G 12G 14G 47% /
tmpfs 7.8G 0 7.8G 0% /dev/shm
/dev/sda1 477M 52M 400M 12% /boot
/dev/sdb1 99G 66G 28G 71% /data1

Linux yum 命令

yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令 语法: yum[options][command][package…]
options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为"yes"),-q(不显示安装的过程)等等
command:要进行的操作
package:操作的对象
yum常用命令 yum check-update:列出所有可更新的软件清单命令
yum update:更新所有软件
yum install<package_name>:安装指定的软件
yum update<package_name>:更新指定的软件
yum list:列出所有可安裝的软件清单
yum remove<package_name>:删除软件包
yum search:查找软件包
yum clean packages: 清除缓存目录下的软件包
yum clean headers: 清除缓存目录下的 headers
yum clean oldheaders: 清除缓存目录下旧的 headers
yum clean, yum clean all (= yum clean packages; yum clean oldheaders):清除缓存目录下的软件包及旧的headers

linux七个运行等级

0关机 3文本界面 5图形界面 6重新启动

在这里插入图片描述
chgrp user install //更改文件的组
chown user.group file //修改文件的群组和拥有着
chmod 777 file //修改文件权限
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • root不一定是拥有权限最高用户,uid为0的才是
  • 禁用一个账户就是在它的密码字段前加个 !(usermod -L test1)
  • 解锁 :去掉 !(usermod -U test1,tail -l /etc/shadow)