为数据分析/数据开发量身定制史上最全Linux实用手册问世

Linux是一个一体化内核(monolithickernel)系统。「内核」指的是一个提供硬体抽象层、磁碟及文件系统控制、多任务等功能的系统软体。一个内核不是一套完整的作业系统。一套基于Linux内核的完整作业系统叫作Linux作业系统,或是GNU/Linux。

企业生产环境中使用的伺服器系统基本就是linux作业系统

一、常见命令

Linux的常见命令

Linux的文件结构:一切皆文件

1、学会运用Tab键自动补全

2、清屏:clear或者ctrl+ll

3、命令格式:

命令+【选项】+【参数:(文件)】

选项是可以连用的

4、ls命令

ls#查看当前目录下的文件

选项:

-l,long,显示长格式的信息

-a,all,显示所有的文件或目录

-d,显示目录本身的属性,不显示它包含的文件和目录

-h,可以查看具体文件的大小

5、ll命令

显示长格式的信息

格式:命令本身不需要加选项和参数

6、pwd命令

显示当前所在位置

格式:命令本身不需要加选项和参数

7、cd命令

切换移动到指定的目录位子下

格式:命令+参数(指定的路径)

选项:..cd../表示回到上一级目录

./表示当前目录

/代表根目录,系统最顶层的目录

8、su

切换用户及用户文件

选项:-从普通用户切换到root

-【用户名】从root用户切换到普通用户

su-

su-user01

不加-只切换用户,不切换用户文件

su

suuser01

二、Linux文件目录常用命令

1、mkdir

创建一个目录(一级目录)

用法:#mkdirtset$mkdirdemo/file1

选项:-p递归创建多级目录

用法:$mkdir-pdemo/file1/file2

2、touch

创建一个空文件:touch

用法:$touchtest.txt

3、创建带空格命名的文件

用法:#touch"progamfile"

引号表示一个整体

4、rmdir

删除一个空的目录

用法:$rmdirfile2/

5、rm

删除一个文件或目录

用法:rmdemo/file1/test3.txt

选项:-r,递归删除目录

用法:rm-rdemo/file1

选项:-f,强制删除操作

用法:rm-rfdemo注意:避免误删除的操作

6、cp

复制或拷贝一个文件或目录

用法:$cpdemo//temp/

cp[需要拷贝的文件或目录][目标路径]

选项:-r,拷贝目录

用法:cp-rdemo/file1temp/

7.mv

剪切一个文件或目录

用法:$mvdemo/test2.txttemp/

cp[需要剪切的文件或目录][目标路径]

重命名功能:$mvtest1.txttest2.log

cp[需要重命名的文件][修改后的文件]

8.cat

查看一个文件:cat

用法:$cat/etc/passwd

9.more

分页查看文件内容

用法:$more/etc/passwd

->按空格一页一页查看

->按回车一行一行查看

->按q退出浏览状态

10.head

查看一个文件的前几行

用法:$head-5/etc/passwd

选项:-n,n代表行数,number

注意:默认不加选项行数是10行

11.tail

查看一个文件的末尾几行

用法:$tail-3/etc/passwd

选项:-n,n代表行数,number

注意:默认不加选项行数是10行

三、vi编辑器

1、三种模式

->命令模式

刚进入文件的时候的状态

->插入模式(按i进入)(按Esc退出)

进入可编辑文件内容的状态

->最后行模式

左下角出现光标可输入命令的状态

选项:w保存,q退出,!强制操作

三个选项可以联合使用wq!

2、vi快捷键:

显示行号:setnu,进入最后行模式使用

光标快速移动到第一行,小写gg,命令行模式使用

光标快速移动到最后一行,大写G,命令行模式使用

删除一行,小写dd,命令行模式使用(带有剪切的功能)

黏贴一行,小写p,命令行模式使用

删除多行,小写dd,加上数字,比如三行就是3dd,命令行模式使用

撤销上一步的操作,小写u,命令行模式使用

删除、拷贝命令

在命令模式下:

dd剪切一行

ndd剪切光标下方n行

yy复制一行

nyy复制光标下方n行

p粘贴

搜索命令

在命令模式下,搜索一个字符串string

/string

n继续搜索下一个

N搜索上一个出现位置

三、用户和用户组

1、UID:用户ID编号,user

2、GID:用户组ID编号,group

-->一个组可以多个用户

-->比如学生组:stu

3、用户类型

1)超级用户root用户的UID是0

也就是root用户,拥有至高无上的权限,这个用户也是在实际生产环境种尽量不要使用的。

2)普通用户UID是从500开始的

3)伪用户UID是1~499之间的是伪用户

系统指定了一些进程,给他们分配了一部分ID号,但是这部分伪用户不能够真正懂的登陆,也没有家目录

/etc/passwd文件

存储了用户名的相关信息

user01:x:500:500::/home/user01:/bin/bash

用户名:密码:UID:GID:注释性描述:用户家目录:用户使用的shell

密码:实际的密码是不会显示在passwd文件中的,以x来代表

4、创建用户:#useraddfeng

5、创建用户组:#groupaddtianqi

6、设置密码

第一种:passwd[用户名]会要求输入两次密码

第二种:echo'yu'|passwd--stdinyu

echo:回显列印字符内容

-stdin:表示要输入的意思,一定要加的参数

7、切换用户:su-beifeng

切换一定要加-

su和su-区别:一个是切换用户,一个是完整的切换用户(包括用户环境)

8、删除用户:#userdel-rfeng

选项:-r彻底删除用户包括用户主目录

四、用户文件目录权限

1、drwxrwxr-x.3user01user014096Nov1517:11demod代表目录

2、rwx:(所有者)rwx:(所属组)r-x:(其他人)

读->r:cat,more,tail,head

写->w:mkdirtouchvimvcprm

执行->x:cd,执行脚本

所有者:user,用u表示

所属组:group,用g表示

其他人:other,用o表示

r:4

w:2

x:1

***3、修改权限命令:chmod

-->字母用法:#chmodu+xprogram

-->字母用法:#chmodg+x,o+x,program

-->字母用法:#chmodo-xproram

赋予权限用加号表示:+

撤销权限用减号表示:-

-->数字用法:#chmod777program

#chmod755program

选项:-R,递归修改

用法:#chmod777-Rfiles/

4、修改所有者命令:chown(changeown)

用法:#chownroot/home/user01/demo

注意:必须使用root身份操作

5、修改所属组命令:chgrp

用法:#chgrproot/home/user01/test

*****6、一条命令同时修改:

用法:#chowndian:dian/home/user01/demo

练习:

1、首先移动到系统根目录下,用root用户创建一个目录

2、在该目录下再创建一个文件

3、分别查看目录和文件的权限

4、再赋予该「目录」权限777

5、切换到普通用户尝试删除这个目录下的文件,是否可以删除?为什么?

注意:删除一个文件,在于对于它所在的目录有没有w权限

五、关机重启命令:

1、关机命令:init0,shutdown需要root权限操作

2、重启命令:init6,reboot

六、管道符号、追加/覆盖符号

1、用竖线来表示:|

2、表示将前一个命令的输出结果传递给后面的命令处理

管道的两边都是命令,左边的命令先去执行,执行的结果作为右边命令的输入

$cat/etc/passwd|more

3、grep:过泸筛选

$cat/etc/passwd|grep'root'

4、过泸条件:

$ifconfig|grep'inet6addr:'

并不是所有的命令都可以放到管道符号后面使用

5、追加用两个大于符号表示:>>

表示将前一个命令的输出结果追加到某个文件中

$echo"20161116">>demo.txt

$head-3/etc/passwd>>demo.txt

6、覆盖用一个大于号表示:>

表四将前一个命令的输出结果覆盖到某个文件中

$tail-5/etc/passwd>demo.txt

$echo"20161116">demo.txt

7、wc(wordcount)统计命令:统计单词、字符、行数,支持管道符号

$wc-ldemo.txt

8、ps-ef显示当前系统运行的进程

$ps-ef

$ps-ef|wc-l

jps显示当前系统运行的java进程

七、sudo权限

1.操作的对象是系统命令(可以借助root权限执行命令)

2、命令:#visudo//root身份执行

rootALL=(ALL)->使用的身份ALL

【用户名】ALL=(ALL)ALL#需要每次执行输入密码

user01LALL=(AL)NOPASSWD:ALL#需要每次执行输入密码

user01ALL=/sbin/shutdown-rnow

user01ALL=(root)NOPASSWD:ALL

八、解压缩和压缩命令

在windows中,使用一款压缩软体就能全部搞定压缩和解压缩的问题

在Linux中,常见的压缩格式

.gz

.tar

.tar.gz

1、压缩格式:.gz

1)压缩命令:gzip

用法:$gzipdemo.txt

$gzip/home/user01/test4.txt

注意:不保留原文件

2)解压缩命令:gunzipdemo.txt.gz

用法:$gunzip

2、压缩格式:tar

1)压缩命令:tar压缩文件或目录

用法:$tar-cvf2016.tardemo.txt

2)压缩格式:.tar.gz

用法:$gzip2016.tar

一次性完成:

***tar-zcvfDesktop/beifeng.tar.gztest/

3)解压:****$tar-zxvf2016.tar.gz-Ctest/

选项:

-z,--gzip,--gunzip,--ungzipfilterthearchivethroughgzip

-c,--createcreateanewarchive

-x,--extract,--getextractfilesfromanarchive

-v,--verboseverboselylistfilesprocessed

-f,--file=ARCHIVEusearchivefileordeviceARCHIVE

九、Linux磁碟管理(添加硬碟、分区、挂载)

磁碟的管理

如何对磁碟进行分区

如何对磁碟进行格式化

如何对磁碟进行挂载

在Linux中,第一块硬碟sda,第二块硬碟sdb,。。。

*1*将第一块硬碟分成3各个区,sda1,sda2,sda3,...

*2*在进行分区完成之后一定要进行格式化才能使用

*3*格式化完成之后需要对每个分区进行挂载

完成挂载之后才能df-h命令进行查看

添加一块新硬碟(分区、格式化/挂载)的步骤

第一步:添加一块硬碟(关机状态下操作)

第二步:开机之后,在/dev目录下已经可以识别新的硬碟

第三步:分区

分区分两种:

1、主分区primarrypartition

主分区的数量1~4个

2、扩展分区extendedpartiton

如果想要划分更多的分区,那么就要在扩展分区中进行

一般主分区+扩展分区命令:#mkfs

->文件系统:ext4

->其他的文件系统:ext1,2,3

->用法:#mkfs.ext4/dev/sdb1

第五步:挂载分区

->挂载命令:mount(临时挂载)

->用法:#mout/dev/sdb1/mnt

->/mnt是挂载点,是访问对应分区的唯一入口

->挂载点必须存在

第六步:永久挂载

用法:#vi/etc/fstab

挂载设备挂载点文件系统类型

/dev/sdb1/mnt/studyext4defaults00

/dev/sdb5/mnt/gamesext4defaults00

#####################从添加新硬碟之后就一直可以使用########

#fdisk-l

DeviceBootStartEndBlocksIdSystem

/dev/sdb112622104483+83Linux

/dev/sdb226313058377897+5Extended

/dev/sdb52631305837786683Linux

######################必须是分区挂载之后才可以使用##################

#df-h//进行挂载时可以参照fdisk-l来看新设备的情况

mount设备文件挂载点

#mount/dev/sdb1/mnt/study

#mount/dev/sdb5/mnt/games

#fdisk/dev/sdb//添加新硬碟

Command(mforhelp):m//查看帮助

Commandaction

llistknownpartitiontypes//查看分区类型

naddanewpartition//创建分区

pprintthepartitiontable//列印到屏幕分区的信息

qquitwithoutsavingchanges//不保存变化退出

wwritetabletodiskandexit//保存并退出

Command(mforhelp):n//1.开始创建分区

Commandaction//可选分区类型

eextended

pprimarypartition(1-4)

p//2.创建主分区

Partitionnumber(1-4):1//分区序号

Firstcylinder(1-1305,default1)://开始磁柱

Usingdefaultvalue1

Lastcylinder,+cylindersor+size{K,M,G}(1-1305,default1305):+2G//结束磁柱可选磁柱可选具体大小

Command(mforhelp):n

Commandaction

eextended

pprimarypartition(1-4)

e//2.创建扩展分区

Partitionnumber(1-4):2//分区序号

Firstcylinder(263-1305,default263):

Usingdefaultvalue263

Lastcylinder,+cylindersor+size{K,M,G}(263-1305,default1305):

Usingdefaultvalue1305

Command(mforhelp):n

Commandaction

llogical(5orover)

pprimarypartition(1-4)

l//3.创建逻辑分区

Firstcylinder(263-1305,default263):

Usingdefaultvalue263

Lastcylinder,+cylindersor+size{K,M,G}(263-1305,default1305):

Usingdefaultvalue1305

Command(mforhelp):w//4.保存分区信息并退出

Thepartitiontablehasbeenaltered!

Callingioctl()tore-readpartitiontable.

Syncingdisks.

//5.格式化分区

#mkfs.ext4/dev/sdb1

#mkfs.ext4/dev/sdb5

//6.临时挂载

#mount/dev/sdb1/mnt/study

#mount/dev/sdb5/mnt/games

//7.永久挂载

#vi/etc/fstab

挂载设备挂载点文件系统类型

/dev/sdb1/mnt/studyext4defaults00

/dev/sdb5/mnt/gamesext4defaults00

十、Linux软体包管理(安装和卸载)

1、针对伺服器

2、windows中所有软体包不能直接在Linux中使用

3、软体包:

->源码包(脚本)-->特点:免费、开源

->二进位包(RPM包,系统默认包)

->rpm(获取rpm包的方式:可以从网上下载,安装镜像ISO文件)

->yum(需要借助网络,会动的解析依赖问题)

->安装、卸载、升级、查询

十一、rpm命令

1、centOS主要管理包的方式

2.rpm管理以rpm结尾的包

3.挂载光碟机

#mount/dev/cdrom/media/

4.安装:#rpm-ivhxcb-util-0.3.6-1.el6.i686.rpm

用法:rpm-ivh软体名(.rpm)

选项:-iinstall代表安装

-vh:显示详细的进度

5、卸载:#rpm-excb-util-0.3.6-1.el6.i686.rpm

选项:-e代表卸载

#rpm-e【软体名】--nodeps(不卸载依赖)

#rpm-ejava-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64--nodeps

6、查询:#rpm-qa查询当前系统中安装了哪些软(rpm已经安装好的)

选项:-q(query)代表查询a(all)代表全部

rpm-qa|grepjdk

rpm-qa|grepmysql

7、查看某个文件属于哪个rpm包安装的

#rpm-qf/etc/ntp.conf

四、yum命令

1、前提是必须连接外网

2、用来解决rpm依赖性问题

3、方便、快捷、自动解析依赖

4、查询:

#yumlist,查询yum源上拥有的软体,

#yumlistinstalled|more

列出系统中所有已经安装好的rpm包

第一列是包名第二列版本第三列是仓库名@anaconda代已经安装过的

yumlistupdates|more

查询可以更新的软体包

5、安装:

#yuminstallhttpd-devel.x86_64

选项:install

后缀不需要加.rpm

选项:-y,表示直接自动确认

#yum-yinstallhttpd-devl.x86_64

5、卸载

#yum-yremovehttpd-devl.x86_64

6.yum仓库(源)

路径位置:#cd/etc/yum.repos.d

系统会默认从CentOS-Base.repo中指定的源的地址去下载响应的文件

如果想要修改yum源文件,建议将CentOS-Base.repo文件备份,然后再做

响应的修改。

当修改了源之后,就会从新的源上去下相应的软体。

常见问题:

1.ping(检测网络质量和网络连接)不通外网

检查网卡设置,DNS

2、包无法下载

检查配置仓库是否正确

五、解压安装方式

1.针对.tar.gz压缩格式的安装包

jdk-7u67-linux-x64.tar.gz

2.确认安装路径(目录权限)

#mkdir/opt/modules/opt/software

#chownuser01:user01/opt/module/opt/software

drwxr-xr-x.2user01user014096Nov1711:52modules//安装目录

drwxr-xr-x.2user01user014096Nov1711:52software//存放压缩包

3、解压即安装

$tar-zxvfjdk-7u67-linux-x64.tar.gz-C../modules/

4、配置环境变量

#vi/etc/profile

##JAVA_HOME

exportJAVA_HOME=/opt/modules/jdk1.7.0_67

exportPATH=$PATH:$JAVA_HOME/bin

5、生效配置文件

#source/etc/profile

6、查看配置是否成功

java-version

好啦,就这么多,爱我记得赞赞我,么么扎~

祝大家五一节快乐(劳动节就应该跟着我多种树~到处都是人海~玩毛线~)