01.Linux基础
Linux是一套免费试用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的UNIX工作软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络核心的设计思想,是一个性能稳定的多用户网络操作系统。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debatin、Fedora、SuSE、OpenSUSE。
1.1 linux和window的对比
1.2 Linux目录结构
-
/bin (/usr/bin 、 /usr/local/bin)
bin是Binary的缩写, 这个目录存放着最经常使用的命令 。
-
/sbin (/usr/sbin 、 /usr/local/sbin)
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
-
/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
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
-
/usr/local
这是另一个给主机额外安装软件所摆放的目录。一般是通过编译源码方式安装的程序。
-
/var
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
-
/selinux
SELinux是一种安全子系统,它能控制程序只能访问特定文件。
二、VI/VIM编辑器
VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。
VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。
若vim未安装,则执行命令:yum -y install vim-enhanced
2.1 一般模式
以vi打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中, 你可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。
常用语法:
语法 | 功能描述 |
---|---|
yy | 复制光标当前一行 |
y数字y | 复制一段(从第几行到第几行) |
p | 箭头移动到目的行粘贴 |
u | 撤销上一步 |
dd | 删除光标当前行 |
d数字d | 删除光标(含)后多少行 |
x | 删除一个字母,相当于del,向后删 |
X | 删除一个字母,相当于Backspace,向前删 |
yw | 复制一个词 |
dw | 删除一个词 |
shift+^ | 移动到行头 |
shift+$ | 移动到行尾 |
gg或者1+G | 移动到页头 |
G | 移动到页尾 |
数字+G(先输入数字,在按G) | 移动到目标行 |
2.2 编辑模式
在一般模式中可以进行删除、复制、粘贴等的动作,但是无法编辑文件内容!要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。
进入编辑模式:
按键 | 功能 |
---|---|
i | 当前光标前 |
a | 当前光标后 |
o | 当前光标行的下一行 |
I | 光标所在行最前 |
A | 光标所在行最后 |
O | 当前光标行的上一行 |
退出编辑模式:ESC
2.3 指令模式
在一般模式当中,输入『 : / ?』3个中的任何一个按钮,就可以将光标移动到最底下那一行。
命令 | 功能 |
---|---|
:w | 保存 |
:q | 退出 |
:! | 强制执行 |
/ 要查找的词 | n 查找下一个,N 往上查找 |
? 要查找的词 | n是查找上一个,N是往下查找 |
:set nu | 显示行号 |
:set nonu | 关闭行号 |
ZZ(shift+zz) | 没有修改文件直接退出,如果修改了文件保存后退出 |
退出:强制保存退出 :wq!
三、网络配置操作
3.1 查看网络ip地址
查看当前网络ip:ifconfig
ping测试主机之间网络连通性:ping 目的主机
3.2 配置主机名
查看当前服务器主机名称:[root@hadoop ~]# hostname
修改主机名称:
[root@hadoop ~]# vi /etc/sysconfig/network
内容:
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME= hadoop100
注意:主机名称不要有“_”下划线
修改hosts:[root@hadoop ~]# vim /etc/hosts
3.3 service 、systemctl后台服务管理
service
开启服务:service 服务名 start
关闭服务:service 服务名 stop
重新启动服务:service 服务名 restart
查看服务状态:service 服务名 status
systemctl
开启服务:systemctl start 服务名
关闭服务:systemctl stop 服务名
重新启动服务:systemctl restart 服务名
查看服务状态:systemctl status 服务名
3.4 chkconfig 设置后台服务的自启配置
查看所有服务器自启配置:chkconfig 关掉指定服务的自动启动:chkconfig 服务名 off 开启指定服务的自动启动:chkconfig 服务名 on 查看服务开机启动状态:chkconfig 服务名 --list
3.5 进程运行级别
查看默认级别: vim /etc/inittab
Linux系统有7种运行级别(runlevel):常用的是级别3(命令行)和5(图形化) 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 运行级别2:多用户状态(没有NFS),不支持网络 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 运行级别4:系统未使用,保留 运行级别5: X11控制台,登陆后进入图形GUI模式 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
3.6关闭防火墙
centOS7: [firewalld.service]
查看防火墙状态:[root@hadoop ~]# systemctl status firewalld.service
停止firewall:[root@hadoop ~]# systemctl stop firewalld.service
禁止firewall开机启动:[root@hadoop ~]# systemctl disable firewalld.service
使用service命令亦可
四、常用基本命令
4.1 文件目录类
1.pwd 显示当前工作目录的绝对路径
[root@hadoop ~]# pwd
2.ls 列出目录的内容
ls [选项] [目录或是文件]
选项 | 功能 |
---|---|
-a | 全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用) |
-l | 长数据串列出,包含文件的属性与权限等等数据;(常用) |
3.cd 切换目录
参数 | 功能 |
---|---|
cd 绝对路径 | 切换路径 |
cd相对路径 | 切换路径 |
cd ~或者cd | 回到自己的家目录 |
cd - | 回到上一次所在目录 |
cd .. | 回到当前目录的上一级目录 |
cd -P | 跳转到实际物理路径,而非快捷方式路径 |
4. mkdir 创建一个新的目录
选项 | 功能 |
---|---|
-p | 创建多层目录 |
mkdir:创建一个新的目录
rmdir:删除一个空的目录
5. touch 创建空文件
touch 文件名称
6.cp 复制文件或目录
选项 | 功能 |
---|---|
-r | 递归复制整个文件夹 |
7.rm 移除文件或目录
选项 | 功能 |
---|---|
-r | 递归删除目录中所有内容 |
-f | 强制执行删除操作,而不提示用于进行确认。 |
-v | 显示指令的详细执行过程 |
8.mv 移动文件与目录或重命名
9.cat 查看文件内容
选项 | 功能描述 |
---|---|
-n | 显示所有行的行号,包括空行。 |
10.more 文件内容分屏查看器
11.less 分屏显示文件内容
12.echo输出内容到控制台
13. head 显示文件头部内容
选项 | 功能 |
---|---|
-n <行数> | 指定显示头部内容的行数 |
14.tail 输出文件尾部内容
选项 | 功能 |
---|---|
-n<行数> | 输出文件尾部n行内容 |
-f | 显示文件最新追加的内容,监视文件变化 |
15. >覆盖 和 >> 追加
ll >文件:(功能描述:列表的内容写入文件a.txt中(覆盖写))
ll >>文件:(功能描述:列表的内容追加到文件aa.txt的末尾)
将ls查看信息写入到文件中:[root@hadoop ~]# ls -l>houge.txt
16.ln软连接
软链接也成为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。
ln -s [原文件或目录] [软链接名] (功能描述:给原文件创建一个软链接)
创建软连接: [root@hadoop101 ~]# ln -s xiyou/dssz/houge.txt ./houzi
17. history 查看已经执行过历史命令
清除历史:[root@hadoop ~]# history -c
4.2 用户管理命令
1.useradd 添加新用户
添加新用户:[root@hadoop ~]# useradd hc
查看:[root@hadoop ~]# ll /home/
2.passwd 设置用户密码
设置用户密码:[root@hadoop ~]# passwd hc
3.id 查看用户是否存在
查看用户是否存在:[root@hadoop ~]# id hc
4.cat /etc/passwd 查看创建了哪些用户
查看用户是否存在:[root@hadoop ~]# cat /etc/passwd
5.su 切换用户
su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)
su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)
6.userdel 删除用户s
选项 | 功能 |
---|---|
-r | 删除用户的同时,删除与用户相关的所有文件。 |
7.usermod 修改用户
选项 | 功能 |
---|---|
-g | 修改用户的初始登录组,给定的组必须存在 |
4.3 用户组管理命令
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同
1.groupadd 新增组
语法:groupadd 组名
2.groupadel删除组
语法:groupdel 组名
3.groupmod修改组
语法:groupmod 组名
4.cat /etc/group 查看创建了哪些组
4.4 文件权限类
1.文件属性
(1)0首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
-代表文件;d 代表目录;l 链接文档(link file);
(2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User (3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group (4)第7-9位确定其他用户拥有该文件的权限 ---Other
2.chmod 改变权限
chmod [mode=421 ] [文件或目录]
r=4 w=2 x=1
3.chown 改变所有者
选项 | 功能 |
---|---|
-R | 递归操作 |
chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)
4.chgrp 改变所属组
chgrp [最终用户组] [文件或目录] (功能描述:改变文件或者目录的所属组)
4.5 搜索查找类
1.find 查找文件或者目录
find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
选项 | 功能 |
---|---|
-name<查询方式> | 按照指定的文件名查找模式查找文件 |
-user<用户名> | 查找属于指定用户名所有文件 |
-size<文件大小> | 按照指定的文件大小查找文件。 |
基本语法:find [搜索范围] [选项]
根据名称查找root目录下的filename.txt文件:
[root@hadoop ~]# find /root -name “*.txt”
2.grep 过滤查找及“|”管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
选项 | 功能 |
---|---|
-n | 显示匹配行及行号。 |
基本语法:grep 选项 查找内容 源文件
查找某文件在第几行:[root@hadoop ~]# ls | grep -n test
3.which 查找命令
基本语法:which 命令
查看ll在哪个目录:[root@hadoop ~]# which ll
4.6 压缩和解压类
1.gzip/gunzip 压缩
gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)
gunzip 文件.gz (功能描述:解压缩文件命令)
2.zip/unzip 压缩
zip选项 | 功能 |
---|---|
-r | 压缩目录 |
unzip选项 | 功能 |
---|---|
-d<目录> | 指定解压后文件的存放目录 |
zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)
unzip [选项] XXX.zip (功能描述:解压缩文件)
3.tar 打包
选项 | 功能 |
---|---|
-z | 打包同时压缩 |
-c | 产生.tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-x | 解包.tar文件 |
tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz)
4.7 磁盘分区类
1.df 查看磁盘空间使用情况
选项 | 功能 |
---|---|
-h | 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; |
2. fdisk 查看分区
选项 | 功能 |
---|---|
-l | 显示所有硬盘的分区列表 |
该命令必须在root用户下才能使用
3.mount/umount 挂载/卸载
参数 | 功能 |
---|---|
-t vfstype | 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:光盘或光盘镜像:iso9660DOS fat16文件系统:msdosWindows 9x fat32文件系统:vfatWindows NT ntfs文件系统:ntfsMount Windows文件网络共享:smbfsUNIX(LINUX) 文件网络共享:nfs |
-o options | 主要用来描述设备或档案的挂接方式。常用的参数有:loop:用来把一个文件当成硬盘分区挂接上系统ro:采用只读方式挂接设备rw:采用读写方式挂接设备 iocharset:指定访问文件系统所用字符集 |
device | 要挂接(mount)的设备 |
dir | 设备在系统上的挂接点(mount point) |
mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)
umount 设备文件名或挂载点 (功能描述:卸载设备)
案例实操
(1)挂载光盘镜像文件
[root@hadoop ~]# mkdir /mnt/cdrom/ 建立挂载点
[root@hadoop ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/ 设备/dev/cdrom挂载到 挂载点 : /mnt/cdrom中
[root@hadoop ~]# ll /mnt/cdrom/
(2)卸载光盘镜像文件
[root@hadoop ~]# umount /mnt/cdrom
4.8 进程线程类
1.ps 查看当前系统进程状态
选项 | 功能 |
---|---|
-a | 选择所有进程 |
-u | 显示所有用户的所有进程 |
-x | 显示没有终端的进程 |
基本语法
ps aux | grep xxx (功能描述:查看系统中所有进程)
ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)
经验技巧
如果想查看进程的CPU占用率和内存占用率,可以使用aux;
如果想查看进程的父进程ID可以使用ef;
2.kill 终止进程
选项 | 功能 |
---|---|
-9 | 表示强迫进程立即停止 |
基本语法
kill [选项] 进程号 (功能描述:通过进程号杀死进程)
killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
3.pstree 查看进程树
选项 | 功能 |
---|---|
-p | 显示进程的PID |
-u | 显示进程的所属用户 |
pstree [选项]
4.top 查看系统健康状态
选项 | 功能 |
---|---|
-d 秒数 | 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令: |
-i | 使top不显示任何闲置或者僵死进程。 |
-p | 通过指定监控进程ID来仅仅监控某个进程的状态。 |
4.9 crond 系统定时任务
1.crond 服务管理
重新启动crond服务:[root@hadoop ~]# service crond restart
2.crontab 定时任务设置
选项 | 功能 |
---|---|
-e | 编辑crontab定时任务 |
-l | 查询crontab任务 |
-r | 删除当前用户所有的crontab任务 |
基本语法:crontab [选项]
每隔1分钟,向/root/bailongma.txt文件中添加一个11的数字:
[root@hadoop ~]# crontab -e
输入:*/1 * * * * /bin/echo ”11” >> /root/bailongma.txt
4.10 软件包管理
1.RPM
RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe,是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
查询:
基本语法:RPM查询命令(rpm -qa),一般都会采取过滤。rpm -qa | grep rpm软件包
查询firefox软件安装情况: rpm -qa |grep firefox
卸载:
选项 | 功能 |
---|---|
-e | 卸载软件包 |
--nodeps | 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。 |
基本语法:①rpm -e RPM软件包 ②rpm -e --nodeps 软件包
卸载firefox软件:[root@hadoop opt]# rpm -e firefox
安装:
选项 | 功能 |
---|---|
-i | -i=install,安装 |
-v | -v=verbose,显示详细信息 |
-h | -h=hash,进度条 |
--nodeps | --nodeps,不检测依赖进度 |
基本语法:rpm -ivh RPM包全名
安装firefox:rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
2.YUM
YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
基本语法:yum [选项] [参数]
选项说明:
选项 | 功能 |
---|---|
-y | 对所有提问都回答“yes” |
参数说明:
参数 | 功能 |
---|---|
install | 安装rpm软件包 |
update | 更新rpm软件包 |
check-update | 检查是否有可用的更新rpm软件包 |
remove | 删除指定的rpm软件包 |
list | 显示软件包信息 |
clean | 清理yum过期的缓存 |
deplist | 显示yum软件包的所有依赖关系 |