Linux(一):Linux基础 1. Linux入门 2. Linux 文件与目录结构 3. VI/VIM编辑器 4. 网络配置和系统管理操作 5. Linux中常用的基本命令 5.3. 时间日期类 5.4. 用户管理命令 6. 软件包管理

Linux(一):Linux基础
1. Linux入门
2. Linux 文件与目录结构
3. VI/VIM编辑器
4. 网络配置和系统管理操作
5. Linux中常用的基本命令
5.3. 时间日期类
5.4. 用户管理命令
6. 软件包管理

1.1. Linux概述

  • Linux是一套免费使用和*传播的类Unix操作系统。Unix操作系统是上世纪70年代在贝尔实验室诞生的一个强大的多用户、多任务操作系统。
  • Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
  • 目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE。

1.2. Linux和Windows的区别

Linux(一):Linux基础
1. Linux入门
2. Linux 文件与目录结构
3. VI/VIM编辑器
4. 网络配置和系统管理操作
5. Linux中常用的基本命令
5.3. 时间日期类
5.4. 用户管理命令
6. 软件包管理

1.3. CentOS下载地址

网易镜像:http://mirrors.163.com/centos/6/isos/

搜狐镜像:http://mirrors.sohu.com/centos/6/isos/

2. Linux 文件与目录结构

2.1. Linux文件

  • 在Linux中一切都是文件。

2.2. Linux目录结构

  1. /home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  2. /root:该目录为系统管理员,也称作超级权限者的用户主目录。
  3. /etc:所有的系统管理所需要的配置文件和子目录。
  4. /usr:这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  5. /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里。
  6. /media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  7. /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
  8. /opt:这是给主机额外安装软件所摆放的目录。比如你安装一个mysql数据库则就可以放到这个目录下。默认是空的。
  9. /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

3. VI/VIM编辑器

3.1. 编辑器概述

  • VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。

 3.2. 编辑器的一般模式

  1. yy:复制光标当前一行
  2. p:箭头移动到目的行粘贴
  3. u:撤销上一步
  4. dd:删除光标当前行
  5. x:删除一个字母,相当于del
  6. shift+^:移动到行头
  7. shift+$:移动到行尾
  8. shift+g:移动到页尾

3.3. 编辑器的编辑模式

  1. i:在当前光标前进入编辑模式
  2. a:在当前光标后进入编辑模式
  3. o:当前光标行的下一行
  4. ESC:退出编辑模式

3.4. 编辑器的指令模式

  1. ::w是保存,q是退出,!是强制执行
  2. /:查找,/被查找词,n是查找下一个,shift+n是往上查找

3.5. VI键盘图和模式转换

Linux(一):Linux基础
1. Linux入门
2. Linux 文件与目录结构
3. VI/VIM编辑器
4. 网络配置和系统管理操作
5. Linux中常用的基本命令
5.3. 时间日期类
5.4. 用户管理命令
6. 软件包管理

Linux(一):Linux基础
1. Linux入门
2. Linux 文件与目录结构
3. VI/VIM编辑器
4. 网络配置和系统管理操作
5. Linux中常用的基本命令
5.3. 时间日期类
5.4. 用户管理命令
6. 软件包管理

4. 网络配置和系统管理操作

4.1. 修改网络ip地址

# 使用vim编辑器修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
DEVICE=eth0                #接口名(设备,网卡)
HWADDR=00:0C:2x:6x:0x:xx   #MAC地址 
TYPE=Ethernet               #网络类型(通常是Ethemet)
UUID=926a57ba-92c6-4231-bacb-f27e5e6a9f44  #随机id
ONBOOT=yes                #系统启动的时候网络接口是否有效(yes/no)
BOOTPROTO=static      # IP的配置方法[none|static|bootp|dhcp](引导时不使
用协议|静态分配IP|BOOTP协议|DHCP协议)
IPADDR=192.168.1.100      #IP地址
GATEWAY=192.168.1.2      #网关
DNS1=192.168.1.2          #域名解析器

4.2. 关闭防火墙(CentOS7)

启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld

4.3. 关机重启

  • 概述:在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。正确的关机流程为:sync > shutdown > reboot > halt。
  • 经验技巧:Linux系统中为了提高磁盘的读写效率,对磁盘采取了 “预读迟写”操作方式。当用户保存文件时,Linux核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用sync指令可以立即将缓冲区的数据写入磁盘。
  • 基本语法:

sync

将数据由内存同步到硬盘中

halt

关闭系统,等同于shutdown h now poweroff

reboot

就是重启,等同于 shutdown r now

shutdown

选项

-h-h=halt关机

-r-r=reboot重启

参数

now:立刻关机

时间:等待多久后关机(时间单位是分钟)。

5. Linux中常用的基本命令

5.1. 帮助命令

man 获得帮助信息

例:man ls(获取ls的帮助信息)

help 获得shell内置命令的帮助信息

例:help cd(获取cd的帮助信息)

常用快捷键

ctrl + c:停止进程

ctrl+l:清屏(彻底清屏是:reset

ctrl + q:退出

tab:提示信息

上下键:查找执行过的命令

5.2. 文件目录类

pwd

显示当前工作目录的绝对路径

ls

-a :全部的文件,连同隐藏的(开头为 . 的文件一起列出来(常用)

-l :长数据串列出,包含文件的属性与权限等等数据;(常用)

cd

cd路径:切换到绝对路径或者切换到相对路径

cd ~或者cd :回到自己的家目录

cd -:回到上一次所在目录

cd ..:回到当前目录的上一级目录

cd -P:跳转到实际物理路径,而非快捷方式路径

mkdir

mkdir:创建一个目录(例:mkdir abc

mkdir -p:创建一个多级目录(例:mkdir -p abc/def

rmdir

删除一个空的文件夹

touch

创建空文件(例:touch a.txt

cp

cp:复制文件(例:cp /home/a/b.txt /home/x/

cp -r:递归复制整个文件夹(例:cp -r /home/a/b /home/x/

rm

rm -r:递归删除目录中所有内容

rm -f:强制执行删除操作,而不提示用于进行确认。

rm -v:显示指令的详细执行过程

mv

mv oldNameFile newNameFile      (功能描述:重命名)

mv /temp/movefile /targetFolder  (功能描述:递归移动文件)

cat

查看文件内容,从第一行开始显示。

cat -n:显示所有行的行号,包括空行。

more

空白键 (space):代表向下翻一页;

Enter: 代表向下翻『一行』;

q:代表立刻离开 more ,不再显示该文件内容。

Ctrl+F:向下滚动一屏

Ctrl+B:返回上一屏

=:输出当前行的行号

:f:输出文件名和当前行的行号

echo

echo输出内容到控制台

head

head用于显示文件的开头部分内容。默认情况下head指令显示文件的前10行内容。

head -n 10 文件(查看文件头10行内容,10可以是任意行数)

tail

tail  -n 5 文件(查看文件头5行内容,5可以是任意行数)

tail  -f  文件    (功能描述:实时追踪该档的所有更新)

cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2

>> 

echo “内容” >> 文件

ln软链接

ln -s [原文件] [目标文件]:(功能描述:给原文件创建一个软链接,软链接存放在目标文件目录,例:ln -s xiyou/dssz/houge.txt ./houzi

删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/ (例:rm -rf houzi

进入软连接实际物理路径(例:cd -P dssz/

history

查看已经执行过历史命令

5.3. 时间日期类

date显示当前时间:

date

显示当前时间

date +%Y

显示当前年份

date +%m

显示当前月份

date +%d

显示当前是哪一天

date "+%Y-%m-%d %H:%M:%S"

显示年月日时分秒

 date显示非当前时间:

date -d '1 days ago'

显示前一天日期

date -d '-1 days ago'

显示明天时间

设置系统时间:

date -s "2017-06-19 20:52:18"

设置系统当前时间

cat查看日历:

cal

查看当前月的日历

cal -3

查看当前月、前一个月和后一个月的日历

cal 2017

查看2017年的日历

5.4. 用户管理命令

useradd

useradd 用户名 (功能描述:添加新用户)

useradd -g 组名 用户名 (功能描述:添加新用户到某个组)

passwd

passwd 用户名  (功能描述:设置用户密码)

id

id 用户名    (功能描述:查看用户是否存在)

su

su 用户名称(切换用户,只能获得用户的执行权限,不能获得环境变量)

su - 用户名称(切换到用户并获得该用户的环境变量及执行权限)

userdel

userdel  用户名       (功能描述:删除用户但保存用户主目录)

userdel -r 用户名     (功能描述:用户和用户主目录,都删除)

who

whoami            (功能描述:显示自身用户名称)

who am i             (功能描述:显示登录用户的用户名)

cat

cat  /etc/passwd      (功能描述:查看创建了哪些用户)

usermod

usermod -g 用户组 用户名   (功能描述:将用户加入到用户组)

5.5. 用户管理组命令

groupadd

groupadd 组名   (功能描述:新增组)

groupdel

groupdel 组名    (功能描述:删除组)

groupmod

groupmod -n 新组名 老组名       (功能描述:修改组)

cat

cat  /etc/group (功能描述:查看创建了哪些组)

5.6. 文件权限类

1. 文件属性:

a) 一个文件或者文件夹的属性具体含义如下图所示:

  Linux(一):Linux基础
1. Linux入门
2. Linux 文件与目录结构
3. VI/VIM编辑器
4. 网络配置和系统管理操作
5. Linux中常用的基本命令
5.3. 时间日期类
5.4. 用户管理命令
6. 软件包管理

    如果查看到是文件:链接数指的是硬链接个数,创建硬链接方法:ln [原文件] [目标文件](例:ln sunhouzi/shz.txt ./shz.txt)

    如果查看的是文件夹:链接数指的是子文件夹个数。

  b) 从左到右的10个字符的具体含义如下图所示:  

      Linux(一):Linux基础
1. Linux入门
2. Linux 文件与目录结构
3. VI/VIM编辑器
4. 网络配置和系统管理操作
5. Linux中常用的基本命令
5.3. 时间日期类
5.4. 用户管理命令
6. 软件包管理

  c) 0首位表示类型:

    - 代表文件

         d 代表目录

         l 链接文档(link file)

  d) 第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User

  e) 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group

  f) 第7-9位确定其他用户拥有该文件的权限 ---Other

2. chmod改变权限

  a) 基本语法:

    chmod  [{ugoa}{+-=}{rwx}] 文件或目录

    chmod  [mode=421 ]  [文件或目录]

  b) 经验技巧:

    u:所有者  g:所有组  o:其他人  a:所有人(u、g、o的总和)

    r=4 w=2 x=1        rwx=4+2+1=7

  c) 示例:

    chmod u+x test1.java

    chmod g+x test1.java

    chmod -R 777 testdir

3. chown改变所有者

  a) 基本语法:

    chown [选项] [最终用户] [文件或目录]            (功能描述:改变文件或者目录的所有者,-R:表示递归修改文件夹中的所有文件)

  b) 示例:

    修改文件所有者:chown atguigu test1.java

    递归改变文件所有者和所有组:chown -R atguigu:atguigu sunhouzi/

4. chgrp改变所属组:
  a) 基本语法:
    chgrp [最终用户组] [文件或目录]
  b) 示例:
    修改文件的所属组:chgrp atguigu test1.java

5.7. 磁盘分区类

1. df查看硬盘:

  基本语法:df  选项       (功能描述:列出文件系统的整体磁盘使用量)

  选项说明:-h 以人们较易阅读的GBytes, MBytes, KBytes等格式自行显示

2. fdisk查看分区:

  基本语法:fdisk -l                  (功能描述:查看磁盘分区详情)

  选项说明:-l                        显示所有硬盘的分区列表

  经验技巧:该命令必须在root用户下才能使用

  功能说明:(Device:分区序列) (Blocks:容量)

5.8. 搜索查找类

1. find 查找文件或者目录(find [搜索范围] [选项]):

  a) -name<查询方式>:按照指定的文件名查找模式查找文件

    例:find /opt/ -name *.txt

  b) -user<用户名>:查找属于指定用户名所有文件

    例:find /opt/ -user atguigu

  c) -size<文件大小>:按照指定的文件大小查找文件

    按文件大小:在目录下查找大于n兆的文件(+n 大于  -n小于  n等于)

    例:find /home -size +204800

2. grep 过滤查找及“|”管道符:

  a) 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

  b) 基本语法:grep 选项 查找内容 源文件

  c) 选项说明:-n显示匹配行及行号

  d) 示例操作:查找某文件在第几行        ls | grep -n test

5.9. 进程线程类

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。

1. ps查看系统中所有进程:

基本语法

ps -aux | grep xxx

查看系统中所有进程

ps -ef | grep xxx 

可以查看子父进程之间的关系

选项说明

-a

选择所有进程

-u

显示所有用户的所有进程

-x

显示没有终端的进程

ps -aux显示信息说明

%CPU

该进程占用CPU资源的百分比,占用越高,进程越耗费资源

%MEM

该进程占用物理内存的百分比,占用越高,进程越耗费资源

VSZ

该进程占用虚拟内存的大小,单位KB

RSS

该进程占用实际物理内存的大小,单位KB

STAT

进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台

ps -ef显示信息说明

UID

用户ID

PID

进程ID

PPID

父进程ID

2. kill终止进程

基本语法

kill  [选项] 进程号

通过进程号杀死进程

killall 进程名称

通过进程名称杀死进程

选项说明

-9

表示强迫进程立即停止

实例操作

杀死指定进程号

kill -9 5102

通过进程名称杀死进程

killall firefox

3. pstree查看进程树:

基本语法

pstree [选项]

选项说明

-p

显示进程的PID

-u

显示进程的所属用户

实例操作

显示进程pid

pstree -p

显示进程所属用户

pstree -u

4. top 查看系统健康状态:

基本命令

top [选项]   

选项说明

-d 秒数

指定top命令每隔几秒更新。默认是3秒

操作说明

P

以CPU使用率排序,默认就是此项

M

以内存的使用率排序

N

以PID排序

q

退出top

  在第2行中zombie为僵尸进程,如果不是0,需要手工检查僵尸进程。

5. netstat显示网络统计信息:

基本语法

netstat -anp

用来显示整个系统目前的网络情况

选项说明

-an

按一定顺序排列输出

-p

表示显示哪个进程在调用

实例操作

查看端口50070的使用情况

netstat -anp | grep 50070

5.10. 压缩和解压类

在Linux中压缩和解压有gzip/gunzip压缩,zip/unzip压缩和tar打包等方法,但在大数据中一般不会使用这些,有自己的压缩和解压方法,但在网络上下载的Linux的文件一般使用tar解压,所以只要对tar有所了解就够了。

基本语法

tar  [选项]  XXX.tar.gz  将要打包进去的内容

选项说明

-c

产生.tar打包文件

-v

显示详细信息

-f

指定压缩后的文件名

-z

打包同时压缩

-x

解包.tar文件

实例操作

压缩多个文件

tar -zcvf test.tar.gz test1.java test.java

压缩目录

tar -zcvf test.java.tar.gz test1

解压到当前目录

tar -zxvf test.tar.gz

解压到指定目录

tar -zxvf test.tar.gz -C /opt

5.11. crond系统定时任务

1. 选项说明:

选项

功能

-e

编辑crontab定时任务

-l

查询crontab任务

-r

删除当前用户所有的crontab任务

  2. 参数说明:  

  Linux(一):Linux基础
1. Linux入门
2. Linux 文件与目录结构
3. VI/VIM编辑器
4. 网络配置和系统管理操作
5. Linux中常用的基本命令
5.3. 时间日期类
5.4. 用户管理命令
6. 软件包管理

3. 具体操作:

时间 

含义

45 22 * * * 命令

在22点45分执行命令

0 17 * * 1 命令

每周1 的17点0分执行命令

0 5 1,15 * * 命令

每月1号和15号的凌晨5点0分执行命令

40 4 * * 1-5 命令

每周一到周五的凌晨4点40分执行命令

*/10 4 * * * 命令

每天的凌晨4点,每隔10分钟执行一次命令

0 0 1,15 * 1 命令

每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。

  4. 重启crontab,启动定时任务:

    /bin/systemctl restart crond.service     或          service crond restart

6. 软件包管理

6.1. RPM软件包

1. RPM概述:

  RPM(RedHat Package Manager),Rethat软件包管理工具,类似windows里面的setup.exe是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。RPM包的名称格式如下:

  Apache-1.3.23-11.i386.rpm

    -       “apache” 软件名称

    -       “1.3.23-11”软件的版本号,主版本和此版本

    -       “i386”是软件所运行的硬件平台

    -       “rpm”文件扩展名,代表RPM包

2. RPM查询命令:

  a) 基本语法:rpm -qa                (功能描述:查询所安装的所有rpm软件包)

  b) 经验技巧:由于软件包较多,会采取过滤。rpm -qa | grep rpm软件包

  c) 查询firefox软件安装情况:rpm -qa |grep firefox

3. RPM卸载命令:

  a) 基本语法:(1) rpm -e RPM软件包     (2) rpm -e --nodeps 软件包 

  b) 选项说明:

    -e:卸载软件包

    --nodeps:卸载软件时,不检查依赖(比较少使用)

  c) 实例操作:卸载firefox软件       rpm -e firefox

4. RPM安装命令:

  a) 基本语法:rpm -ivh RPM包全名

  b) 安装firefox软件:rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm