操作系统
什么是操作系统
操作系统是负责整个系统最基本功能和系统管理,包括内核、设备驱动程序、启动引导程序、命令行shell或其它种类的用户界面、基本的文件管理工具和系统工具。
用户界面是操作系统的外在表象,内核是操作系统的内在核心。
- 操作系统(Operation System,简称OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石;
- 操作系统本质上是运行在计算机上的软件程序 ;
- 为用户提供一个与系统交互的操作界面 ;
- 操作系统分内核与外壳(我们可以把外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序)。
用户态切换到内核态的三种方式:
- 系统调用,也即是应用程序使用OS提供的接口调用内核功能。
- 异常,这是一种被动切换到内核态的方法,当程序在用户态执行时,遇到了未知异常,例如缺页异常。
- 外部中断,也是一种被动切换到内核态的方法,当外设完成用户请求的操作后会发出中断信 ,CPU会停止当前进程的调度,转而处理中断处理函数所定义的操作。例如硬盘读写,或者 络IO,此时也会切换进入内核态。
当应用程序进程创建并开始运行时,都处于用户态。当需要用到磁盘、 络读写等操作时候调用操作系统提供接口(系统调用)来进入内核态,然后执行完毕后返回用户态,在这里,一般的应用程序不能随意操作内核态数据,具有一定的保护作用。
内存映射
内存映射,其实就是将虚拟内存地址映射到物理内存地址。为了完成内存映射,内核为每个进程都维护了一张页表,记录虚拟地址与物理地址的映射关系。
#查看linux版本信息
[root@redis ~]# uname -a
Linux redis 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@redis ~]# cat /proc/version
Linux version 3.10.0-862.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Fri Apr 20 16:44:24 UTC 2018
[root@redis ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
linux安装
VM安装CentOS7
- 通过虚拟机镜像安装
参考: https://blog.csdn.net/babyxue/article/details/80970526
centos7下载地址:
链接:https://pan.baidu.com/s/1iBzBwp9M3M4eQteMrqI1fQ 提取码:8z5v
VM下载地址:
链接:https://pan.baidu.com/s/1ZP7SKWif8cqSgpnGakirug 提取码:yyl8
- 克隆虚拟机
- 扫描导入.vmx文件
基本 络配置
VMware三种 络配置方式:
- **Bridged桥接模式:**桥接模式就是将主机 卡与虚拟机虚拟的 卡利用虚拟 桥进行通信。在桥接的作用下,类似于把物理主机虚拟为一个交换机,所有桥接设置的虚拟机连接到这个交换机的一个接口上,物理主机也同样插在这个交换机当中,所以所有桥接下的 卡与 卡都是交换模式的,相互可以访问而不干扰。在桥接模式下,虚拟机ip地址需要与主机在同一个 段,如果需要联 ,则 关与DNS需要与主机 卡一致。其 络结构如下图所示:
Linux文件系统的结构层次鲜明,就像一棵倒立的树,最顶层是其根目录:
常见目录说明:
- /bin: 存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里;
- /etc: 存放系统管理和配置文件;
- /home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示;
- /usr : 用于存放系统应用程序;
- /opt: 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里;
- /proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
- /root: 超级用户(系统管理员)的主目录(特权阶级o);
- /sbin: 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等;
- /dev: 用于存放设备文件;
- /mnt: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
- /boot: 存放用于系统引导时使用的各种文件;
- /lib : 存放着和系统运行相关的库文件 ;
- /tmp: 用于存放各种临时文件,是公用的临时文件存储点;
- /var: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等;
- /lost+found: 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里。
Linux基本命令
下面只是给出了一些比较常用的命令。推荐一个Linux命令快查 站,非常不错,大家如果遗忘某些命令或者对某些命令不理解都可以在这里得到解决。
Linux命令用法一般用man命令可以查看其帮助信息
中文Linux命令帮助大全:http://man.linuxde.net/
man ls
ls –help
目录切换命令
cd 进入用户主目录;
cd ~ 进入用户主目录;
cd – 返回进入此目录之前所在的目录;
cd … 返回上级目录(若当前目录为“/“,则执行完后还在“/”;”…”为上级目录的意思);
cd …/… 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。
目录的操作命令
mkdir命令
用来创建目录
#指定要创建的目录列表,多个目录之间用空格隔开。
mkdir test test2
#-p 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录
mkdir -p test/abc
ls命令
用来显示目标列表
#显示当前目录下非隐藏文件与目录
ls
#显示当前目录下包括隐藏文件在内的所有文件列表
ls -a
#输出长格式列表 简写ll
ls -1
find命令
用来在指定目录下查找文件
#在/root目录下查找以.txt结尾的文件名
find /root -name *.txt
#匹配文件路径或者文件
find /usr/ -path local
mv命令
用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中
重新命名
mv test.txt demo.txt
#移动文件到另一个目录
mv demo.txt …/bcd/
cp命令
用来将一个或多个源文件或者目录复制到指定的目的文件或目录 。-r代表递归拷贝
#下面的命令将指定文件复制到当前目录下:
cp …/mary/homework/assign .
#将文件file复制到目录/usr/men/tmp下,并改名为file1
cp file /usr/men/tmp/file1
#将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
cp -r /usr/men /usr/zh
rm命令
可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。
注意:使用rm命令要格外小心 ,千万不要出现 rm -rf /* (注意: rm -rf / 验证,不会执行)
#-f:强制删除文件或目录;
#-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
删除当前目录下除隐藏文件外的所有文件和子目录
rm -rf ./*
文件的操作命令
- touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
- cat/more/less/tail 文件名称 文件的查看
- cat: 只能显示最后一屏内容
- more: 可以显示百分比,回车可以向下一行, 空格可以向下一页,q可以退出查看
- less: 可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看
- head-10 : 查看文件的前10行,Ctrl+C结束
- tail-10 : 查看文件的后10行,Ctrl+C结束
注意:命令 tail -f 文件 可以对某个文件进行动态监控,例如tomcat的日志文件, 会随着程序的运行,日志会变化,可以使用tail -f catalina-2019-11-11.log 监控文件的变化
- vim 文件: 修改文件的内容
命令模式
用vim 打开一个文件刚开始进入的就是命令模式,在这个模式下我们可以控制光标的移动,字符,字或者行的删除,移动复制某段区域,在该模式下可以进入插入模式也可以进入底行模式。
插入模式
在插入模式下才可以插入文字,按Esc进入底行模式.
底行模式
在底行模式下保存文件或者退出vim
- vim常用命令:
1).移动光标
1.vim 可以使用小写英文字母 h j k l 分别控制光标左 下 上 右移动,也可以使用箭头
2.Ctrl+b 屏幕往后移动一页
3.Ctrl+f 屏幕往前移动一页
4.Ctrl+u 屏幕往后移动半页
5.Ctrl+d 屏幕往前移动半页
6.Shift+g == G 移动到文章的最后
7.Shift+4 == $ 移动到光标所在行的行尾
8.Shift+6 == ^ 移动到光标所在行的行首
9.w 光标跳到下个字的开头
10.e 光标跳到下个字的字尾
11.b 光标回到上个字的开头
12.#l 例如:5l ,56l 光标移动到该行的第’#’个位置
13.gg 进入到文本的开始
2).删除文字
1.x 每按一次删除光标所在位置的一个字符
2.#x 例子:6x 删除光标所在位置的”后面”(包含自己在内)6个字符
3.Shift+x == X 每按一次,删除光标所在位置的前一个字符
4.Shift+#x == #X 例子 20X 删除光标所在位置的前面20个字符
5.dd 删除光标所在行
6.#dd 例子 6dd 从光标所在行开始删除6行
3).复制
1.yw 将光标所在之处到字尾的字符复制到缓冲区中
2.#yw 例子 6yw 复制6个字符到缓冲区
3.yy 复制光标所在行到缓冲区
4.#yy 例子 6yy 拷贝从光标所在的该行”往下数”6行文字
5.p 将缓冲区内的字符贴到光标所在位置
注意:所有与y有关的复制命令都必须与p配合才能完成复制粘贴功能
4).替换
1.r 替换光标所在处的字符
2.R 替换光标所到之处的字符,知道按下Esc键为止.
5).撤销上一次的操作
u 回到上一个操作,按动多次’u’可以执行多次恢复
6).更改
1.cw 更改光标所在处的字到字尾处
2.c**#w** 例子 c3w 表示更改三个字
7).跳至指定行
1.Ctrl+g 列出光标所在行的行
2.#G 例子 15G 表示移动光标到文章的第15行行首
每一列的内容的信息解释如下:
对文件和目录而言,读写执行表示不同的意义。
对于文件:
权限名称 | 可执行操作 |
---|---|
r | 可以使用cat查看文件的内容 |
w | 可以修改文件的内容 |
x | 可以将其运行为二进制文件 |
对于目录:
权限名称 | 可执行操作 |
---|---|
r | 可以查看目录下列表 |
w | 可以创建和删除目录下文件 |
x | 可以使用cd进入目录 |
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
所有者
一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用ls ‐l命令可以看到文件的所有者,也可以使用chown 用户名 文件名来修改文件的所有者 。
chown [–R] 属主名 文件名
- chown [-R] 属主名:属组名 文件名
文件所在组
- 当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组 用ls ‐l命令可以看到文件的所有组 也可以使用chgrp 组名 文件名来修改文件所在的组。
其它组
- 除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
修改文件/目录的权限的命令:chmod
示例:修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,其他用户只有读的权限
chmod u=rwx,g=rw,o=r aaa.txt
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux进阶新增用户25061 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!