`

初识Linux

阅读更多

原文请参考微信公众号(欢迎关注公众号:coding_song):https://mp.weixin.qq.com/s/uxC3m8t6TM6CgDkkahtEdQ  阅读格式比下文清晰

 

Linux启动过程

启动流程:操作系统->/boot -> init进程 -> 运行级别 -> /etc/rc.d->用户登录->login shell

内核的引导:首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动,操作系统接管硬件以后,首先读入 /boot 目录下的内核文件

运行init进程:init 进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动,init程序首先是需要读取配置文件 /etc/inittab,init进程的任务之一是运行开机启动的程序;许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做"守护进程"(daemon)

Linux开机时根据/etc/inittab中配置的运行级别,启动相应的程序:

运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

运行级别2:多用户状态(没有NFS)

运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

运行级别4:系统未使用,保留

运行级别5:X11控制台,登陆后进入图形GUI模式

运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

系统初始化:执行Shell脚本/etc/rc.d/rc.sysinit完成初始化工作,主要工作是激活交换分区,检查磁盘,加载硬件模块以及其他一些需要优先执行任务

建立终端:rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了;init接下来会打开6个终端,以便用户登录系统

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

从上面可以看出在2、3、4、5的运行级别中都将以respawn方式运行mingetty程序,mingetty程序能打开终端、设置模式。同时它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户名将作为参数传给login程序来验证用户的身份

用户登录系统:命令行登录、ssh登录、图形界面登录;

Linux 的账号验证程序是 login,login 会接收 mingetty 传来的用户名作为用户名参数;然后 login 会对用户名进行分析:如果用户名不是 root,且存在 /etc/nologin 文件,login 将输出 nologin 文件的内容,然后退出;只有/etc/securetty中登记了的终端才允许 root 用户登录,如果不存在这个文件,则 root 用户可以在任何终端上登录

Linux关机

正确的关机流程为:sync>shutdown>reboot>halt

sync:将数据有内存同步到硬盘中

shutdown:关机指令;

shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。

shutdown –h now:立马关机

shutdown –h 20:25:系统会在今天20:25关机

shutdown –h +10:10分钟后关机

shutdown –r now:系统立马重启

shutdown –r +10:系统10分钟后重启

reboot:就是重启,等同于 shutdown –r now

halt:关闭系统,等同于shutdown –h now 和 poweroff

init 0:关机

init 6:开机

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文件属性

通过命令 llls-l可以查看某个目录下所有的文件以及文件类型、权限、属组等

[root@www /]# 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-ggroupG 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/zg 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

Linux用户组管理

每个用户都有一个或多个用户组,系统可以对一个用户组中的所有用户进行集中管理

添加用户组

命令 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

groupmodg10000-n group3 group2:将组group2的标识号改为10000,组名修改为group3

/etc/passwd文件

Linux系统中每个用户都在/etc/passwd文件中有一个对应的记录行,用于记录此用户的一些基本属性;/etc/passwd文件所有账户都是可读的

执行命令:cat /etc/passwd

root:x:0:0:Superuser:/: 

daemon:x:1:1:System daemons:/etc:

bin:x:2:2:Owner of system commands:/bin:

sys:x:3:3:Owner of system files:/usr/sys:

adm:x:4:4:System accounting:/usr/adm:

uucp:x:5:5:UUCP administrator:/usr/lib/uucp:

auth:x:7:21:Authentication administrator:/tcb/files/auth:

cron:x:9:16:Cron daemon:/usr/spool/cron:

listen:x:37:4:Network daemon:/usr/net/nls:

lp:x:71:18:Printer administrator:/usr/spool/lp:

jack:x: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:x:0:

bin:x:1:bin,daemon

daemon:x:2:bin,daemon

sys:x:3:bin

tty:x:5:

disk:x:6:

mem:x: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 -

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

0
0
分享到:
评论

相关推荐

    Linux应用技术:初识Linux.pptx

    项目一 初识Linux 概况及安装;第一讲 主要内容;Linux如此了不起?谁创造了Linux?如何创造的? ;;;1991.9 Linux在互联网上发布了自己的成果并取名为Linux,意思是Linus的Minux操作系统。版本为0.0.1;1991年 ,大学时期...

    1. 初识Linux.rar

    初识Linux.rar”这个压缩包文件显然聚焦于引导读者入门Linux操作系统。Linux是一种自由和开放源代码的操作系统,基于Unix,它在全球范围内被广泛应用,包括服务器、超级计算机、嵌入式设备以及个人电脑。Linux的...

    高级软件人才培训专家-Hadoop课程资料-1-初识Linux

    ### 高级软件人才培训专家-Hadoop课程资料-1-初识Linux #### 知识点一:操作系统概述 - **定义与作用**:操作系统(Operating System, OS)是一种系统软件,它作为用户与计算机硬件之间的接口,负责管理和协调...

    Linux从入门到精通视频教程 初识Linux

    Linux从入门到精通视频教程,是初学Linux的好帮手。

    1.初识linux.pptx

    ### Linux系统概述 #### 1.1 Linux系统简介 Linux是一种免费且开源的类Unix操作系统,具有多用户、多任务、支持多线程和多CPU的特点。它支持32位和64位硬件,并且继承了Unix以网络为核心的设计理念,成为一种性能...

    初识Linux内核,进程通信能这么玩 (1).mp4

    内容包括:C/C++,Linux,Nginx,golang,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,ffmpeg,流媒体, 音视频,CDN,P2P,K8S,Docker,Golang,TCP/IP,协程,嵌入式,ARM,DPDK等等。。。

    Linux学习之CentOS(3)--初识linux的文件系统以及用户组等概念.docx

    【Linux 文件系统】 Linux 文件系统是操作系统的核心组成部分,它组织和管理着系统中的所有文件和目录。与Windows的分区方式不同,Linux采用单一的树状结构,所有文件都从根目录 `/` 开始,向下延伸。Linux 文件...

    初识linux之centos7安装流程(超详细!介绍vmware网络编辑器)

    视频详细介绍了从资源下载,安装,到配置的全部详细过程,简单易懂,上手极快,且介绍了一些常见的问题。

    Linux入门教程(精华基础版

    第一章 Linux 入门教程 Linux,在今天的广大电脑爱好者心中已经不再是那个遥不可及的新东西了,如果说几 年前的 Linux 是星星之火的话, 如今 Linux 不仅在服务器领域的应用取得较大进展, 而且在 ... 第一章初识 Linux

    马哥的linux学习笔记

    综上所述,《马哥的Linux学习笔记》是一份全面而实用的学习资料,无论你是初识Linux的新手,还是寻求提高的从业者,都能从中受益匪浅。通过深入学习和实践,你可以掌握Linux操作系统的核心技能,为自己的IT职业生涯...

    Beginning Linux Programming 4th

    《初识Linux编程》第四版是一本专门为想要深入理解Linux操作系统和编程的初学者准备的指南。这本书详尽地介绍了Linux编程的基础知识,涵盖了从基本的命令行操作到高级的系统调用和程序开发的各个方面。 在Linux的...

    Begining Linux Programing 4th

    《初识Linux编程》第四版是一本面向初学者的Linux编程指南,涵盖了C语言、Perl以及Shell脚本等核心技术。本书旨在帮助读者深入理解Linux操作系统环境下的编程实践,为后续的系统开发和软件工程奠定坚实基础。 在...

    C教程网Linux最佳入门

    教程名称: C 教程网Linux最佳入门【】01Linux最佳入门第1讲:初识Linux.flv42.7M【】02Linux最佳入门第2讲:Linux基本操作.flv139.6M【】03Linux最佳入门第3讲:Linux基本命令.flv114.1M【】04Linux最佳入门第4讲...

    Beginning+Linux+Programming++4th+Edition.rar

    《初识Linux编程》第四版是一本针对Linux系统下的C语言编程的经典教程,旨在帮助读者深入理解Linux环境下的程序设计。这本书涵盖了丰富的知识点,对于想要在Linux平台进行C语言编程的初学者来说,是一份不可多得的...

    Beginning.Linux.Programming,4th.Edition(pdf)

    《初识Linux编程》第四版是一本针对新手的详尽指南,旨在帮助读者从零开始学习Linux编程。这本书深入浅出地介绍了Linux操作系统的核心概念、命令行操作以及系统调用等编程基础知识。作为第四版,它包含了最新的技术...

    Linux 操作系统初识

    【Linux操作系统初识】 Linux操作系统是一种自由开源的操作系统,它基于Unix系统,由 Linus Torvalds 在1991年发起并开发。Linux 广泛应用于服务器、超级计算机、移动设备以及嵌入式系统等领域,其核心在于提供了一...

    Linux最佳入门-个人学习笔记-知识点总结.rar

    1.1 初识Linux.pdf 1.2 Linux 基本操作.pdf 1.3 Linux 基本命令.pdf 1.4 bash基础.pdf 1.5 文件系统 挂载U盘.pdf 1.6 Linux管理命令.pdf 1.7 权限管理.pdf 1.8 vi的使用.pdf 1.9 grep的使用.pdf 1.10 find命令.pdf

    Linux应用技术:Linux的安装.pptx

    第一讲 初识Linux --概况及安装;第一讲 主要内容;安装前的准备;添加虚拟机(演示);安装版本选择;安装途径选择;安装方式选择;安装演示;安装演示;Linux的分区格式;Linux如何表示硬盘和分区;Linux如何表示硬盘和分区;...

    Beginning Linux Programming 4th Wiley 2008 (英文pdf+源码)

    《初识Linux编程》第四版是由Neil Matthew和Richard Stones合著的一本权威指南,全书共816页,出版于2007年10月。这本书是为那些想要深入理解Linux操作系统并掌握Linux编程技术的读者量身打造的。在中文环境下,我们...

    Linux+Shell命令行及脚本编程实例详解-刘艳涛.mobi kindle版

    主要内容包括:Linux及Linux Shell简介、初识Linux Shell、常用Shell(Bash)命令、Shell命令进阶、Shell编程基础、Shell的条件执行、Bash循环、Shell函数、正则表达式、脚本输入处理、Shell重定向、管道和过滤器、...

Global site tag (gtag.js) - Google Analytics