Linux
概述
是一种操作系统,Linux内核在开始是由林纳斯·托瓦兹写的。目前比较知名的发行版有Ubuntu,RedHat,CentOS等。
区别
Window | Linux | |
---|---|---|
免费与收费 | 收费 | 免费或少许费用 |
安全性 | 经常打补丁或者安装系统安全更新。但还是会中木马病毒 | 相对Windows平台来说要更加安全 |
使用习惯 | 普通用户基本上都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上手容易入门简单 | 兼具图形界面操作和完全的命令行操作,可以只用键盘完成一切操作,新手入门比较困难,需要一些学习和知道,一旦熟练之后效率极高 |
软件与支持 | 数量和质量的优势,不过大部分是收费软件。由微软官方提供支持和服务。 | 开源自由软件,用户可以修改定制和在发布,由于基本免费没有资金支持,部分软件质量和体验欠缺。由全球所有的Linux开发者和自由软件社区提供支持。 |
可定制性 | 封闭的,系统的可定制性很差 | 开源,可定制化非常强 |
应用场景 | 桌面操作系统主要使用的是windows | 支持百度,谷歌,淘宝等应用软件和服务的,是后台成千上万的Linux服务器主机。世界上大部分软件和服务都是运行在Linux之上的。 |
CentOS下载地址
网易镜像:mirrors.163.com/centos/7/is…
搜狐镜像:mirrors.sohu.com/centos/7/is…
网易镜像:mirrors.sohu.com/centos/7.5.…
使用前准备
在虚拟机上使用Linux系统,可以避免一些麻烦
1.安装VMWare虚拟机.
2.安装CentOS【需要检查BIOS虚拟化支持,在任务管理器的CPU中查看虚拟化是否启用】。此处安装的是7,后边的文件结构也以7为例。
3.安装Xftp,作用是从本机发送文件到虚拟机中。
4.安装Xshell,实际写命令时不在虚拟机上,而是使用Xshell连接虚拟机来写命令行。
由于虚拟机启动时ip是不确定的,所以为了在使用Xftp和Xshell时更省力,要在虚拟机命令行中修改网络服务的设置,给它配置一个固定的ip【这个ip不能与主机ip相同】。
文件
Linux系统中 一切皆文件。
目录结构
- /bin
- 是Binary的缩写,这个目录存放最经常使用的命令
- /sbin
- s就是SuperUser的意思,这里存放的是系统管理原使用的系统管理程序。
- /home
- 存放普通用户的主目录,在Linux中每一个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /root
- 该目录为系统管理员,也称作超级权限者的用户主目录。
- /lib
- 系统开机所需要的最基本的动态连接共享库,起作用类似于Windows的DLL文件。几乎所有应用都要使用到这些共享库。
- /lost+found
- 这个目录一般情况是空的,当系统非法关机后,这里会存放一些文件。
- /etc
- 所有的系统管理所需要的配置文件和子目录。
- /usr
- 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
- /boot
- 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,我们的个人文件或安装的文件不要放在这里。
- /proc
- 这个目录时一个虚拟的目录,他是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
- srv
- service的缩写,该目录存放一些服务启动之后需要提取的数据。
- /sys
- 这是Linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs。
- /tmp
- 这个目录是用来存放一些临时文件的。
- /dev
- 类似于windows的设备管理器,把所有的硬件用文件的形式存储。
- /media
- Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下。
- /mnt
- 系统剃光该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。
- /opt
- 这是给主机额外安装软件所摆放的目录。比如你安装了一个mysql数据库就可以放到这个目录下。默认是空的。
- /var
- 这个目录中存放着不断扩充着的东西,我们习惯将那些经常修改的目录放在这个目录下。包括各种日志文件。
- /selinux
- SELinux是一种安全子系统,它能控制程序只能访问特定文件。
编辑模式
使用vi或vim进入文件后,默认是一般模式。
在一般模式中可以进行删除、复制、粘贴等动作,但是没有办法编辑文件内容。
等到你按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式。
通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或 REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式
操作 | |
---|---|
进入编辑模式 | i, I, o, O, a, A |
退出编辑模式 | Esc |
命令模式
在一般模式中,输入**: / ?**中任何一个按钮,就可以将光标移动到最底下的那一行。在这个模式中,可以提供搜寻当前资料的动作,而读取、存盘、大量取代字符、离开vi、显示行号的动作都是在这个模式中达成的。
注意:一定要退出编辑模式。
基本语法
命令 | 功能 |
---|---|
:w | 保存 |
:q | 退出 |
:! | 强制执行 |
: %s/old字符/new字符 | 批量替换 |
/ 要查找的词 | n 查找下一个,N 往上查找 |
? 要查找的词 | n是查找上一个,N是往下查找 |
:set nu | 显示行号 |
:set nonu | 关闭行号 |
ZZ(shift+zz) :nohl | 没有修改文件直接退出,如果修改了文件保存后退 去除高亮显示 |
强制保存退出 | :wq! |
网络配置和系统管理操作
1查看网络ip和网关
①查看虚拟网络编辑器
②修改IP地址
找到NAT模式->修改子网
③查看网关【NAT设置】
网关改为192.168.6.2
2配置网络ip地址
①ifconfig配置网络接口
- 基本语法 查看当前网络ip ifconfig
②修改Ip地址【如果是centOS8语法会有不同】
-
[root@hadoop100 桌面]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
-
修改为以下选项
#IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议) BOOTPROTO=static #IP地址 IPADDR=192.168.6.100 #网关 GATEWAY=192.168.6.2 #域名解析器 DNS1=192.168.6.2
BOOTPROTO修改static
ONBOOT修改为yes
修改后,esc进入一般模式
输入:wq 保存退出
-
执行systemctl restart network命令
-
如果报错,reboot,重启虚拟机
-
修改windows的VMnet8网卡信息(也可以选择自动获取)
③ping 测试主机之间网络连通性
基本语法 -【ping 目的主机】
3.主机名
语法
本机主机名-hostname
修改主机名-vim /etc/hostname
修改后需要重启设备
4 .服务管理
基本语法(CentOS 7)
systemctl start 服务名 (功能描述:开启服务)
systemctl stop 服务名 (功能描述:关闭服务)
systemctl restart 服务名 (功能描述:重新启动服务)
systemctl status 服务名 (功能描述:查看服务状态)
systemctl --type service (功能描述:查看正在运行的服务)
自启动配置(CentOS 7)
systemctl list-unit-files (功能描述:查看所有服务器自启配置)
systemctl disable 服务名 (功能描述:关掉指定服务的自动启动)
systemctl enable 服务名 (功能描述:开启指定服务的自动启动)
systemctl is-enabled 服务名(功能描述:查看服务开机启动状态)
关机重启
在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
正确的关机流程为:
sync>shutdown>reboot>poweroff
基本语法
(1)sync (功能描述:将数据由内存同步到硬盘中)
(2)poweroff (功能描述:关闭系统,等同于shutdown -h now)
(3)reboot (功能描述:就是重启,等同于 shutdown -r now)
(4)shutdown [选项] 时间
shutdown的选项
选项 | 功能 |
---|---|
-h | -h=halt关机 |
-r | -r=reboot重启 |
参数
参数 | 功能 |
---|---|
now | 立刻关机 |
时间 | 等待多久后关机(时间单位是分钟) |
5 克隆虚拟机
步骤:
- 关闭要被克隆的虚拟机
- 找到克隆选项
- 选择创建完整克隆
- 设置克隆的虚拟机名称和存储过程
- 完成
注:完成克隆后,可以选择对克隆出来的虚拟机修改IP,主机名。如果执行了,那么重启一遍这个虚拟机就能生效了。
远程登录
Linux系统中是通过SSH服务实现的远程登录功能,默认ssh服务端口号为 22。
工具
Xshell6。
步骤
- 新建
- 新建会话中输入虚拟机ip地址
- 点击连接
- 保存
- 接受并保存ssh连接
- 输入账号【root】密码
- 连接成功
解决Xshell连接虚拟机慢的问题:
- 修改/etc/ssh目录下的配置文件sshd_config。命令:vim /etc/ssh/sshd_config
- 在sshd_config文件的115行,将UseDNS前面的#去掉,将值改为no。115行: UseDNS no
- 重启虚拟机,以后再使用Xshell连接虚拟机将会很快连接上。
常用基本命令
man
man [命令或配置文件] (功能描述:获得帮助信息)
信息 | 功能 |
---|---|
NAME | 命令的名称和单行描述 |
SYNOPSIS | 怎样使用命令 |
DESCRIPTION | 命令功能的深入讨论 |
EXAMPLES | 怎样使用命令的例子 |
SEE ALSO | 相关主题(通常是手册页) |
help
help 命令 (功能描述:获得shell内置命令的帮助信息)
快捷键
常用快捷键 | 功能 |
---|---|
ctrl + c | 停止进程 |
ctrl+l | 清屏;彻底清屏是:reset |
ctrl + q | 退出 |
善于用tab键 | 提示(更重要的是可以防止敲错) |
上下键 | 查找执行过的命令 |
ctrl +alt | linux和Windows之间切换 |
文件目录类命令
pwd显示当前工作目录的绝对路径
语法
pwd (功能描述:显示当前工作目录的绝对路径)
ls 列出目录的内容
语法
ls [选项] [目录或是文件]
选项 | 功能 |
---|---|
-a | 全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用) |
-l | 长数据串列出,包含文件的属性与权限等等数据;(常用) |
显示说明
每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小用byte来表示 建立或最近修改的时间 名字
cd切换目录
基本语法
cd [参数]
参数 | 功能 |
---|---|
cd 绝对路径 | 切换路径 |
cd相对路径 | 切换路径 |
cd ~或者cd | 回到自己的家目录 |
cd - | 回到上一次所在目录 |
cd .. | 回到当前目录的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷方式路径 |
mkdir 创建一个新的目录
基本语法
mkdir [选项] 要创建的目录
选项 | 功能 |
---|---|
-p | 创建多层目录 |
rmdir 删除一个空的目录
基本语法:
rmdir 要删除的空目录
touch 创建空文件
基本语法
touch 文件名称
cp 复制文件或目录
基本语法
cp [选项] source dest (功能描述:复制source文件到dest)
选项 | 功能 |
---|---|
-r | 递归复制整个文件夹 |
参数说明
参数 | 功能 |
---|---|
source | 源文件 |
dest | 目标文件 |
强制覆盖不提示的方法:\cp
rm 移除文件或目录
基本语法
rm [选项] deleteFile (功能描述:递归删除目录中所有内容)
选项 | 功能 |
---|---|
-r | 递归删除目录中所有内容 |
-f | 强制执行删除操作,而不提示用于进行确认。 |
-v | 显示指令的详细执行过程 |
mv 移动文件与目录或重命名
基本语法
(1)mv oldNameFile newNameFile (功能描述:重命名)
(2)mv /temp/movefile /targetFolder (功能描述:移动文件)
cat 查看文件内容
查看文件内容,从第一行开始显示。
基本语法
cat [选项] 要查看的文件
选项 | 功能描述 |
---|---|
-n | 显示所有行的行号,包括空行。 |
cat一般查看比较小的文件,一屏幕能显示全的。
more 文件内容分屏查看器
基本语法
more 要查看的文件
操作 | 功能说明 |
---|---|
空白键 (space) | 代表向下翻一页; |
Enter | 代表向下翻『一行』; |
q | 代表立刻离开 more ,不再显示该文件内容。 |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行的行号 |
:f | 输出文件名和当前行的行号 |
less 分屏显示文件内容
less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
基本语法
less 要查看的文件
操作 | 功能说明 |
---|---|
空白键 | 向下翻动一页; |
[pagedown] | 向下翻动一页 |
[pageup] | 向上翻动一页; |
/字串 | 向下搜寻『字串』的功能;n:向下查找;N:向上查找; |
?字串 | 向上搜寻『字串』的功能;n:向上查找;N:向下查找; |
q | 离开 less 这个程序; |
echo
echo输出内容到控制台
基本语法
echo [选项] [输出内容]
选项:
-e: 支持反斜线控制的字符转换
控制字符 | 作用 |
---|---|
\ | 输出\本身 |
\n | 换行符 |
\t | 制表符,也就是Tab键 |
tail 输出文件尾部内容
tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
基本语法
(1)tail 文件 (功能描述:查看文件后10行内容)
(2)tail -n 5 文件 (功能描述:查看文件后5行内容,5可以是任意行数)
(3)tail -f 文件 (功能描述:实时追踪该文档的所有更新)
选项 | 功能 |
---|---|
-n<行数> | 输出文件尾部n行内容 |
-f | 显示文件最新追加的内容,监视文件变化 |
> 覆盖 和 >> 追加
基本语法
(1)ll >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))
(2)ll >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)
(3)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)
(4)echo “内容” >> 文件
用户管理命令
useradd 添加新用户
基本语法
useradd 用户名 (功能描述:添加新用户)
useradd -g 组名 用户名 (功能描述:添加新用户到某个组)
passwd 设置用户密码
基本语法
passwd 用户名 (功能描述:设置用户密码)
cat /etc/passwd 查看创建了哪些用户
su 切换用户
基本语法
su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)
userdel 删除用户
基本语法
(1)userdel 用户名 (功能描述:删除用户但保存用户主目录)
(2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除)
sudo 设置普通用户具有root权限
-
添加zhangsan用户,并对其设置密码。
[root@hadoop101 ~]#useradd zhangsan [root@hadoop101 ~]#passwd zhangsan
-
修改配置文件
[root@hadoop101 ~]#vi /etc/sudoers
修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:
## Allow root to run any commands anywhere root ALL=(ALL) ALL atguigu ALL=(ALL) ALL
文件权限类
文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。
使用从左到右的10个字符表示,下标从0开始。
如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:
(1)0首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
- 代表文件
d 代表目录
l 链接文档(link file);
(2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User
(3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group
(4)第7-9位确定其他用户拥有该文件的权限 ---Other
chmod 改变权限
基本语法
第一种方式变更权限
chmod [{ugoa}{+-=}{rwx}] 文件或目录
第二种方式变更权限
chmod [mode=421 ] [文件或目录]
chown 改变所有者
基本语法
chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
选项 | 功能 |
---|---|
-R | 递归操作 |
搜索查找类
find 查找文件或者目录
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
基本语法
find [搜索范围] [选项]
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件。 |
grep 过滤查找及“|”管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法
grep 选项 查找内容 源文件
选项 | 功能 |
---|---|
-n | 显示匹配行及行号。 |
which 查找命令
查找命令在哪一个目录下
基本语法
which 命令
压缩解压类
gzip/gunzip 压缩
基本语法
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件**.gz** (功能描述:解压缩文件命令)
(1)只能压缩文件不能压缩目录
(2)不保留原来的文件
zip/unzip 压缩
基本语法
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
unzip [选项] XXX**.zip** (功能描述:解压缩文件)
zip选项 | 功能 |
---|---|
-r | 压缩目录 |
unzip选项 | 功能 |
---|---|
-d<目录> | 指定解压后文件的存放目录 |
tar 打包
基本语法
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式**.tar.gz**)
选项 | 功能 |
---|---|
-z | 打包同时压缩 |
-c | 产生**.tar****打包文件** |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-x | 解包**.tar****文件** |
磁盘分区类
df 查看磁盘空间使用情况
基本语法
df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)
选项 | 功能 |
---|---|
-h | 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; |
fdisk 查看分区
基本语法
fdisk -l (功能描述:查看磁盘分区详情)
选项 | 功能 |
---|---|
-l | 显示所有硬盘的分区列表 |
mount/umount 挂载/卸载
对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。
基本语法
mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)
umount 设备文件名或挂载点 (功能描述:卸载设备)
参数 | 功能 |
---|---|
-t vfstype | 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 光盘或光盘镜像:iso9660 DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat Windows NT ntfs文件系统:ntfs Mount Windows文件网络共享:smbfs UNIX(LINUX) 文件网络共享:nfs |
-o options | 主要用来描述设备或档案的挂接方式。常用的参数有: loop:用来把一个文件当成硬盘分区挂接上系统 ro:采用只读方式挂接设备 rw:采用读写方式挂接设备 iocharset:指定访问文件系统所用字符集 |
device | 要挂接(mount)的设备 |
dir | 设备在系统上的挂接点(mount point) |
进程线程类
ps 查看当前系统进程状态
基本语法
ps -aux | grep xxx (功能描述:查看系统中所有进程)
ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
选项 | 功能 |
---|---|
-a | 选择所有进程 |
-u | 显示所有用户的所有进程 |
-x | 显示没有终端的进程 |
PID:进程ID
PPID:父进程ID
如果想查看进程的CPU占用率和内存占用率,可以使用aux;
如果想查看进程的父进程ID可以使用ef;
kill 终止进程
基本语法
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
选项 | 功能 |
---|---|
-9 | 表示强迫进程立即停止 |
crond 系统定时任务
crond 服务管理
1 重新启动crond服务
systemctl restart crond
2 定时任务设置
crontab [选项]
选项 | 功能 |
---|---|
-e | 编辑crontab定时任务 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
软件包管理
RPM查询命令(rpm -qa)
基本语法
rpm -qa (功能描述:查询所安装的所有rpm软件包)
由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包
RPM卸载命令(rpm -e)
rpm -e RPM软件包
rpm -e --nodeps 软件包
选项 | 功能 |
---|---|
-e | 卸载软件包 |
--nodeps | 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。 |
RPM安装命令
rpm -ivh RPM包全名
选项 | 功能 |
---|---|
-i | -i=install,安装 |
-v | -v=verbose,显示详细信息 |
-h | -h=hash,进度条 |
--nodeps | --nodeps,不检测依赖进度 |
YUM仓库配置
YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
类似于java开发中的maven工具,可以从镜像网站上下载应用程序,并直接安装。
YUM的常用命令
yum [选项] [参数]
选项 | 功能 |
---|---|
-y | 对所有提问都回答“yes” |
参数 | 功能 |
---|---|
install | 安装rpm软件包 |
update | 更新rpm软件包 |
check-update | 检查是否有可用的更新rpm软件包 |
remove | 删除指定的rpm软件包 |
list | 显示软件包信息 |
clean | 清理yum过期的缓存 |
deplist | 显示yum软件包的所有依赖关系 |