1. Linux入门

1.1. Linux概述

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

1.2. Linux和Windows的区别

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键盘图和模式转换

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) 一个文件或者文件夹的属性具体含义如下图所示:

  

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

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

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

  

  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. 参数说明:  

  

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

Linux(一):Linux基础的更多相关文章

  1. Linux 脚本编写基础

    txt去重    http://man.linuxde.net/sort Linux 脚本编写基础 http://www.cnblogs.com/linn/archive/2007/03/05/664 ...

  2. linux发行版基础目录

    linux发行版基础目录 linux 基础目录 linux基础目录 目录 作用 / 根目录,起源 /boot linux引导启动目录 /lib 库目录 /bin 常用内部命令 /sbin 常用内部管理 ...

  3. LINUX二十个基础命令

    LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...

  4. Linux命令工具基础04 磁盘管理

    Linux命令工具基础04 磁盘管理 日程磁盘管理中,我们最常用的有查看当前磁盘使用情况,查看当前目录所占大小,以及打包压缩与解压缩: 查看磁盘空间 查看磁盘空间利用大小 df -h -h: huma ...

  5. Linux数组array基础

    Linux数组array基础[${a[*]}和$a的区别] Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... valuen) 此时下标从0开始 (2) name[i ...

  6. 详细介绍Linux shell脚本基础学习

    Linux shell脚本基础学习这里我们先来第一讲,介绍shell的语法基础,开头.注释.变量和 环境变量,向大家做一个基础的介绍,虽然不涉及具体东西,但是打好基础是以后学习轻松地前提.1. Lin ...

  7. linux 脚本编写基础(一)

    1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在 ...

  8. Linux shell入门基础(六)

    六.Shell脚本编程详解 将上述五部分的内容,串联起来,增加对Shell的了解 01.shell脚本 shell: # #perl #python #php #jsp 不同的脚本执行不同的文本,执行 ...

  9. Linux shell入门基础(一)

    Linux shell入门基础(一): 01.增加删除用户: #useradd byf   userdel byf(主目录未删除)  userdel -r byf   该用户的属性:usermod 用 ...

  10. Linux回归篇-基础恶补

    前言:  LINUX在之前仅仅了解一些皮毛知识,最近计划深入研究大数据,LINUX当然少不了,所以借此良机将LINUX也顺带添加进入学习的目录之中.为了知识的全面性,本文先恶补一下LINUX的基础,作 ...

随机推荐

  1. 报错:Unable to read additional data from client sessionid 0x36ab52d38c20b20, likely client has closed socket

    报错背景: CDH集群中,将kafka和Flume整合,将kafka的数据发送给Flume消费. 启动kafka的时候正常,但是启动Flume的时候出现了报错现象. 但是我检查了Flume,Flume ...

  2. lombok 插件安装使用

    Lombok是一个Java库,它自动插入编辑器并构建工具,为Java添加香料.永远不要再编写另一个getter或Eques方法,您的类有一个功能齐全的构建器,可以自动化您的日志变量以及更多的注释. 官 ...

  3. maven 中配置多个mirror的问题

    公司搭建的maven私服做镜像,有使用aliyun的镜像,还有其他地方的, 默认情况下配置多个mirror的情况下,只有第一个生效.那么我们可以将最后一个作为默认值,前面配置的使用环境变量动态切换. ...

  4. Andrew Ng机器学习课程9

    Andrew Ng机器学习课程9 首先以一个工匠为例,说明要成为一个出色的工匠,就需要掌握各种工具的使用,才能知道在具体的任务中选择什么工具来做.所以今天要讲的就是机器学习的理论部分. bias va ...

  5. ztree节点名称排序

    // result 为后台返回的集合,在渲染tree前的数据 result = result.sort(function (a, b) { // 判断前面一个是字母,后面一个不是字母,那么不换位置,返 ...

  6. css height:100%和height:auto的区别

    css height:100%和height:auto的区别 height:auto,是指根据块内内容自动调节高度.height:100%,是指其相对父块高度而定义的高度,也就是按照离它最近且有定义高 ...

  7. linu SSH 不在同一网段的两台机器如何通过ssh通信,SSH限制特定网段登陆的方法

    1. linu SSH 不在同一网段的两台机器如何通过ssh通信 https://blog.csdn.net/lhf19891003/article/details/39895763 https:// ...

  8. Struts笔记4

    Struts2-拦截器-单个拦截器 自定义拦截器 1.创建一个继承AbstractInterceptor的类 package com.gyf.web.interceptor; import com.o ...

  9. docker xfs卡死

    原因 docker在xfs文件系统中,过于频繁create/destory container.pull/push image,当thin pool满时,DeviceMapper后端默认文件系统xfs ...

  10. Vue.js 2.x 混入

    Vue.js 2.x mixins 混入 混入(mixins)是一种分发vue组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身 ...