1.Linux简介
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程多CPU的操作系统。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
2.Linux系统启动过程
启动过程可以分为5个阶段:
1.内核的引导
当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件后,首先读入/boot目录下的内核文件,如下所示:
2.运行init
init进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动。init程序首先需要读取配置文件/etc/inittab。如下所示:
运行级别:
许多程序需要开机启动。在Windows叫做服务(Service),在Linux就叫做守护进程(daemon)。init进程的一大任务就是去运行这些开机启动的程序。
Linux运行为不同的场合分配不同的开机启动程序,这就叫做运行级别(runlevel)。也就是说,启动时根据运行级别,确定要运行那些程序。有如下7个运行级别:
运行级别1 系统停机状态 运行级别2 单用户工作状态,root权限,用于系统维护,禁止远程登录 运行级别3 多用户状态(没有NFS) 运行级别4 完全的多用户状态(有NFS),登陆后进入控制台命令行模式 运行级别5 系统未使用,保留 运行级别6 X11控制台,登陆后进入图形GUI模式 运行级别7 系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动 如下所示:
3.系统初始化
在init的配置文件中
4.建立终端
5.用户登录系统
3.Linux系统目录结构
登录系统后,在命令终端里面输入:ls /命令,就会看到如下图所示Linux系统的目录结构:
树状目录结构如下所示:
对这些目录解释如下所示:
/root 该目录为系统管理员,也称为超级权限者的用户主目录。 /bin bin是Binary的缩写,这个目录存放着最经常使用过的命令 /boot 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 /dev dev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访设备的方式和访问文件的方式是相同的。 /etc 这个目录是用来存放所有的系统管理所需要的配置文件和子目录。 /home 用户的主目录。在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 /var 这个目录存放着不断扩充着的东西,经常被修改的目录放在这个目录下,包括各种日志文件。 /lib 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里面的DDL文件。几乎所有的应用程序都需要到这些共享库。 /usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于Windows下的program files目录。 /usr/bin 系统用户使用的应用程序 /usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序 /usr/src 内核源代码默认放置的目录 /media Linux系统户自动识别一些设备,例如U盘、光驱等等。当识别后,Linux会把识别的设备挂载到这个目录下。 /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 /mnt 系统提供该目录是为了让用户临时挂载别的文件系统的。可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里面的内容了。 /opt 这里是给主机额外安装软件所拜访的目录。比如安装一个Oracle数据库则可以放到这个目录下,默认是空的, /proc 这个目录是一个虚拟的目录,它是系统内存的映射,可以通过直接访问这个目录来获取系统消息。
这个目录的内容不再硬盘上而是在内存里,也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,让别人无法ping自己的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/sbin s就是Super User的意思。这里存放的是系统管理员使用的系统管理程序。 /selinux 这个目录是Redhat/CentOS所特有的目录。Selinux是一个安全机制,类似于Windows的防火墙,这个目录就是存放selinux相关的文件的。 /srv 该目录存放一些服务启动之后需要提取的数据 /sys /temp 这个目录用来存放一些临时文件 /run 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。
远程登录
1. Linux系统中是通过SSH服务实现的远程登录功能,默认SSH服务端口号为22。
安装SSH: yum install ssh 启动SSH: service sshd start 远程登录服务器: ssh -p 端口号 服务器名@IP地址 输入密码: 密码
2.Windows系统上Linux远程登录客户端有SecureCRT,Putty,SSH Secure Shell等。
3.使用密钥认证机制远程登录Linux
Linux文件基本属性
Linux是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同用户访问同一个文件(包括目录文件)的权限做了不同的规定。
可以使用ls -l命令来显示一个文件的属性以及文件所属的用户和组,如:
192:/ luckyliuqs$ ls -l total 14 drwxrwxr-x+ 65 root admin 2080 7 15 15:13 Applications drwxr-xr-x+ 63 root wheel 2016 6 10 09:52 Library drwxr-xr-x 2 root wheel 64 8 18 2018 Network drwxr-xr-x@ 5 root wheel 160 10 24 2018 System drwxr-xr-x 6 root admin 192 6 25 09:25 Users drwxr-xr-x+ 3 root wheel 96 7 15 08:58 Volumes drwxr-xr-x@ 37 root wheel 1184 6 27 13:48 bin drwxrwxr-t 2 root admin 64 8 18 2018 cores dr-xr-xr-x 3 root wheel 4776 7 9 14:08 dev ...
如上面所示,每一行的第一个字符表示代表这个文件是目录、文件或者链接文件等等。如下:
- d:代表是目录
- -:代表是文件
- l:代表是链接文档(link file)
- b:代表是装置文件里面的可供储存的接口设备(可随机存取装置)
- c:代表是装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
在接下来的字符中,以每三个字符为一组,均为rwx三个参数的组合。
- r:代表可读(read)
- w:代表可写(write)
- x:代表可执行(execute)
- -:代表没有权限
三个字符的位置顺序不会改变,如果该文件没有某个字符的权限,则用减号-代替。每一行代表一个文件,其属性由左边第一部分的10个字符来确定,如下所示:
如上图所示,从左到右用0-9这10个数字来表示文件的属性。
第0位 表示文件的类型 第1-3位 确定属主(该文件的所有者)拥有该文件的权限。 第4-6位 确定属组(所有者的同组用户)拥有该文件的权限 第7-9位 确定其他用户拥有该文件的权限 第2、5、8位表示写权限,如果用"w"字符表示,则有写权限,如果用"-"字符表示没有写权限;第3、6、9位表示可执行权限,如果用"x"字符表示,则有执行权限,如果用"-"字符表示,则没有执行权限。
Linux文件属主和属组
用户
在Linux系统中,用户是按组分类的,一个用户属于一个或者多个组。分类如下所示:
文件所有者(属主) 对文件具有所有权的用户 文件所有者同组用户(属组) 跟文件所有者同组的用户 其他用户 其他用户 权限
Linux系统按照文件所有者、文件所有者同组用户和其他用户来规定了不同的文件访问权限。如下所示:
[root@www /]# ls -l total 64 drwxr-xr-x 3 mysql mysql 4096 Apr 21 2014 mysql ……
mysql是一个目录文件,属主和属组都是mysql。属主有可读、可写、可执行的权限;与属主同组的其他用户(属租)有可读和可执行的权限;其他用户也有可读和可执行的权限。
更改文件属性
1.chgrp:更改文件属组
- 语法
chgrp [-R] 属组名 文件名 -R:递归更改文件属组,如果加上-R参数,那么该文件下的所有文件的属组都会更改。
2.chown:更改文件属主,也可以同时更改文件属组
- 语法
chown [-R] 属主名 文件名 chown [-R] 属主名:属组名 文件名
3.chmod:更改文件9个属性
可以使用 chmod 命令来对目录设置权限:
chmod 可以用3个数字来表达 用户,用户组,其他用户:
如 chmod 777 /test (数字的第一个7代表的是用户权限
数字的第二个7代表的是用户组的权限
数字的第三个7代表的是其他用户的权限)
而数字7是特定用户的 读,写 , 执行 权限:
[读取--用数字 4 表示]
[写--用数字 2 表示]
[执行--用数字 1 表示]
用这些数字相加得到权限:
如你想设置/test目录的权限为:
对用户可读可写, 4(读取)+ 2 (写入) = 6
对用户组可读可执行, 4(读取) + 1 (执行) = 5
对其他用户仅仅可读; 4(读取)
这样就可以用命令: chmod 654 /test 来设置权限~
!!!提示如果是设置目录,没有执行权限是不可以读取目录的。
Linux端口
1.查看端口被哪个程序占用
sudo lsof -i tcp:port
如: sudo lsof -i tcp:8080
2.看到进程的PID,可以将进程杀死。
sudo kill -9 PID
如:sudo kill -9 23453