发音 读法不下10种:/li'n^ks/(“里那克斯”)或/'li:nэks/(“里讷克斯”)或/li'nju:ks/(“里纽克斯”) ... linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多企业级 的项目都会部署到Linux/unix系统上。 常见的操作系统(windows、IOS、Android、Mac) windows和linux对比的优劣势 Windows主要面对个人用户,主要用于日常工作以及玩游戏,软件游戏丰富;而Linux主要面对开发者用 户,主要用于程序开发,软件较少,对于普通用户来说,用处不大。 Linux更受开发者的青睐,由于Linux系统稳定、安全、强大,非常适合作为开发环境或实际生产环境。相 反,Windows则聚焦在桌面操作系统上,适合大多数的计算机用户,能提供丰富的软件服务和简单的操作方 式。事实上Linux也一直在尝试为众多的家庭用户做出改变,光是桌面环境Linux就有Gnome、Unity等风 格。 GUI & CLI
百科:Linux发展史
从技术上来说,李纳斯•托瓦兹开发的 Linux 只是一个内核。内核指的是一个提供设备驱动、文件系统、进程 管理、网络通信等功能的系统软件,内核并不是一套完整的操作系统,它只是操作系统的核心。一些组织或 厂商将 Linux 内核与各种软件和文档包装起来,并提供系统安装界面和系统配置、设定与管理工具,就构成 了 Linux 的发行版本。 在 Linux 内核的发展过程中,各种 Linux 发行版本起了巨大的作用,正是它们推动了 Linux 的应用,从而让 更多的人开始关注 Linux。因此,把 Red Hat、Ubuntu、SUSE 等直接说成 Linux 其实是不确切的,它们是 Linux 的发行版本,更确切地说,应该叫作“unix为核心的操作系统软件包”。 Linux 的各个发行版本使用的是同一个 Linux 内核,因此在内核层不存在什么兼容性问题,每个版本有不一 样的感觉,只是在发行版本的最外层(由发行商整合开发的应用)才有所体现。 目前Linux 的发行版本大体有4大体系:
而我们的CentOS7 属于红帽体系下的产品。
2.1.1 介绍 VMware Workstation(中文名“威睿工作站”)是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的 桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先 进的技术胜过了市面上其他的虚拟计算机软件。对于企业的 IT开发人员和系统管理员而言, VMware在虚拟 网路,实时快照,拖曳共享文件夹,支持 PXE 等方面的特点使它成为必不可少的工具。 主要通途: 目前我们使用的windows系统,如果想使用Linux有三种方案可以选择: 卸载本机的Wondows安装Linux 电脑装双系统 通过虚拟机在windows上安装Linux 其他产品推荐: VirtualBox
VMware安装centos7_未系上弦月的博客-CSDN博客
右键虚拟机,鼠标移动快照,点击拍摄快照,保存快照。如果后续环境出现问题可以恢复快照到快照保存的状态
右键虚拟机,移动到管理,点击克隆,会克隆出一个和当前一样环境的虚拟机。
linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其 他的目录。 深刻理解linux树状文件目录是非常重要的,这里我给大家说明一下。 记住一句经典的话:在Linux世界里,一切皆文件。
具体结构介绍(记住重点的,其余可以了解)
/bin [重点] (/usr/bin 、 /usr/local/bin) 是Binary的缩写, 这个目录存放着最经常使用的命令 /sbin [重点] (/usr/sbin 、 /usr/local/sbin) s就是Super User的意思,这里存放的是系统管理员使用的 系统管理程序。
/home [重点] 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用 户的账号命名的。
/root [重点] 该目录为系统管理员,也称作超级权限者的用户主目录。
/etc [重点] 所有的系统管理所需要的配置文件和子目录 my.conf
/usr [重点] 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与 windows下的program files目录。
/opt [重点] 这是给主机额外安装软件所摆放的目录。如安装ORACLE数据库就可放到该目录下。默认 为空。
/usr/local [重点] 这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程 序。
/boot [重点] 存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
/var [重点] 这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括 各种日志文件。
/tmp 这个目录是用来存放一些临时文件的。
启动,关机,重启
挂起:挂起不是关机,下次打开还是会在那个界面
shutdown –h now 立该进行关机 【halt】
shudown -h 1 “hello,关机" "hello, 1 分钟后会关机了"
shutdown –r now 现在重新启动计算机 [reboot]
halt 关机,作用和上面一样.
reboot 现在重新启动计算机
sync 把内存的数据同步到磁盘.
注意细节: 不管是重启系统还是关闭系统,首先要运行sync命令,把内存中的数据写到磁盘中
查看本机ip地址 ip addr
文件夹
进入/opt cd /opt
进入usr/local 文件夹 cd /usr/1ocal/
查看当前文件夹下的所有文件信息 ls
当前在local目录下进入进入etc root@sunwz Tocal]# cd etc/
返回上一个层级 cd ..
当前在local目录下进入进入etc root@sunwz local]# ./cd etc/ /表示当前文件夹
所有的 Linux 系统都会内建 vi 文本编辑器。就如同window的记事本默认的功能一样。
而Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程 序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
正常模式: 以 vim 打开一个文件就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按 键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处 理你的文件数据。在正常模式下可以使用快捷键
插入模式(编辑模式): 按下i(insert), I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.
命令行模式 在这个模式当中, 可以提供你相关指令,完成读取、存盘、替换、离开 vim 、显示行号等的动作则是在此模 式中达成的!
vim的使用和vi是一致的,只不过功能比vi更强大。
输入vim检测是否可用 vim安装命令 yum-y install vim*
1. 拷贝当前行 yy , 拷贝当前行向下的5行 5yy,并粘贴 p。【快捷键在正常模式下使用】
2. 删除当前行 dd , 删除当前行向下的5行 5dd
3. 在文件中查找某个单词 [命令模式下 /关键字 , 回车 查找 , 输入 n 就是查找下一个 ]
4. 设置文件的行号,取消文件的行号.[命令行下 : set nu 和 :set nonu]
5. 编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg] 【正常模式下】
6. 在一个文件中输入 “hello” ,然后又撤销这个动作 u 【正常模式下】
7. 编辑 /etc/profile 文件,并将光标移动到 20行 shift+g
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请 一个账号,然后以这个账号的身份进入系统。
基本语法 useradd 用户名
同时可以给用户指定登录密码: passwd 用户名
用户创建的时候会默认给用户创建一个和用户名相同的一个家目录。当使用创建的用户登录的时候,cd -默认回到自己的家目录中。
当我们创建用户的时候,如果想将这用户指定到某一个家目录中,可以使用命令
useradd -d /home/lisidejia lisi
用户切换:命令 su 用户名如果是权限低的用户切换权限高的用户,需要输入密码,如果是权限高的用户切换低的用户,不需要密码 su root 需要密码 su lisi(root权限高于lisi不需要输入密码)
基本语法:
userdel 用户名 默认是保留家目录
userdel zhangsan
userdel -r 用户名 用户和家目录一起删除
userdel -r zhangsan
基本语法:
id 用户名
id zhangsan
如果想查看当前系统所有的用户信息 cat /etc/passwd
在操作Linux中,如果当前用户的权限不够,可以通过 su - 指令,切换到高权限用户,比如root
基本语法: su – 切换用户名
su root
细节说明 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。 当需要返回到原来用户时,使用exit指令如果 su – 没有带用户名,则默认切换到root用户
基本语法 whoami/ who am I
因为一个系统下可能存在若干个用户,如果管理员统一为每一个用户都指定一遍权限,那是很麻烦的,随意linux有组的概念,我们可以
给这个组直接指定权限,那么该组下的用户就可以直接获取当前组的权限并使用。
类似于角色,系统可以对有共性的多个用户进行统一的管理。
cat /etc/group 查看之后发现之前创建的zhangsan、lisi、用户因为没有指定过组,默认自己一组(冗余信息)
语法: groupadd 组名
groupadd xiangmu
增加用户时直接加上组
语法: useradd –g 用户组 用户名
useradd -g xaingmu zhangsan
语法: usermod –g 新的组名 用户名
usermod -g xiaoshou zhangsan
语法: groupdel 组名
groupdel xiaoshou
/etc/passwd 文件
用户(user)的配置文件,记录用户的各种信息
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
组(group)的配置文/etc/group
文件时间:不活动时间:失效时间:保留 [件,记录Linux包含的组的信息
每行含义:组名:口令:组标识号:组内用户列表
基本介绍:
运行级别说明: 0 :关机
1 :单用户 [类似安全模式, 这个模式可以帮助找回root密码]
2:多用户状态没有网络服务
3:多用户状态有网络服务 [使用]
4:系统未使用保留给用户
5:图形界面 【】
6:系统重启 常用运行级别是3和5 ,要修改默认的运行级别可改文件 /etc/inittab 的id:5:initdefault:这一行中的数字
命令:init [012356]
语法: man [命令或配置文件] (功能描述:获得帮助信息)
案例:man ls
语法: help 命令 (功能描述:获得shell内置命令的帮助信息)
案例:查看cd命令的帮助信息 help cd
语法 : pwd (功能描述:显示当前工作目录的绝对路径)
案例:显示当前工作目录的绝对路径
语法 : ls [选项] [目录或是文件]
常用选项
-a :显示当前目录所有的文件和目录,包括隐藏的 (文件名以.开头就是隐藏)。
-l :以列表的方式显示信息 ll
-h : 显示文件大小时,以 k , m, G单位显示
ls -lh # 以人类可读的方式显示当前目录中的文件和目录大小
ls -t # 按照修改时间排序显示当前目录中的文件和目录
ls -R # 递归显示当前目录中的所有文件和子目录
ls -l /etc/passwd # 显示/etc/passwd文件的详细信息
语法: cd [参数] (功能描述:切换到指定目录)
常用参数
绝对路径【从 / 开始定位】和相对路径【从当前的位置开始定位】
cd ~ 或者cd :回到自己的家目录
cd .. 回到当前目录的上一级目录
案例1:使用绝对路径切换到root目录 [cd /root]
案例2: 使用相对路径到/root 目录 [ cd ../root]
案例3:表示回到当前目录的上一级目录 [ cd ..] 案例4:回到家目录 [ cd ~ ]
mkdir [make directory]指令用于创建目录
语法: mkdir [选项] 要创建的目录 mkdir ss
rmdir [remove directory]指令删除空目录
语法: rmdir [选项] 要删除的空目录
案例1:删除一个目录 /home/dog
使用细节 rmdir 删除的是空目录,如果目录下有内容时无法删除的。
提示:如果需要删除非空目录,需要使用 rm -rf 要删除的目录, -r 删除多层级, -f linux特点,所有添加-f都 表示强制删除不提示
文件创建方式一:
touch指令创建空文件, 还可以更新文件的修改时间
基本语法: touch 文件名称 应用实例 案例1: 创建一个空文件 hello.txt
说明:如果文件存在,则表示刷新该文件的修改时间.
文件创建方式二:用vi编辑一个空白文件
cp [copy 拷贝]指令拷贝文件到指定目录
基本语法 cp [选项] source【源】 dest【目的文件】
常用选项 -r :递归复制整个文件夹
[root@sunwz opt]# cp aa.xx /tmp/
[root@sunwz opt]# cd ~
[root@sunwz ~]# cp /opt/aa.xx /tmp/
[root@sunwz ~]# cp -r /opt/ww /tmp/
[root@sunwz ~]# cp -r /opt/xx /tmp/
rm 指令移除文件或目录 基本语法
rm [选项] 要删除的文件或目录
常用选项
-r :递归删除整个文件夹
-f : 强制删除不提示
使用细节
强制删除不提示的方法:带上 -f 参数即可 rm –rf /home/bbb
mv 移动文件与目录或重命名
基本语法 mv oldNameFile newNameFile (功能描述:重命名)
mv /temp/movefile /targetFolder (功能描述:移动文件或目录)
应用实例 案例1: 将 /home/aaa.txt 文件 重新命名为 pig.txt
案例2:将 /home/pig.txt 文件 移动到 /root 目录下
mv /opt/aa.xx /tmp/
mv /opt/ww/ /tmp/
mv /opt/xx/ /tmp/
mv /tmp/aa.xx /tmp/aa.java
mv /tmp/ww /tmp/xx
mv /tmp/xx /tmp/rr
cat 查看文件内容 基本语法
cat [选项] 要查看的文件
-n :显示行号 cat -n /etc/profile
使用细节 cat 只能浏览文件,而不能修改文件 注意:一旦文件过大不能用cat
more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
基本语法:more 要查看的文件
案例: 采用more查看文件 /etc/profile more /etc/profile
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终 端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对 于显示大型文件具有较高的效率。
基本语法: less 要查看的文件 案例: 采用less查看一个大文件文件 less xx.txt
echo输出内容到控制台。
基本语法:echo [选项] [输出内容]
案例: 使用echo 指令输出环境变量 echo $PATH
head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容
基本语法: head 文件 (功能描述:查看文件头10行内容)
head -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
案例: 查看/etc/profile 的前面5行代码 head -n 5 /etc/profile
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
基本语法
1. tail 文件 (功能描述:查看文件头10行内容)
2. tail -n 5 文件 (功能描述:查看文件头5行内容,5可以是任意行数)
3. tail -f 文件 (功能描述:实时追踪该文档的所有更新)
案例2: 实时监控一个文档, 看看到文件有变化时,是否看到, 实时的追加日期
tail -f /opt/xx.txt
指令 > 输出重定向和 >> 追加
基本语法 1. ls -l >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
2. ls -al >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾) 1 echo $PATH
3. cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
4. echo "内容">> 文件
案例1: 将 /home 目录下的文件列表 写入到 /home/info.txt 中
ls –l /home/ > /home/info.txt [如果文件不存在,则会自动创建]
案例2: 将当前日历信息 追加到 /home/mycal 文件中
date >> /home/mycal.
查看已经执行过历史命令,也可以执行历史指令
基本语法 :history (功能描述:查看已经执行过历史命令)
案例1: 显示所有的历史命令
案例2: 显示最近使用过的10个指令。
案例3: 执行历史编号为5的指令 !5 # !行号 不是显示历史指令, 而是直接执行历史的哪个指令。 !50
基本语法 1. date (功能描述:显示当前时间)
2. date +%Y (功能描述:显示当前年份)
3. date +%m (功能描述:显示当前月份)
4. date +%d (功能描述:显示当前是哪一天)
5. date "+%Y-%m-%d %H:%M:%S"(功能描述:显示年月日时分秒)java中 yyyy-MM-dd hh:mm:ss.S
案例1: 显示当前时间信息
案例2: 显示当前时间年月日
案例3: 显示当前时间年月日时分秒
[root@sunwz ww]# date +%Y-%m-%d" "%H:%M:%S 2023-03-13 22:12:21
[root@sunwz ww]# date +%Y-%m-%d' '%H:%M:%S 2023-03-13 22:12:28
[root@sunwz ww]# date "+%Y-%m-%d %H:%M:%S" 2023-03-13 22:12:59 1
基本语法:
date -s 字符串时间应用实例
案例1: 设置系统当前时间 , 比如设置成 2020-11-11 11:22:22
[root@sunwz ww]# date -s "2023-3-15 20:16:46"
查看日历指令 基本语法:cal [选项](功能描述:不加选项,显示本月日历)
案例: 显示2020年日历 cal 2020
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。 基本语法:find [搜索范围] [选项]
案例1: 按文件名:根据名称查找/home 目录下的hello.txt文件
find /home -name hello.txt
案例2:按拥有者:查找/opt目录下,用户名称为 nobody的文件
find /opt -user nobody
案例3:查找整个linux系统下大于10M的文件(+n 大于 -n小于 n等于)
find / -size +10M
locate指令可以快速定位文件路径。
locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实 现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度, 管理员必须定期更新locate时刻。
基本语法: locate 搜索文件 特别说明 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
案例1: 请使用locate 指令快速定位 hello.txt 文件所在目录
[root@sunwz ~]# yum list | grep locate mlocate
[root@sunwz ~]# yum -y install locate*
updatedb // 创建locate的数据库
locate hello.txt
6.8.3 grep指令和 管道符号 |
grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
基本语法: grep [选项] 查找内容 源文件 常用选项
-n 显示匹配行及行号。-i 忽略字母大小写
案例1: 请在 /etc/profile 文件中,查找 "if" 所在行,并且显示行号
grep –n if /etc/profile #在/etc/profile 中查找 if ,并显示行,区别大小写]
grep –ni if /etc/profile #在/etc/profile 中查找 if ,并显示行,不区别大小写]
ll /etc/ | grep pass less /opt/ww/西游记.txt | grep 大闹天宫
ps -aux | grep nginx
gzip 用于压缩文件, gunzip 用于解压的
基本语法 gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
案例1: gzip压缩, 将 /home下的 hello.txt文件进行压缩 gzip /home/hello.txt
案例2: gunzip压缩, 将 /home下的 hello.txt.gz 文件进行解压缩 gunzip /home/hello.txt.gz
zip 用于压缩文件, unzip 用于解压的,这个在项目打包发布中很有用的
基本语法
zip [选项] XXX.zip 需要压缩的内容(功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
zip常用选项 -r:递归压缩,即压缩目录 unzip的常用选项
-d :指定解压后文件的存放目录
案例1: 将 /home下的 所有文件进行压缩成 mypackage.zip [退出home]
zip -r mypackage.zip /home/
案例2: 将 mypackge.zip 解压到 /opt/tmp 目录下
unzip –d /opt/tmp mypackage.zip #如果/opt/tmp 不存在,会自动创建
tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。 [可以压缩,和解压]
基本语法 tar [选项] XXX.tar.gz 打包的内容/目录 (功能描述:打包目录,压缩后的文件格式.tar.gz) 选项说明
案例1: 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz 【zcvf】 zxvf
tar zxvf /home/a1.txt /home/a2.txt
一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。 RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,类似windows的setup.exe,这一文 件格式名称虽然打上了RedHat的标志,但理念是通用的。
Yum 是一个Shell 软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自 动处理依赖性关系,并且一次安装所有依赖的软件包。
yum的基本指令
查询yum服务器是否有需要安装的软件
yum list | grep xx软件列表
安装指定的yum包 yum install xxx 下载安装
案例:请使用yum的方式来安装firefox 指令 Yum install firefox //会自动的下载适合你系统的最新版本
yum list installed #查看已经安装的
[swz@root opt]# yum list installed | grep firefox yum remove firefox # 删除安装的软件