操作系统
什么是操作系统
操作系统是负责整个系统最基本功能和系统管理,包括内核、设备驱动程序、启动引导程序、命令行shell或其它种类的用户界面、基本的文件管理工具和系统工具。
用户界面是操作系统的外在表象,内核是操作系统的内在核心。
- 操作系统(Operation System,简称OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石;
- 操作系统本质上是运行在计算机上的软件程序 ;
- 为用户提供一个与系统交互的操作界面 ;
- 操作系统分内核与外壳(我们可以把外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序)。
什么是内核
内核由一系列程序组成,包括负责响应中断的中断服务程序、负责管理多个进程从而分享处理器时间的调度程序、负责管理地址空间的内存管理程序、网络、进程间通信的系统服务程序等。内核负责管理系统的硬件设备。
内核空间 VS 用户空间
内核空间表示内核拥有的内存空间,用户空间表示用户程序执行时的内存空间。
内核拥有直接访问硬件设备的所有权限,用户程序不能直接访问硬件设备,因此用户程序通过系统调用和内核通信来运行。
Linux 内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同字长(也就是单个 CPU 指令可以处理数据的最大长度)的处理器,地址空间的范围也不同。
用户态切换到内核态的三种方式:
- 系统调用,也即是应用程序使用OS提供的接口调用内核功能。
- 异常,这是一种被动切换到内核态的方法,当程序在用户态执行时,遇到了未知异常,例如缺页异常。
- 外部中断,也是一种被动切换到内核态的方法,当外设完成用户请求的操作后会发出中断信号,CPU会停止当前进程的调度,转而处理中断处理函数所定义的操作。例如硬盘读写,或者网络IO,此时也会切换进入内核态。
当应用程序进程创建并开始运行时,都处于用户态。当需要用到磁盘、网络读写等操作时候调用操作系统提供接口(系统调用)来进入内核态,然后执行完毕后返回用户态,在这里,一般的应用程序不能随意操作内核态数据,具有一定的保护作用。
内存映射
内存映射,其实就是将虚拟内存地址映射到物理内存地址。为了完成内存映射,内核为每个进程都维护了一张页表,记录虚拟地址与物理地址的映射关系。
页表实际上存储在 CPU 的内存管理单元 MMU 中,这样,正常情况下,处理器就可以直接通过硬件,找出要访问的内存。而当进程访问的虚拟地址在页表中查不到时,系统会产生一个缺页异常,进入内核空间分配物理内存、更新进程页表,最后再返回用户空间,恢复进程的运行。
Linux简介
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程
和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Unix: 最早的多用户、多任务操作系统 。按照操作系统的分类,属于分时操作系统。Unix 大多被用在服务器、工作站,现在也有用在个人计算机上。它在创建互联网、计算机网络或客户端/服务器模型方面发挥着非常重要的作用。
Linux诞生
1991年,芬兰的业余计算机爱好者林纳斯·托瓦兹 (Linus Torvalds)编写了一款类似Minix的系统(基于微内核架构的类Unix操作系统)被ftp管理员命名为Linux 加入到自由软件基金的GNU计划中;
Linux的诞生显得充满了偶然。林纳斯经常要用他的终端仿真器(Terminal Emulator)去访问大学主机上的新闻组和邮件,为了方便读写和下载文件,他自己编写了磁盘驱动程序和文件系统,这些在后来成为了Linux第一个内核的雏形。当时,他年仅21岁 。
- Linux以一只可爱的企鹅作为标志,象征着敢作敢为、热爱生活。
Linux的分类
Linux根据原生程度,分为两种:
Linux内核版本
Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等
官网: www.kernel.org
Linux发行版本
一些组织或公司在内核版基础上进行二次开发而重新发行的版本。Linux发行版本有很多种(ubuntu和CentOS用的都很多,初学建议选择CentOS),如下图所示:
#查看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需要与主机网卡一致。其网络结构如下图所示:
NAT网络地址转换模式: 在NAT模式中,主机网卡直接与虚拟NAT设备相连,然后虚拟NAT设备与虚拟DHCP服务器一起连接在虚拟交换机VMnet8上,这样就实现了虚拟机联网。 在这种模式下宿主机成为双网卡主机,同时参与现有的宿主局域网和新建的虚拟局域网,但由于加设了一个虚拟的NAT服务器,使得虚拟局域网内的虚拟机在对外访问时,使用的则是宿主机的IP地址,这样从外部网络来看,只能看到宿主机,完全看不到新建的虚拟局域网。
- **Host-only主机模式:**Host-Only模式其实就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。其网络结构如下图所示:
编辑网卡配置文件
ens33 对应网卡名 不同机器名字不同 /etc/sysconfig/network-scripts/ifcfg-
vim /etc/sysconfig/network-scripts/ifcfg-ens33
虚拟网卡配置文件说明:
(不要复制这份配置,代码块导致格式有问题)
网络类型为以太网
TYPE=Ethernet
#dhcp 动态IP static 静态IP
BOOTPROTO=static
网卡设备名,设备名一定要跟文件名一致 (注意修改)
DEVICE=ens33
#在系统启动时是否激活网卡
ONBOOT=yes
#设置虚拟机ip地址
IPADDR=192.168.3.10
#设置子网掩码
NETMASK=255.255.255.0
#设置虚拟机网关
GATEMAY=192.168.3.2
#设置虚拟机DNS,8.8.8.8为Google提供的免费DNS服务器的IP地址
DNS1=8.8.8.8
复制以下配置修改
TYPE=Ethernet
BOOTPROTO=static
DEVICE=eno16777736
ONBOOT=yes
IPADDR=192.168.3.100
NETMASK=255.255.255.0
GATEWAY=192.168.3.2
DNS1=8.8.8.8
#修改主机名
hostnamectl set-hostname xxx
#关闭防火墙
systemctl stop firewalld # 临时关闭防火墙
systemctl disable firewalld # 禁止开机启动
#重启网络服务
service network restart
测试是否联网
ping www.baidu.com
#查看ip和网卡信息
ifconfig
配置文件格式问题造成联网失败:
[root@localhost ~]# ping www.baidu.com
ping: unknown host www.baidu.com
#问题排查
[root@localhost ~]# ping 8.8.8.8
connect: Network is unreachable
#查看路由表
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.3.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
。。。
Linux文件系统
在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。也就是说在Linux系统中有一个重要的概念:一切都是文件。
文件目录结构
Linux的目录结构如下:
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编辑器是Linux中的强大组件,是vi编辑器的加强版,vim编辑器的命令和快捷方式有很多,这里列出一些常用命令。
在实际开发中,使用vim编辑器主要作用就是修改配置文件和编写shell脚本,下面是一般步骤:
vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q! (输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。)
命令模式
用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行行首
- rm -rf 文件: 删除文件
同目录删除:熟记 rm -rf 文件 即可
文件的压缩命令
1)打包并压缩文件:
Linux中的打包文件一般是以.tar结尾的,压缩的文件一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。 命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件 其中:
z:调用gzip压缩命令进行压缩
c:打包文件
v:显示运行过程
f:指定文件名
比如:加入test目录下有三个文件分别是 :aaa.txt bbb.txt ccc.txt,如果我们要打包test目录并指定压缩后的压缩包名称为test.tar.gz可以使用命令:
tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt
或
tar -zcvf test.tar.gz /test/
2)解压压缩包:
命令:tar [-xvf] 压缩文件
其中:x:代表解压
示例:
#将/test下的test.tar.gz解压到当前目录下可以使用命令
tar -xvf test.tar.gz
#将/test下的test.tar.gz解压到根目录/usr下
#(- C代表指定解压的位置)
tar -xvf xxx.tar.gz -C /usr
zip和unzip命令
#zip 命令
#将 test.txt 文件压缩为 test.zip ,当然也可以指定压缩包的目录,例如 /root/test.zip
zip test.zip test.txt
#默认将文件解压到当前目录,如果要解压到指定目录,可以加上 -d 选项
unzip test.zip
权限命令
操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在Linux中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。
通过 ls -l (缩写ll)命令我们可以 查看某个目录下的文件或目录的权限
每一列的内容的信息解释如下:
文件的类型:
- d:代表目录
- -:代表文件
- l:代表链接(可以认为是window中的快捷方式)
- b:表示为装置文件里面的可供储存的接口设备(可随机存取装置);
- c:表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
后面的9位分为3组,每3位置为一组,分别代表属主的权限,与当前用户同组的用户的权限,其他用户的权限
- r:代表权限是可读,r也可以用数字4表示
- w:代表权限是可写,w也可以用数字2表示
x:代表权限是可执行,x也可以用数字1表示
文件和目录权限的区别:
对文件和目录而言,读写执行表示不同的意义。
对于文件:
权限名称 | 可执行操作 |
---|---|
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
上述示例还可以使用数字表示:chmod 764 aaa.txt
chkconfig命令
语法
chkconfig [–add][–del][–list][系统服务] 或 chkconfig [–level <等级代号>][系统服务][on/off/reset]
参数:
- –add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
- –del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
- –level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕。
列出chkconfig知道的所有的服务
chkconfig --list
开启Telnet服务
chkconfig telnet on
关闭Telnet服务
chkconfig telnet off
zookeeper开机自动启动:
新建一个脚本zookeeper
为新建的脚本zookeeper添加可执行权限,命令是:chmod +x zookeeper
把zookeeper这个脚本添加到开机启动项里面,命令是:chkconfig --add zookeeper
如果想看看是否添加成功,命令是:chkconfig --list
zookeeper脚本内容:
#!/bin/sh
chkconfig: 2345 10 90
description: zookeeper
processname: zookeeper
zk_path=/usr/local/soft/zookeeper-3.4.9/bin/
case $1 in
start) su root ${zk_path}/zkServer.sh start;;
stop) su root ${zk_path}/zkServer.sh stop;;
status) su root ${zk_path}/zkServer.sh status;;
restart) su root ${zk_path}/zkServer.sh restart;;
*) echo "require start|stop|status|restart";;
esac
将脚本移动到/etc/rc.d/init.d
目录下
cd /etc/rc.d/init.d
cp ~/shell/zookeeper zookeeper
增加脚本的可执行权限
chmod +x zookeeper
#添加脚本到开机自动启动项目中
cd /etc/rc.d/init.d
chkconfig --add zookeeper
chkconfig zookeeper on
Linux 用户管理
用户管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
Linux用户管理相关命令:
- useradd 选项 用户名:添加用户账号
- userdel 选项 用户名:删除用户帐号
- usermod 选项 用户名:修改帐号
- passwd 用户名:更改或创建用户的密码
- passwd -S 用户名 :显示用户账号密码信息
- passwd -d 用户名: 清除用户密码
useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.也可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文中。该文件内容的解释:用户名:密码:用户id:组id:用户说明:用户的主目录:用户使用的shell环境(默认为bash)
passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
用户组管理
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。
Linux系统用户组的管理相关命令:
- groupadd 选项 用户组 :增加一个新的用户组
- groupdel 用户组:要删除一个已有的用户组
- groupmod 选项 用户组 : 修改用户组的属性
其他常用命令
- pwd: 显示当前所在位置
- grep 要搜索的字符串 要搜索的文件 --color: 搜索命令,–color代表高亮显示
- ps -ef/ps aux: 这两个命令都是查看当前系统正在运行进程,两者的区别是展示格式不同。如果想要查看特定的进程可以使用这样的格式:ps aux|grep redis (查看包括redis字符串的进程)
注意:如果直接用ps((Process Status))命令,会显示所有进程的状态,通常结合grep命令查看某进程的状态。
- kill -9 进程的pid: 杀死进程(-9 表示强制终止。)
先用ps查找进程,然后用kill杀掉
- 网络通信命令:
- 查看当前系统的网卡信息:ifconfig
- 查看与某台机器的连接情况:ping
- 查看当前系统的端口:
- an 所有的连接和端口
- tuln 查看正在监听TCP(t)和UDP(u)的端口 ,例如:netstat -tuln | grep LISTEN
- rn 查看网关 route -n
- shutdown: shutdown -h now: 指定现在立即关机;shutdown +5 “System will shutdown after 5 minutes”:指定5分钟后关机,同时送出警告信息给登入用户。
- reboot: 重开机。
- reboot -w: 做个重开机的模拟(只有纪录并不会真的重开机)。
Linux软件安装
yum命令
yum常用命令
- 1.列出所有可更新的软件清单命令:yum check-update
- 2.更新所有软件命令:yum update
- 3.仅安装指定的软件命令:yum install <package_name>
- 4.仅更新指定的软件命令:yum update <package_name>
- 5.列出所有可安裝的软件清单命令:yum list
- 6.删除软件包命令:yum remove <package_name>
- 7.查找软件包 命令:yum search
vim安装
安装完Centos后,它默认的是安装了VI编辑器,VIM是没有安装的,所以我们在使用vim test.txt时会提示: vim command not found
vim编辑器需要安装三个包:
vim-enhanced-7.0.109-7.el5
vim-minimal-7.0.109-7.el5
vim-common-7.0.109-7.el5
#查看一下你本机已经存在的包,确认一下你的VIM是否已经安装: 如何vim已经正确安装,则会显示上面三个包的名称
rpm -qa|grep vim
如果缺少了其中某个,比如说: vim-enhanced这个包少了,执行:
yum -y install vim-enhanced
#如果上面三个包一个都没有显示,则直接输入命令:
yum -y install vim*
jdk安装
- 用JDK安装包安装
查看是否已经安装JDK:rpm -qa | grep -i java
若有则删除:rpm -e --nodeps java-xxx,删除所有相关的java
下载jdk8安装包,将gz压缩文件放到指定目录如/usr/local,解压:tar -zxvf jdk-8u181-linux-x64.tar.gz
设置全局变量:vim /etc/profile,追加
export JAVA_HOME=/usr/local/jdk1.8.0_181
export CLASSPATH=$JAVA_HOME/lib/
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
source /etc/profile
java -version
- 用yum方式安装(无需配置环境变量)
检索yum中有没有java1.8的包:yum list java-1.8*
yum install java-1.8.0-openjdk* -y
#使用env命令显示所有的环境变量
env
#显示环境变量PATH
echo $PATH
临时生效:使用export修改环境变量,只在当前会话生效
export LANG=en_CN.UTF-8
福利领取
更多面试题关注B哥公众号:java2b(微信搜索)