小菜鸟的Linux(centOS 6)学习之基础篇

关于Linux的介绍想必大家都了解的,这里就不再啰嗦了。简单地说Linux是一个开源,免费的操作系统;安全,高效,稳定,处理高并发非常强悍;特点是多用户,多任务。

一、先来了解一下磁盘分区的概念

*盘片上细分出扇区(Sector)和柱面(Cylinder)两种单位,其中每个扇区为512bytes那么大。
整个磁盘的第一个扇区特别重要,因为它记录了整块磁盘的重要信息。
1)主引导分区(Master Boot Record ,MBR):可以安装引导加载程序的地方,有446bytes。
2)分区表(partition table):记录整块硬盘分区的状态,有64bytes。

1、1 磁盘分区表
小菜鸟的Linux(centOS 6)学习之基础篇
由于分区表只有64bytes而已,最多只能容纳4个分区,这四个分区被称为主或扩展分区。
小菜鸟的Linux(centOS 6)学习之基础篇

扩展分区的目的是使用额外的扇区来记录分区信息,扩展分区本身并不能被拿来格式化。

1、2 总结:
1)主分区与扩展分区最多可以有4个(硬盘的限制);
2)扩展分区最多只能有1个(操作系统的限制);
3)逻辑分区是由扩展分区持续切割出来的分区;
4)能够被格式化后作为数据访问的是主分区和逻辑分区;扩展分区无法格式化。

二、Linux的主要发行版

Ubuntu,centOS,Red hat……
小菜鸟的Linux(centOS 6)学习之基础篇

三、Linux的目录结构

Linux的文件系统采用级层式的树状目录结构,在此结构的最上层是根目录/。
在Linux世界里,一切皆文件。

1、1 Linux的目录树
小菜鸟的Linux(centOS 6)学习之基础篇
1、/bin :这个目录存放着用户最经常使用的命令,用户二进制文件,二进制可执行文件;
2、/sbin :s就是super user的意思,存放的是系统管理员使用的系统管理程序;
3、/home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录是以用户的账户命名的;
4、/root:系统管理员(root用户)的家目录;
5、/lib:系统开机时会用到的函数库;
6、/etc:所以的系统管理所需要的配置文件和子目录;
7、/boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件;
8、/dev:任何设备与接口设备都是以文件形式存储在这个目录中(类似Windows的设备管理器);
9、/media:Linux系统会自动识别一些设备,如U盘,光驱等,识别后挂载到这个目录下;
10、/usr:存放用户安装的应用程序和文件(类似Windows的program files);
11、/tmp:存放一些临时文件;
12、/mnt:让用户临时挂载别的文件系统,,可以将外部的存储挂载到/mnt上;
13、/opt:给主机额外安装软件所摆放的目录(给第三方软件放置的目录);
14、/var:存放系统数据文件,不断扩充着的东西;习惯将经常被修改的目录放在这里,包括各种日志文件;
15:/lost+found:一般为空的,目的是当文件系统发生错误时,将一些丢失的片段放置在这里(系统非法关机等……);
16、/pro:是一个虚拟文件系统,是系统内存的映射访问这个目录来获取系统信息;它放置的数据都是在内存中,所以不占用硬盘空间;
17、/sys:也是一个虚拟的文件系统,主要存放记录与内核有关的信息;
18、/srv:是service的缩写,存放一些服务启动之后需要提取的数据;
后三个(/pro,/sys,/srv)与内核有关,一般别动。。。

1、2几种常见的设备在Linux中的文件名

1、SCSI/SATA/USB硬盘: /dev/sd[a-p];
2、U盘: /dev/sd[a-p];
3、软驱: /dev/fd[0-1];
4、当前CD ROM/DVD ROM: /dev/cdrom;
5、当前鼠标: /dev/mouse;
…………

四、远程登陆

一般情况下,公司只有一台主Linux服务器或者在很远的机房,此时你只能通过远程登陆该Linux系统来操作。
小菜鸟的Linux(centOS 6)学习之基础篇
如果希望XShell可以远程登陆Linux服务器有一个前提:该Linux服务器启用了SSHD服务,该服务会监听22号端口

五、Linux的常用命令

1、关机、重启、用户登陆注销

1)poweroff :关机

2)shutdown
shutdown -h now : 表示立即关机
shutdown -h 1 : 表示1分钟后关机
shutdown -r now : 现在 重启
shutdown -k now “xxxxxxxx” : 不是真的要关机,只是将发送警告消息

3)halt :立即关机

4)reboot :重启

6)sync :把内存的数据同步到磁盘

注:当我们关机或重启时,都应先执行sync指令,把内存的数据写入磁盘,防止数据丢失。
7)su - 用户名 :切换用户
8)logout :注销用户

2、用户管理

1)Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都要先创建一个用户。
2)Linux的用户需要至少属于一个组。

3)创建用户:useradd 用户名
当用户创建成功后,会自动创建和用户同名的家目录。

4)useradd -d 指定目录 用户名。
给新创建的用户指定家目录。

5)删除用户:userdel 用户名
参数:-r :连用户的主目录一起删除
userdel -r 用户名
(在删除用户时,一般不建议连家目录一起删除)

6)查询用户:id 用户名
若有此用户则返回此用户的信息。
小菜鸟的Linux(centOS 6)学习之基础篇
7)切换用户:su -用户名
小菜鸟的Linux(centOS 6)学习之基础篇
a、从高权限的用户切换到低权限的用户,不需要输入密码;反之,需要输入密码。
b、返回到原来的用户:exit
c、查看当前用户:whoami 或者 who am I
小菜鸟的Linux(centOS 6)学习之基础篇

3、几个与用户相关的文件

1) /etc/passwd 文件:用户的配置文件,记录用户的各种信息;
用户名 :用户id :组id :注释性描述 :家目录 :shell 。
小菜鸟的Linux(centOS 6)学习之基础篇
2) /etc/shadow 文件:口令的配置文件(密码和登陆信息是加密的);
登录名 :加密口令……
小菜鸟的Linux(centOS 6)学习之基础篇
3) /etc/group 文件:组的配置文件,记录Linux的组信息;
组名:口令:组id :组内用户列表(不可见)。
小菜鸟的Linux(centOS 6)学习之基础篇
4、帮助指令
当我们对某个指令不熟悉,可使用帮助指令,简单方便。

1)man : 获取帮助信息
语法:man [命令或配置文件]
小菜鸟的Linux(centOS 6)学习之基础篇
小菜鸟的Linux(centOS 6)学习之基础篇
注:在返回的数据的后面的数字:
1:用户在shell环境下可使用的命令;
5:配置文件或某些文件的格式;
8:系统管理员可用的管理命令;

2)info 指令。

5、目录类指令

1)进入目录:cd
基本语法:cd [目标路径]
绝对路径:即从根目录/开始定位;
相对路径:从当前工作目录开始定位到需要的目录去;
. 表示当前路径;

2)显示当前路径:pwd
3)查看目录
a、ls :只显示目录文件;
b、ls -l : 列表形式显示目录详细信息;
c 、ll :同 ls -l ;
d、-a :包括隐藏文件;

6、mkdir :创建目录(文件夹)
基本语法:mkdir 目录名
mkdir -p 目录/子目录1/子目录2 :可一次创建多个目录及子目录。

7、rmdir : 删除目录
基本语法:rmdir 目录名 (删除的是空目录,如果目录中有内容,无法删除,此时可用:rm -rf 目录

8、touch:创建文件
基本语法:touch 文件名(空文件,可一次性创建多个文件:touch 文件名1 文件名2 ……)

9、rm :删除文件
参数:
-r :强制删除
-f : 陆续删除目录
-v :显示删除过程
-i :删除前提示

10、cat :查看文件内容
基本语法:cat 文件名(只能浏览,不能修改)
带参数 -n:显示行号
小菜鸟的Linux(centOS 6)学习之基础篇

11、cp :复制
基本语法:cp 文件名 目标位置
带参数:cp -r 目录 目标位置(复制整个目录)
强制覆盖:\cp 文件名 目标位置

12、mv :移动剪切/重命名
移动剪切语法:mv 文件 目标位置
重命名语法(同级目录):mv 文件/文件夹 新名字

13、时间日期类

1)date 指令:显示当前日期时间
小菜鸟的Linux(centOS 6)学习之基础篇
基本语法:date :显示当前时间
date +%Y :显示当前年份
date +%m :显示当前月份
date +%d :显示当前月的哪一天
date “+%Y-%m-%d %H:%M:%S” :显示当前年月日时分秒

2)设置日期:date -s 字符串时间

3)cal 指令:显示日历
小菜鸟的Linux(centOS 6)学习之基础篇
基本语法:cal [选项](不加选项,显示本月日历)
cal 指定某年 (显示指定的年日历)
cal 月 年 (显示指定某年中的某月日历)

14、搜索查找类

1)find 指令(支持通配符)

基本语法:find [搜索范围] [选项]
选项:
-name <查询方式>:按指定文件名查找;
小菜鸟的Linux(centOS 6)学习之基础篇
-user<用户名> :查找属于指定用户名的所有文件;
-size<文件大小>:按指定文件大小查找:
+n:大于n的
-n:小于n的
n:等于n的
小菜鸟的Linux(centOS 6)学习之基础篇

2)locate 指令

基本语法:locate [搜索文件]

locate指令可以快速定位文件路径。locate利用事先建立的系统中所以文件名称和路径的locate数据库实现快速定位给定的文件。locate无须遍历整个文件系统,查询速度较快。为了保证查询结果的准确性,管理员必须定期更新locate时刻。

特别说明:由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库

3)grep 指令和管道符号 |

grep : 过滤查询;
管道符号 | :表示将前一个命令的处理结果输出传递给后面命令处理;

基本语法:grep [选项] 查找内容 源文件
常用选项:
-n :显示匹配行及行号
-i :忽略字母大小写

例:cat ok.txt | grep -ni ok (在ok.txt中查找ok,显示行号且忽略大小写)
小菜鸟的Linux(centOS 6)学习之基础篇

15、压缩解压类

1)gzip /gunzip 指令

基本语法:gzip 文件(压缩)
gunzip 文件.gz ( 解压)

细节说明:使用gzip对文件进行压缩后,不会保留原来的文件。

2)zip/unzip 指令

基本语法:zip [选项] 压缩后的文件名.zip 将要压缩的文件(压缩)
unzip [选项] 压缩后的文件名.zip

zip的常用选项: -r 递归压缩,即压缩目录
unzip的常用选项:-d <目录> 指定解压后文件的存放目录

3)tar 指令(用得比前两种多)

基本语法:tar 参数 文件名.tar.gz 源文件(打包压缩)
tar 参数 文件名.tar.gz (解压缩)
参数:
-c:创建新的文件,相当于打包
-x:释放新的文件,相当于解包
-z:同时启用gzip工具进行压缩或解压
-v:打包过程中显示被打包的文件
-f:使用档案名字
小菜鸟的Linux(centOS 6)学习之基础篇

小菜鸟的Linux(centOS 6)学习之基础篇
16、ln 指令
软链接,也叫符号链接,类似Windows里的快捷方式,主要存放了链接其他文件的路径。
基本语法:ln -s [源文件或目录] [软链接名] (创建一个软链接)
小菜鸟的Linux(centOS 6)学习之基础篇
rm -rf 软链接名(删除软链接)

细节说明:当我们用pwd指令查看目录时,仍然看到的是软链接所在的目录。
小菜鸟的Linux(centOS 6)学习之基础篇

17、history 指令

查看已经执行的历史指令,也可以执行历史指令。
基本语法:history
history n (n:显示n条记录)
执行历史指令: ![历史编号]
小菜鸟的Linux(centOS 6)学习之基础篇

18、与文件显示有关的指令类

1)tail 指令
tail命令用途是依照要求将指定文件的最后部分输出到标准设备,通常是终端;通俗地说就是把某个文件的最后几行显示在终端上。假设该文件有更新,tail会主动刷新,确保你看到的是最新的文件内容。

基本语法:tail 文件名(默认显示最后10行)
tail -n 行数 文件名(指定显示最后的多少行)
小菜鸟的Linux(centOS 6)学习之基础篇
tail -f 文件名监视文件的尾部内容,默认10行,实时追踪文件的所以跟新)

2)head指令
用于显示文件的开头部分内容
基本语法:head 文件名 (默认显示前10行)
head -n 行数 文件名(指定显示多少行)

3)more 指令
是一个基于vi编辑器的文本过滤器,以全屏的方式按页显示文本文件的内容

快捷键:
空格(space):代表向下翻一页
enter :向下翻一行
ctrl +F :向下滚动一屏
ctrl +B :返回上一屏

4)less 指令
用来分屏查看文件内容,功能与more类似,但比more强;less在显示文件内容时,并不是一次将整个文件加载后才显示,而是根据显示需要加载内容。对于显示大型文件具有较高的效率

基本语法:less 文件名

19、> 指令和>>指令

> 输出重定向:会将原来的文件内容覆盖
>> 追加:不会覆盖原来文件内容,而是追加到文件的尾部

基本语法:
ls -l >文件 (将列表的内容重定向到指定文件中,会覆盖)
ls -l >>文件 (将列表内容追加到指定文件中)
cat 文件1 >文件2 (将文件1 的内容覆盖到文件2 )
echo “内容” >> 文件(将内容追加到文件中)

小菜鸟的Linux(centOS 6)学习之基础篇
小菜鸟的Linux(centOS 6)学习之基础篇
echo指令:输出内容到控制台
基本语法:echo [选项][输出内容]

六、Linux组管理

1、Linux组基本介绍
前面说了在Linux中的每一个用户必须属于一个组,不能独立与组外。在Linux中每个文件有所有者,所在组,其他组的概念。

1)创建用户组:groupadd 组名
2)删除用户组:groupdel 组名
3)增加用户时直接加上组 :useradd -g 组名 新用户名
4)查看用户属于哪个组:groups 用户名
小菜鸟的Linux(centOS 6)学习之基础篇
5)修改用户所在组:
在添加用户时,可以指定该用户添加到哪个组,同样的用root的管理权限可以改变某个用户所在的组:usermod -g 新组名 用户名
小菜鸟的Linux(centOS 6)学习之基础篇

2、文件/目录所有者
一般为文件的创建者,谁创建了该文件,就自然成为该文件的所有者。

查看文件的所有者:ls -ahl 文件名
小菜鸟的Linux(centOS 6)学习之基础篇
修改文件所有者:chown 用户名 文件名
小菜鸟的Linux(centOS 6)学习之基础篇

3、文件/目录所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组。

查看文件的所有组:ls -ahl 文件名
修改文件所在组:chgrp 组名 文件名

4、其他组
除文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组。

七、权限详解

小菜鸟的Linux(centOS 6)学习之基础篇

1、0-9位说明:

第0位:确定文件类型(- ,d , l ,c ,b)
– : 表示普通文件
d : 表示目录
l : 表示链接文件
c :表示设备文件中的串行端口设备(比如鼠标,键盘等)
b :表示设备文件中可供存储的端口设备

第1-3位:确定该文件所有者拥有该文件的权限—user
第4-6位:确定所在组拥有该文件的权限—group
第7-9位:确定其他组用户拥有该文件的权限—other

文件大小项:若位目录则是4096。

2、rwx权限详解

1)rwx 作用到文件

[r] : 可读
[w] : 可写,可修改,但不代表可以删除该文件。删除一个文件的前提是对该文件所在的目录有写的权限,才能删除文件;
[x] : 可执行(execute)

2)rwx 作用到目录

[r] : 可读,ls 可以查看目录内容
[w] : 可写,可修改,目录内创建,删除,重命名目录
[x] : 可执行(execute),可以进入该目录

3、修改权限 :chmod

第一种方法:使用 + ,- ,= 变更权限
u:所有者
g :所在组
o : 其他人
a : 所以人

例:1) chmod u=rwx,g=rx, o=x 文件目录名
2)chmod o+w 文件目录名

第二种方法:通过数字变更权限

语法:chmod [选项 参数] 文件目录名
参数:
-R :连同目录下所以文件及子目录都进行变更。
r ,值=4
w,值=2
x,值=1

例:chmod 777 文件目录名 (修改文件目录的权限为:rwx rwx rwx )

八、vi和vim使用

1、三种模式:正常模式 、插入模式 、命令行模式。

2、三种模式间的转换
小菜鸟的Linux(centOS 6)学习之基础篇
3、常用快捷键

1)拷贝当前行 yy ,拷贝当前行向下5行 5yy ,并粘贴 p ;

2)删除当前行 dd ,删除当前行向下5行 5dd ;

3)在文件中查找某个单词【命令行模式下 /关键字,回车,输入n就是查找下一个】;

4)设置文件的行号【命令行模式下 :set nu】; 取消行号【:set nonu】;

5)使用快捷键到达文档最末行 G最首行 gg

6)在一个文件中输入“内容……”,后又想撤销这个动作 u

7)在一个文件中,一下将光标移动到20(某一行)行:
第一步:首先显示行号:set nu ;
第二步:输入20(某一行);
第三步:G

4、vim的多窗口功能
1)在命令行模式下输入:sp [文件],即可打开另一个文件
2)可利用crtl +w +上下箭头,即可在多个窗口之间切换

例:先打开a.txt文件,再在命令行模式下输入 :sp b.txt。即可打开如下窗口
小菜鸟的Linux(centOS 6)学习之基础篇

九、Linux系统的运行级别

1、7个级别

0:关机
1:单用户(找回丢失密码特有用)
2:多用户状态无网络
3:多用户状态有网络
4:系统未使用,保留
5:图形界面
6:重启
常用级别:3 、5.

2、设置级别:在 /etc/inittab (配置文件)中设置级别。

3、切换到指定运行级别的指令:init [0,1,2,3,5,6]
也可用init指令来关机init 0),重启 (init 6)