Linux(一)

介绍

常见的操作系统(windows、IOS、Android、MacOS, Linux, Unix);

Linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可;【免费只是说linux的内核免费】

目前很多企业级的项目(c/c++/php/python/java/go)都会部署到 Linux/unix 系统上。


吉祥物    

xLinux 之父:    Linus Torvalds ; Git 创作者 ; 世界著名黑客。

主要发行版:    Ubuntu(乌班图)、RedHat(红帽)、CentOS、Debain[蝶变]、Fedora、SuSE、OpenSUSE、TurboLinux、BluePoint、RedFlag、Xterm、SlackWare等。【发行版说简单点就是将Linux内核与应用软件做一个打包】

与Unix的关系


应用领域

个人桌面领域

  •     传统 linux 应用薄弱的环节
  •     随着 ubuntu、fedora [fɪˈdɔ:rə] 等优秀桌面环境的兴起,比重在增加

服务器领域

  •     应用是最强,linux 免费、稳定、高效等特点在这里得到了很好的体现;
  •     尤其在一些高端领域尤为广泛(c/c++/php/java/python/go);
  •     通常服务器使用LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx+ MySQL + PHP)组合。

嵌入式领域

  •     主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、智能家居、智能硬件等都是其应用领域;
  •     以后在物联网中应用会更加广泛;
  •     linux 运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件裁剪,内核最小可以达到几百 KB 等特点,使其近些年来在嵌入式领域的应用得到非常大的提高

目录结构

介绍

【在 Linux 世界里,一切皆文件】

linux 的文件系统是采用级层式的树状目录结构;

  • linux 的目录中有且只要一个根目录 /,所有的东西都是从这里开始;

  • linux 的各个目录存放的内容是规划好,不用乱放文件。【Linux 系统采用了文件系统层次标准,也称为 FHS 标准,它规定了根目录下各个目录应该存在哪些类型的文件(或子目录)】

  • linux 是以文件的形式管理我们的设备,因此 linux 系统,一切皆为文件。

  • 每个驱动器都有自己的根目录结构,这样就形成了多个树并列的情形;

Linux 系统中,文件 和 目录的命名规则如下:

  •  除了字符“/”之外,所有的字符都可以使用。但是要注意,在目录名或文件名中,不建议使用某些特殊字符。例如,在命名时应避免使用 <、>、?、* 和非打印字符等。如果一个文件名中包含了特殊字符,例如空格,那么在访问这个文件时就需要使用引号将文件名括起来。
  • 与 Windows 操作系统不同,文件的扩展名对 Linux 操作系统没有特殊的含义,换句话说,Linux 系统并不以文件的扩展名开分区文件类型。例如,dog.exe 只是一个文件,其扩展名 .exe 并不代表此文件就一定是可执行文件。
  • 标准Linux文件系统(如:ext4),目录名或文件名是区分大小写的。如 DOG、dog、Dog 和 DOg ,是互不相同的目录名或文件名,但不建议使用字符大小写来区分不同的文件或目录。
  • 以 . 开头的文件为隐藏文件。【即以默认方式査找时,不显示该目录或文件。】
  • 路径分隔的 /
  • 目录名或文件名的长度不能超过 255 个字符。
  • 包括路径在内文件名称最长4095个字节
  • 蓝色–>目录;绿色–>可执行文件;红色–>压缩文件 ;浅蓝色–>链接文件;灰色–>其他文件
  • 每个文件都有两类相关数据:元数据:metadata,即属性, 数据:data,即文件内容 


详细的目录结构说明 

序号名称介绍备注
1/:根目录一般根目录下只存放目录;
当在终端里输入 /home,其实是在告诉电脑,先从 /(根目录)开始,再进入到 home 目录
 
2

/bin [常用]:

(/usr/bin 、 /usr/local/bin)

是 Binary 的缩写, 这个目录存放着最经常使用的命令
可执行二进制文件的目录,如常用的命令 ls、 tar、 mv、 cat 等
 
3

/sbin :

/usr/sbin 、 /usr/local/sbin

s 就是 Super User 的意思,这里存放的是系统管理员使用的系统管理程序 
4/home [常用]

存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名;
系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下;
~ 表示当前用户的家目录;
~edu 表示用户 edu 的家目录;

超级用户的家目录:/root。

普通用户的家目录:/home/用户名。

 
5/root [常用]该目录为系统管理员,也称作超级权限者的用户主目录;
系统管理员root的家目录
 
6/lib系统开机所需要最基本的动态连接共享库
其作用类似于 Windows 里的 DLL 文件,几乎所有的应用程序都需要用到这些共享库
 
7/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件 
8/etc [常用]

所有的系统管理所需要的配置文件和子目录
不建议在此目录下存放可执行文件;;

 
9/boot [常用]

存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件;
例如: linux 的内核文件: /boot/vmlinuz;

系统引导管理器: /boot/grub

 
10/proc [不能动]

proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件;

这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
 
11/srv [不能动] service 缩写该目录服务启动之后需要访问的数据目录
如 www 服务需要访问的网页数据存放在 /srv/www 内
 
12/sys [不能动]

这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

该文件系统是内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

 
13/tmp一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下  
14/dev类似于 windows 的设备管理器,把所有的硬件用文件的形式存储;
存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount/dev/cdrom /mnt
 
15/media [常用]linux 系统会自动识别一些设备;
例如 U 盘、光驱等等,当识别后, linux 会把识别的设备挂载到这个目录下
 
16/mnt [常用]系统提供该目录是为了让用户临时挂载别的文件系统的;
我们可以将外部的存储挂载在/mnt/上,然后进入该目录,就可以查看里的内容 d:/myshare
 
17/opt这是给主机额外安装软件所存放的目录 默认为空;
如安装 ORACLE 数据库就可放到该目录下
 
18/var [常用]这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下包括各种日志文件
例如:
/var/log:随时更改的日志文件
/var/spool/mail:邮件存放的目录
/var/run:程序或服务启动后,其 PID 存放在该目录下
 
19

/selinux

[security-enhanced linux]

SELinux 是一种安全子系统,它能控制程序只能访问特定文件, 有三种工作模式,可以自行设置. 
20/usr [常用]这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与 windows 下的 program files 目录 

下载安装

虚拟机:用软件(如:vmware,virtualbox等)模拟硬件,方便实验的灵活配置;

虚拟化软件,建议使用 Vmware Workstation;


centos下载

以网易镜像站来做演示:

1、首先我们输入网址 欢迎访问网易开源镜像站 进到网易开源镜像站。

这里给我们提供了很多资源,大家可根据自己的需求去 search!

2、我们点击进入 CentOS 这一选项,可以看到有很多版本供大家选择,这里我们选 7.8 版本。

3、点击版本后进入这一目录,我们点击进入这一选项。

4、选择“X86”就好。

5、在这里我们可以看到有不同版本的镜像,可以根据自己的需求进行下载。


安装CentOS7.6--VM虚拟机

检查 BIOS 虚拟化支持

说明:在很多家用台式机和笔记本电脑上,虚拟化功能默认是关闭的,再要打开后才能使用Vmware等虚拟化软件,否则会报错;

新建虚拟机

 

配置虚拟机的内存

配置处理器, 分配的处理器内核多,虚拟机速度快

配置网络

 

正式安装 Centos 系统

 说明: 选择第一个,不需要 Test this media ,否则检测时间很长

 

选择安装软件,默认是最小化安装.

软件选择(套餐):需要什么,安装好后也可以再安装。

也可以根据需要勾选附加项, 比如这里我勾选了兼容库和基本开发工具(jdk,gcc), 安装好后,也可以卸载,更新等操作

【备注:实际生产中选用最小安装;】

安装位置,进行分区操作

【备注:注意要耐心等待,不要鼠标乱点】

 

先指定/boot 分区,即引导分区,大小为 1G, 然后点击添加挂载点.

 

 

swap 分区设备类型和文件系统

[备注:实际生产过程中打开 Kdump]

设置网络和主机名, 安装好后也可以设置

设置你的主机名,然后点击完成即可.

点击开始安装就开始了

注意:在实际生产环境,密码一定要复杂,否则容易造成安全隐患

创建其它用户,也可以安装成功后,再创建

 完成后面的设置

 默认以普通用户登录,可以切换成 root, 点击未列出

连接网络,就可以上网了


contos安装mysql5.7(CentOS7.6) 

1.新建文件夹/opt/mysql,并cd进去 : mkdir /opt/mysql

2.运行wget http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar,下载mysql安装包

PS:centos7.6自带的类mysql数据库是mariadb,会跟mysql冲突,要先删除。

3.运行tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

4.运行rpm -qa|grep mari,查询mariadb相关安装包

5.运行rpm -e --nodeps mariadb-libs,卸载

6.然后开始真正安装mysql,依次运行以下几条

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

7.运行systemctl start mysqld.service,启动mysql

8.然后开始设置root用户密码

Mysql自动给root用户设置随机密码,运行grep "password" /var/log/mysqld.log可看到当前密码

9.运行mysql -u root  -p,用root用户登录,提示输入密码可用上述的,可以成功登陆进入mysql命令行

10.设置root密码,对于个人开发环境,如果要设比较简单的密码(生产环境服务器要设复杂密码),可以运行

set global validate_password_policy=0;  提示密码设置策略

(validate_password_policy默认值1,)

11.set password for 'root'@'localhost' =password('hspedu100');

12.运行flush privileges;使密码设置生效


Centos7启动流程分析

Linux系统的启动过程可以分为5个阶段:

  • 内核的引导。
  • 运行init。
  • 系统初始化。
  • 建立终端 。
  • 用户登录系统。

第一步、硬件启动阶段

  这一步和CentOS6差不多,详细请看图

第二步、GRUB2引导阶段

  从这一步开始,CentOS6和CentOS7的启动流程区别开始展现出来了。CentOS7的主引导程序使用的是grub2。

  这一步的流程:显示加载两个镜像,再加载MOD模块文件,把grub2程序加载执行,接着解析配置文件/boot/grub2/grub.cfg,根据配置文件加载内核镜像到内存,之后构建虚拟根文件系统,最后转到内核。

  在这里grub.cfg配置文件已经比较复杂了,但并不用担心,到了CentOS7中一般是使用命令进行配置,而不直接去修改配置文件了。不过我们可以看到grub.cfg配置文件开头注释部分说明了由/etc/grub.d/目录下文件和/etc/default/grub文件组成。

  一般修改好配置后都需要使用命令grub2-mkconfig -o /boot/grub2/grub.cfg,将配置文件重新生成。

第三步、内核引导阶段

  这一步与CentOS6也差不多,加载驱动,切换到真正的根文件系统,唯一不同的是执行的初始化程序变成了/usr/lib/systemd/systemd

第四步、systemed初始化阶段(又叫系统初始化阶段)

  CentOS7中我们的初始化进程变为了systemd。执行默认target配置文件/etc/systemd/system/default.target(这是一个软链接,与默认运行级别有关)。然后执行sysinit.target来初始化系统和basic.target来准备操作系统。接着启动multi-user.target下的本机与服务器服务,并检查/etc/rc.d/rc.local文件是否有用户自定义脚本需要启动。最后执行multi-user下的getty.target及登录服务,检查default.target是否有其他的服务需要启动。

  注意:/etc/systemd/system/default.target指向了/lib/systemd/system/目录下的graphical.target或multiuser.target。而graphical.target依赖multiuser.target,multiuser.target依赖basic.target,basic.target依赖sysinit.target,所以倒过来执行。

  System概述(了解):systemd即为system daemon,是Linux下的一种init软件,开发目标是提供更优秀的框架以表示系统服务间的以来关系,并依此实现系统初始化时服务的并行启动,同时达到降低Shell系统开销的效果,最终代替现在常用的System V与BSD风格的init程序。

  与多数发行版使用的System V风格的init相比,systemd采用了以下的新技术:A.采用Socket激活式与总线激活式服务,以提高相互依赖的各服务的并行运行性能;B.用Cgroup代替PID来追踪进程,即使是两次fork之后生成的守护进程也不会脱离systemd的控制。

  unit对象:unit表示不同类型的systemd对象,通过配置文件进行标识和配置;文件中主要包含了系统服务、监听socket、保存的系统快照以及其他与init相关的信息。(也就是CentOS6中的服务器启动脚本)

(1)./etc/systemd/system/default.target

  这是一个软链接,和默认运行级别相关

# ll /etc/systemd/system/default.target

lrwxrwxrwx. 1 root root 36 12月  9 15:47 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target

我们可以到这个目录下看看

# cd /lib/systemd/system/

# ls *.target

anaconda.target            local-fs.target           runlevel2.target

basic.target               machines.target           runlevel3.target

bluetooth.target           multi-user.target         runlevel4.target

cryptsetup-pre.target      network-online.target     runlevel5.target

cryptsetup.target          network-pre.target        runlevel6.target

ctrl-alt-del.target        network.target            shutdown.target

default.target             nfs-client.target         sigpwr.target

emergency.target           nss-lookup.target         sleep.target

final.target               nss-user-lookup.target    slices.target

getty-pre.target           paths.target              smartcard.target

getty.target               poweroff.target           sockets.target

graphical.target           printer.target            sound.target

halt.target                rdma-hw.target            suspend.target

hibernate.target           reboot.target             swap.target

hybrid-sleep.target        remote-cryptsetup.target  sysinit.target

initrd-fs.target           remote-fs-pre.target      system-update.target

initrd-root-fs.target      remote-fs.target          timers.target

initrd-switch-root.target  rescue.target             time-sync.target

initrd.target              rpcbind.target            umount.target

iprutils.target            rpc_pipefs.target         virt-guest-shutdown.target

kexec.target               runlevel0.target

local-fs-pre.target        runlevel1.target

这里可以看到runlevel开头的target文件,对应着CentOS6的启动级别,不过一样是软链接,指向了同目录下的其他文件,也算一种向下兼容吧

# ll runlevel*.target

lrwxrwxrwx. 1 root root 15 4月   5 22:10 runlevel0.target -> poweroff.target

lrwxrwxrwx. 1 root root 13 4月   5 22:10 runlevel1.target -> rescue.target

lrwxrwxrwx. 1 root root 17 4月   5 22:10 runlevel2.target -> multi-user.target

lrwxrwxrwx. 1 root root 17 4月   5 22:10 runlevel3.target -> multi-user.target

lrwxrwxrwx. 1 root root 17 4月   5 22:10 runlevel4.target -> multi-user.target

lrwxrwxrwx. 1 root root 16 4月   5 22:10 runlevel5.target -> graphical.target

lrwxrwxrwx. 1 root root 13 4月   5 22:10 runlevel6.target -> reboot.target

可以看到我的default.target与runlevel5.target指向的是同一个文件,可以看出我的默认运行级别是5。

(2)./usr/lib/systemd/system/

这个目录存储每个服务的脚本,类似CentOS6的/etc/init.d/。

(2)./run/systemd/system/

系统执行过程中产生的脚本。

(3)./etc/systemd/system/

类似于CentOS6的/etc/rc.d/rc#.d/SXX类文件的功能,管理员建立的执行脚本,大部分是软链接

Over 


制作自己的min linux(基于CentOS7.6) 

首先,我们在现有的linux添加一块大小为20G的硬盘

点击完成,就OK了, 可以使用 lsblk 查看,需要重启

添加完成后,点击确定,然后启动现有的linux(centos7.6)。

通过fdisk来给我们的/dev/sdb进行分区

1 [root@localhost ~]# fdisk /dev/sdb

 2 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

 3 Building a new DOS disklabel with disk identifier 0x4fde4cd0.

 4 Changes will remain in memory only, until you decide to write them.

 5 After that, of course, the previous content won't be recoverable.

 6

 7 

 8 Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 9

10 

11 WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

12 switch off the mode (command 'c') and change display units to

13 sectors (command 'u').

14

15

16 Command (m for help): n

17 Command action

18 e extended

19 p primary partition (1-4)

20 p

21 Partition number (1-4): 1

22 First cylinder (1-2610, default 1):

23 Using default value 1

24 Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +500M

25

26

27 Command (m for help): n

28 Command action

29 e extended

30 p primary partition (1-4)

31 p

32 Partition number (1-4): 2

33 First cylinder (15-2610, default 15):

34 Using default value 15

35 Last cylinder, +cylinders or +size{K,M,G} (15-2610, default 2610):

36 Using default value 2610

37 #查看分区

38 Command (m for help): p

39

40 

41 Disk /dev/sdb: 21.5 GB, 21474836480 bytes

42 255 heads, 63 sectors/track, 2610 cylinders

43 Units = cylinders of 16065 * 512 = 8225280 bytes

44 Sector size (logical/physical): 512 bytes / 512 bytes

45 I/O size (minimum/optimal): 512 bytes / 512 bytes

46 Disk identifier: 0x4fde4cd0

47

48 

49 Device Boot Start End Blocks Id System

50 /dev/sdb1 1 14 112423+ 83 Linux

51 /dev/sdb2 15 2610 20852370 83 Linux

52 #保存并退出

53 Command (m for help): w

54 The partition table has been altered!

接下来,我们对/dev/sdb的分区进行格式化

[root@localhost ~]# mkfs.ext4 /dev/sdb1

[root@localhost ~]# mkfs.ext4 /dev/sdb2

创建目录,并挂载新的磁盘

#mkdir -p /mnt/boot /mnt/sysroot

#mount /dev/sdb1 /mnt/boot

#mount /dev/sdb2 /mnt/sysroot/ 

安装grub, 内核文件拷贝至目标磁盘

#grub2-install --root-directory=/mnt /dev/sdb

#我们可以来看一下二进制确认我们是否安装成功

#hexdump -C -n 512 /dev/sdb   

#cp -rf /boot/*  /mnt/boot/

修改 grub2/grub.cfg 文件, 标红的部分 是需要使用 指令来查看的

在grub.cfg文件中 , 红色部分用 上面 sdb1 的 UUID替换,蓝色部分用 sdb2的UUID来替换, 紫色部分是添加的,表示selinux给关掉,同时设定一下init,告诉内核不要再去找这个程序了,不然开机的时候会出现错误的

### BEGIN /etc/grub.d/10_linux ###

menuentry 'CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-957.el7.x86_64-advanced-2eef594e-68fc-49a0-8b23-07cf87dda424' {

    load_video

    set gfxpayload=keep

    insmod gzio

    insmod part_msdos

    insmod ext2

    set root='hd0,msdos1'

    if [ x$feature_platform_search_hint = xy ]; then

      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  6ba72e9a-19ec-4552-ae54-e35e735142d4

    else

      search --no-floppy --fs-uuid --set=root 6ba72e9a-19ec-4552-ae54-e35e735142d4

    fi

    linux16 /vmlinuz-3.10.0-957.el7.x86_64 root=UUID=d2e0ce0f-e209-472a-a4f1-4085f777d9bb ro crashkernel=auto rhgb quiet LANG=zh_CN.UTF-8  selinux=0 init=/bin/bash

    initrd16 /initramfs-3.10.0-957.el7.x86_64.img

}

menuentry 'CentOS Linux (0-rescue-5bd4fb8d8e9d4198983fc1344f652b5d) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-5bd4fb8d8e9d4198983fc1344f652b5d-advanced-2eef594e-68fc-49a0-8b23-07cf87dda424' {

    load_video

    insmod gzio

    insmod part_msdos

    insmod ext2

    set root='hd0,msdos1'

    if [ x$feature_platform_search_hint = xy ]; then

      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  6ba72e9a-19ec-4552-ae54-e35e735142d4

    else

      search --no-floppy --fs-uuid --set=root 6ba72e9a-19ec-4552-ae54-e35e735142d4

    fi

    linux16 /vmlinuz-0-rescue-5bd4fb8d8e9d4198983fc1344f652b5d root=UUID=d2e0ce0f-e209-472a-a4f1-4085f777d9bb ro crashkernel=auto rhgb quiet selinux=0 init=/bin/bash

    initrd16 /initramfs-0-rescue-5bd4fb8d8e9d4198983fc1344f652b5d.img

}

### END /etc/grub.d/10_linux ###

7.创建目标主机根文件系统

#mkdir -pv /mnt/sysroot/{etc/rc.d,usr,var,proc,sys,dev,lib,lib64,bin,sbin,boot,srv,mnt,media,home,root} 

8.拷贝需要的bash(也可以拷贝你需要的指令)和库文件给新的系统使用

#cp /lib64/*.* /mnt/sysroot/lib64/

#cp /bin/bash /mnt/sysroot/bin/

9.现在我们就可以创建一个新的虚拟机,然后将默认分配的硬盘 移除掉,指向我们刚刚创建的磁盘即可.

这时,很多指令都不能使用,比如 ls , reboot 等,可以将需要的指令拷贝到对应的目录即可

如果要拷贝指令,重新进入到原来的 linux系统拷贝相应的指令即可,比较将 /bin/ls 拷贝到 /mnt/sysroot/bin  将/sbin/reboot 拷贝到 /mnt/sysroot/sbin

root@hspedu100 ~]# mount /dev/sdb2 /mnt/sysroot/

[root@hspedu100 ~]# cp /bin/ls /mnt/sysroot/bin/

[root@hspedu100 ~]# cp /bin/systemctl  /mnt/sysroot/bin/

[root@hspedu100 ~]# cp /sbin/reboot /mnt/sysroot/sbin/

再重新启动新的min linux系统,就可以使用 ls , reboot 指令了


其他

Linux重要目录和文件

etc目录

  /etc/rc.d    启动或改变运行级别时运行的scripts或scripts的目录

  /etc/hosts    本地 域名解析文件

  /etc/sysconfig/network  IP,掩码,网关,主机名配置.

  /etc/resolv.conf  DNS服务器配置

  /etc/fstab  开机自动挂载系统,所有分区开机都会自动挂载.

/etc/inittab  设定系统启动时init进程将把系统设置成什么样的runlevel及加载相关的启动文件配置

  /etc/exports  设置NFS系统用的配置文件路径

  /etc/init.d  这个目录来存放系统启动脚本

  /etc/profile,/etc/csh.login,/etc/csh.cshrc  全局系统环境配置变量

  /etc/issue  认证签的输出信息,默认输出版本内核信息.

  /etc/motd  设置认证后的输出信息

  /etc/mtab  当前安装的文件系统列表,由scripts初始化,并由mount命令自动更新.需要一个当前安装的文件系统的列表时使用,例如df命令.

  /etc/group  类似/etc/passwd,但说明的不是用户而是组.

  /etc/passwd  用户数据库,其中的域给出了用户名,真实姓名,家目录,加密的口令和用户的其它信息.

  /etc/shadow  在安装了影子口令软件的系统上的影子口令文件.影子口令文件将/etc/passwd文件中的加密口令移动到/etc/shadow中,只对root可读,使破译口令更加困难.

  /etc/sudoers  可以sudo命令的配置文件.

  /etc/syslog.conf  系统日志参数配置

  /etc/login.defs  设置用户账号限制的文件.

  /etc/securetty  确认安全终端,即哪个终端允许root登录,一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权.

  /etc/printcap  类似/etc/termcap,但针对打印机,语法不同.

  /etc/shells  列出可信任deshell.chsh 命令允许用户在本文件指定范围内改变登录shell. 例如提供FTP服务的服务进程ftpd 检查用户shell是否列在/etc/shells 文件中,如果不是将不允许该用户登录.

  /etc/xinetd.d  如果服务器是通过xinetd模式运行的,它的脚本要放在这个目录下.有些系统没有这个目录,比如Slackware,有些老的版本也没有.在Redhat Fedora中比较新的版本中存在.

  /etc/opt/  /opt/的配置文件.

  /etc/X11/  X_Window系统(版本11)的配置文件.

  /etc/sgml/  SGML的配置文件.

  /etc/xml/  XML的配置文件.

  /etc/skel/  默认创建用户时,把该目录拷贝到家目录下.


  /usr目录  

  /usr/X11R6  存放X-Windows的目录

  /usr/games  存放着XteamLinux自带的小游戏.

  /usr/doc  Linux技术文档.

  /usr/include  用来存放Linux下开发和编译应用程序所需要的头文件.

  /usr/lib  存放一些常用的动态链接共享库和静态档案库

  /usr/man  帮助文档所在的目录

  /usr/bin/  非必要可执行文件(在单用户模式中不需要)面向所有用户.

  /usr/lib/  /usr/bin和/usr/sbin/中二进制文件库.

  /usr/sbin/  非必要的系统二进制文件,例如:大量网络服务的守护进程.

  /usr/share/  体系结构无关(共享)数据目录.

  /usr/src/  源代码Linux开放的源代码及其头文件.

  /usr/X11R6  X Windows 系统版本 11,Release 6.

  /usr/local/  这是提供给一般用户的/usr目录,在这里安装一般的应用软件.


  /var目录

  /var/log/message 系统启动后的信息和错误日志,是linux中最常用的日志之一.按周自动轮询.

  /var/spool/cron/root  定时器配置文件目录,默认按用户命名.

  /var/log/secure  记录登录系统存取信息的文件,不管认证成功还是认证失败都会记录.

  /var/log/wtmp  记录登录者信息的文件, last,who,w 命令信息来源于此. 

  /var/spool/clientmqueue/ 当邮件服务未开启时,所有应发给系统管理员的邮件都将堆放在此.

  /var/spool/mail/  邮件目录

  /var/tmp  比/tmp允许的大或需要存在较长时间的临时文件.(虽然系统管理员可能不允许/var/tmp有很旧的文件.)

  /var/lib  系统正常运行时要改变的文件.

  /var/local  /usr/local中安装的程序的可变数据(即系统管理员安装的程序)注意,如果必要,即使本地安装的程序也会使用其他/var目录,例如/var/lock.

  /var/log/  各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统的登陆和注销)和syslog(/var/log/messages里存储所有核心和系统程序信息./var/log里的文件经常不确定地增长,应该定期清除)

  /var/run  保存到下次引导前有效的关于系统的信息文件.例如, /var/run/utmp 包含当前登录的用户信息.

  /var/cache/  应用程序缓存数据. 这些数据是在本地生成的一个耗时的I/O或计算结果.应用程序必须能够再生或恢复数据.缓存的文件可以被删除而不导致数据丢失.

  /var/log/maillog    与邮件相关的日志信息

  /var/log/cron   与定时任务相关的日志信息

  /var/log/spooler    与UUCP和news设备相关的日志信息

  /var/log/boot.log   守护进程启动和停止相关的日志信息


/proc 目录 

  /proc/meminfo  查看内存信息.

  /proc/loadavg  top以及uptime 三个平均数值就是记录在这个文件中.

  /proc/uptime  使用uptime时候出现的资讯.

  /proc/cpuinfo  关于处理器的信息,如类型,厂家,型号和性能等.

  /proc/cmdline  加载kernel时所下达的相关参数. 查阅此文件可了解系统是如何启动的.

  /proc/filesystems  目前系统已经加载的文件系统.

  /proc/interrupts  目前系统上面的IRQ分配状态.

  /proc/ioports  目前系统上面各个装置所配置的I/O位址

  /proc/kcore  内存的大小.

  /proc/modules  目前我们的Linux已经加载的模块列表,也可以想成是驱动程序.

  /proc/mounts  系统已经挂载的数据,就是用mount这个命令呼出来的数据.

  /proc/swaps  到底系统挂载的内存在哪里 使用掉的partition就记录在这个文件.

  /proc/partitions  使用fdisk -l 会出现目前所有的partition 这个文件中也有记录,

  /proc/pci  在PCI回流排上面,每个装置的详细情况,可用 lspci 查阅.

  /proc/version  核心的版本,就是用 uname -a 显示的内容.

  /proc/bus/*  一些汇流排的装置,还有U盘的装置也记录在这里.


  /dev 设备目录

在 Linux 系统中,硬件设备也是文件,也有各自的文件名称。

Linux 系统内核中的 udev 设备管理器会自动对硬件设备的名称进行规范,目的是让用户通过设备文件的名称,就可以大致猜测处设备的属性以及相关信息。

udev 设备管理器会一直以进程的形式运行,并侦听系统内核发出的信号来管理位于 /dev 目录下的设备文件。

  /dev/hd[a-t]  现在的 IDE设备已经很少见了,因此一般的硬盘设备会以 /dev/sd 开头

  /dev/sd[a-z]  SCSI设备,一台主机有多块硬盘,系统采用 a~p 代表 16 块不同的硬盘。

  /dev/fd[0-7]  标准软驱.

  /dev/md[0-31]  软raid设备.

  /dev/loop[0-7]  本地回环设备.

  /dev/ram[0-15]  内存.

  /dev/null  无线数据接收设备,相当于黑洞.

  /dev/zero  无限零资源.

  /dev/tty[0-63]  虚拟终端.

  /dev/ttyS[0-3]  串口

  /dev/lp[0-3]  并口

  /dev/console  控制台.

  /dev/fb[0-31]  framebuffer

  /dev/cdrom  =>/dev/hdc

  /dev/modem  =>/dev/ttyS[0-9]

  /dev/pilot  =>/dev/ttyS[0-9]

  /dev/random  随机数设备

  /dev/urandom  随机数设备

        /dev/mouse        鼠标

        /dev/cdrom         光驱


CUP内核的确认

开始-->任务管理器-->性能-->打开资源监视器-->2CPU,16个内核
    


常见的镜像站

    阿里云开源镜像站:阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

    清华大学开源软件镜像站:清华大学开源软件镜像站 | Tsinghua Open Source Mirror

    中科大开源软件镜像站:USTC Open Source Software Mirror

    网易云开源镜像站:欢迎访问网易开源镜像站

    搜狐开源镜像站:Index of /centos/

    华为开源镜像站:华为开源镜像站_软件开发服务_华为云


提示生成复杂密码

生成随机密码 - 密码生成器 - 密码批量生成器


 网络连接方式

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/252026.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

免费的hyper-v虚机添加U盘的二种方法

windows集成了hyper-v&#xff0c;hyper-v可以安装linux&#xff0c;windows等虚机&#xff0c;基本可以满足工作&#xff0c;实验之需。但是不少人反映hyper-v不方便连接U盘&#xff0c;这样子文件传输不是很方便。 网上有方法说在虚机设置中添加磁盘&#xff0c;首先到物理机…

图数据库(neo4j)在工业控制中的应用

最近看到国外发表的一篇文章&#xff0c;提到将OPC UA 模型映射到neo4j图模型数据库中&#xff0c;通过GraphQL 访问效率很高&#xff0c;顿时感觉自己眼睛一亮&#xff0c;这是一个好主意。 图模型 事物的模型中&#xff0c;除了它自身的某些特征之外&#xff0c;还包括它与其…

kubectl命令

kubenetes部署服务的流程 以部署一个nginx服务来说明kubernetes系统各个组件调用关系&#xff1a; 1. 首先要明确&#xff0c;一旦kubernetes环境启动之后&#xff0c;master和node都会将自身的信息存储到etcd数据库中 2. 一个nginx服务的安装请求会首先被发送到master节点的ap…

世界各国都在追求“主权人工智能能力”,国家级人工智能硬件需求将剧增

NVIDIA的CEO黄仁勋最近在接受媒体采访时指出&#xff0c;世界各国都打算在本国内建立和运行自主的人工智能基础设施&#xff0c;这将全面带动NVIDIA硬件产品需求的飙升。黄仁勋表示&#xff0c;包括印度、日本、法国和加拿大在内的国家政府都在讨论投资“国家主权人工智能能力”…

利用jmeter完成简单的压力测试

Jmeter是一个非常好用的压力测试工具。Jmeter用来做轻量级的压力测试&#xff0c;非常合适&#xff0c;只需要十几分钟&#xff0c;就能把压力测试需要的脚本写好。 1、什么是压力测试 顾名思义&#xff1a;压力测试&#xff0c;就是 被测试的系统&#xff0c;在一定的访问压…

从小白到入门webrtc音视频通话

0. 写在前面 先会骑车&#xff0c;再研究为什么这么骑&#xff0c;才是我认为学习技术的思路&#xff0c;底部付了demo例子&#xff0c;根据例子上面的介绍即可运行。 1. 音视频通话要用到的技术简介 websocket 介绍&#xff1a;1. 服务器可以向浏览器推送信息&#xff1b;2…

Java SWT Composite 绘画

Java SWT Composite 绘画 1 Java SWT2 Java 图形框架 AWT、Swing、SWT、JavaFX2.1 Java AWT (Abstract Window Toolkit)2.2 Java Swing2.3 Java SWT (Standard Widget Toolkit)2.4 Java JavaFX 3 比较和总结 1 Java SWT Java SWT&#xff08;Standard Widget Toolkit&#xff…

Yarn常见问题处理

任务出现container OOM异常导致作业失败 原因 Container内存不足或者作业数据倾斜 解决方案 检查Container相关参数,判断是否设置过小(低于4GB)。如果Container小于4GB,优先考虑调大当前作业container大小,如果是Tez任务,还需要同步调整以下参数 # tez container size…

STM32--SPI通信协议(1)SPI基础知识总结

前言 I2C (Inter-Integrated Circuit)和SPI (Serial Peripheral Interface)是两种常见的串行通信协议&#xff0c;用于连接集成电路芯片之间的通信&#xff0c;选择I2C或SPI取决于具体的应用需求。如果需要较高的传输速度和简单的接口&#xff0c;可以选择SPI。如果需要连接多…

探索设计模式的魅力:从单一继承到组合模式-软件设计的演变与未来

设计模式专栏&#xff1a;http://t.csdnimg.cn/nolNS 在面对层次结构和树状数据结构的软件设计任务时&#xff0c;我们如何优雅地处理单个对象与组合对象的一致性问题&#xff1f;组合模式&#xff08;Composite Pattern&#xff09;为此提供了一种简洁高效的解决方案。通过本…

记录下ibus-libpinyin输入法的重新安装

目前的版本为: 首先把现在的ibus-libpinyin卸了 sudo apt-get --purge remove ibus-libpinyin sudo apt-get autoremove 安装教程请参考 Installation libpinyin/ibus-libpinyin Wiki GitHub yilai sudo apt install pkg-config sudo apt-get install libglib2.0-de…

CSS要点总结

一、CSS 快速入门 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>css 快速入门</title><!-- 解读1. 在 head 标签内&#xff0c;出现了 <style type"text/css"></style…

初探unity中的ECS

ECS是一种软件架构模式&#xff0c;就像MVC一样。ECS最早在游戏《守望先锋》中提及到的相关链接。ECS具体是指实体&#xff08;entity&#xff09;、 组件&#xff08;component&#xff09;和系统&#xff08;system&#xff09;&#xff1a; 实体&#xff1a;实体是一个ID&a…

从源代码看Chrome 版本号

一直以来都是用Chrome 浏览器&#xff0c;但是看到Chrome 点分4 组数据的表达方式&#xff0c;总是感觉怪怪的&#xff0c;遂深入源代码了解她的版本号具体表示的内容 chrome 浏览器中显示的版本号 源代码中的版本号标识 版本号文件位于 chrome/VERSION &#xff0c; 看到源代…

SpringBoot实战(二十六)集成SFTP

目录 一、SFTP简介二、SpringBoot 集成2.1 Maven 依赖2.2 application.yml 配置2.3 DemoController.java 接口2.4 SftpService.java2.5 DemoServiceImpl.java 实现类2.6 SftpUtils.java 工具类2.7 执行结果1&#xff09;上传文件2&#xff09;下载文件3&#xff09;重命名文件&…

全链游戏的未来趋势与Bridge Champ的创新之路

为了充分探索全链游戏的特点和趋势&#xff0c;以及Bridge Champ如何作为一个创新案例融入这一发展脉络&#xff0c;我们需要深入了解这两者之间的互动和相互影响。全链游戏&#xff0c;或完全基于区块链的游戏&#xff0c;代表了游戏行业的一个重要转型&#xff0c;它们利用区…

nginx反向代理----->微服务网关----->具体微服务

今天&#xff0c;做项目的时候做项目的时候配路由出现bug&#xff0c;特此理顺一下从nginx到微服务网关再到微服务这一过程。 nginx配置 upstream admin-gateway{server localhost:21217; }server {listen 8803;location / {root F:/develop/admin-web/;index index.html;}…

LeetCode--代码详解 2.两数相加

2.两数相加 题目 难度&#xff1a;中等 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数…

【django】建立python虚拟环境-20240205

1.确保已经安装pip3 install venv 2.新建虚拟环境 python -m venv myenv 3.安装虚拟环境的依赖包 pip install … 4.激活虚拟环境 cd myenv cd Scripts activate 激活activate.bat并进入虚拟环境 进入虚拟环境后&#xff0c;命令行前面显示&#xff08;myenv&#xff0…

AspNet web api 和mvc 过滤器差异

最近在维护老项目。定义个拦截器记录接口日志。但是发现不生效 最后发现因为继承的 ApiController不是Controller 只能用 System.Web.Http下的拦截器生效。所以现在总结归纳一下 Web Api: System.Web.Http.Filters.ActionFilterAttribute 继承该类 Mvc: System.Web.Mvc.Ac…