01.Linux基础

一、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软件包的所有依赖关系
posted @ 2019-10-18 15:46  loading---  阅读(194)  评论(0编辑  收藏  举报