学习慕课网的《Linux达人养成计划I》教程的笔记。
本教程Linux系统的基础知识,分区和挂载,Linux常用的命令,还有基础的shell语法。shell的介绍shell编程里有详细的介绍。
后面有一个Linux系统后续的进阶:http://blog.csdn.net/wybluewind/article/details/49387027
还有Shell编程的进阶部分:http://blog.csdn.net/wybluewind/article/details/49388431
1-1 Linux简介
Linux 内核版本, Linux发行版本。
服务器端的使用Redhat比较常见,CentOS是免费的Redhat。
1-2 开源软件简介
nginx
1-3 练习题
1-4 Linux应用领域
1.服务器 2. 嵌入式应用
1-5 练习题
1-6 Linux学习方法
1-7 Linux与Windows的不同
Linux所有的内容以文件形式保存,包括硬件。一切皆文件!!!
Linux不靠扩展名区分文件, 靠权限区分文件。
1-8 字符界面的优势
1-9 练习题
2-1 虚拟机安装
VMware 8版本
2-2 虚拟机的使用
2-3 系统分区之分区与格式化
硬盘分成了很多扇区,每个扇区是512个字节,446个字节记录启动信息, 64个字节进行分区表示,每16个字节表示一个分区。所以最多可以有4个分区。扩展分区最多有一个,不能写入数据,只能包含逻辑分区。
硬盘格式化是为了写入数据。格式化步骤:
- 把分区分成等大小的数据块(block)「默认是4kb,如果没有占满4kb,那么剩下的无法再写入数据」,数据存储的时候,不一定是连续存储的。
- 在分区列表中建立一个二维表格:记录每个文件的id(node,节点),修改时间,权限,文件的保存位置「如第1块,第6块,第200块」。
- 如果进行文件读取,首先看权限是否匹配,如果不匹配拒绝访问;匹配则把文件的保存位置取出来进行拼凑然后访问。
文件索引表
2-4 分区之分区设备文件名与挂载
硬件设备文件名:hda1(IDE硬盘接口)hd代表IDE硬盘接口,a代表第一块硬盘,1代表第一个分区。sda1:sd代表SCSI硬盘接口,或者SATA硬盘接口,后面相同。
windows中的盘符—-> Linux中的挂载点。Linux中把目录作为“盘符”,不同于win系统。挂载是个过程,目录名字称为挂载点。
2-5 练习题
2-6 Linux系统的安装
密码原则:复杂性,易记性,实效性。
2-7练习题
2-8 XShell的安装和使用
XShell远程管理工具
3-1 命令格式
前面的提示符: 如
wyz@wyz-K43SD:~$
[当前登录用户@主机名(计算机名) ~(登录位置/home/wyz)] #(登录用户是管理员,$是普通用户)
命令 [选项] [参数](选项有完整选项和简化选项,简化用“-”调用,完整用“–”调用)
选项:调整命令的结果或者命令的功能的。参数:操作对象。
ls :列出目录内容。
选项 | 作用 |
---|---|
-l | 显示详细信息 |
-a | 显示所有文件,包括隐藏文件。 |
-R | 显示文件夹下所以文件的树目录。 |
-d | 是查看目录的权限。 |
-i | 查看inode。 每个文件的id号。 |
ls -l , 列出的信息。 ll = ls -l
权限+所有者 | 引用计数 | 所有者 | 所属组 | 大小 | 最后一个修改时间 | 文件名 |
---|---|---|---|---|---|---|
drwxrwxr-x | 3 | wyz | wyz | 4096 | 10月 2 15:31 | ACMcode |
drwxrwxr-x | 2 | wyz | wyz | 4096 | 10月 12 21:58 | alibaba |
drwx—— | 3 | wyz | wyz | 4096 | 7月 11 19:38 | Android |
drwxrwxr-x | 6 | wyz | wyz | 4096 | 10月 9 18:26 | apache-maven-3.3.3 |
drwxr-xr-x | 2 | wyz | wyz | 4096 | 10月 24 12:36 | Desktop |
-rw-r–r– | 1 | wyz | wyz | 8980 | 7月 12 15:46 | examples.desktop |
drwxr-xr-x | 7 | wyz | wyz | 12288 | 10月 24 09:55 | Downloads |
drwxr-xr-x | 2 | wyz | wyz | 4096 | 7月 12 15:59 | Music |
drwxr-xr-x | 2 | wyz | wyz | 4096 | 10月 22 20:19 | Pictures |
drwxrwxr-x | 2 | wyz | wyz | 4096 | 10月 18 22:32 | shell |
显示详细信息:
- 权限位第一位表示文件类型(“-”普通文件,“d”目录,“l”软链接文件,就是快捷方式),其余9位表示所有者(u[ser])、所属组(g[ourp])、其他人(o[ther])的 r[ead]读、w[rite]写、x[execution]执行权限;
- 之后的数字是引用计数,硬链接的次数;
- 所有者;
- 所属组;
- 大小,字节数,-h[uman]选项可以以人能看懂的方式表示;
- 最后一次修改时间;
- 文件名;
3-2 目录处理命令(上)
目录是保存文件的,
mkdir [make directories]:命令在命名路径下创建新的目录
选项 | 作用 |
---|---|
-p | 递归创建。就是创建多级目录。 |
cd [change directory]:改变目录
cd[~]直接回车回家目录; cd - 上次目录;一个点,代表当前目录。
pwd [print working directory]:显示当前工作目录的全路径。
3-3 目录处理命令(下)
rmdir [remove empty directories]: 删除空目录。
rm [-rf]:删除文件和目录。
选项 | 作用 |
---|---|
-r | 表示删除目录,删除目录必须加。 |
-f [force] | 强制执行,不确认。 |
cp [copy]:它会从一个地方复制一个文件到另外一个地方。可以使用通配符(后面会讲)来定制所需的文件的复制。
选项 | 作用 |
---|---|
-r | 复制目录; |
-a | 相当于-rpd,目标文件和源文件一模一样!! |
-p,-d | 其他的属性, 一般使用-a就好了。 |
mv [move]:将一个地方的文件移动到另外一个地方去。可以剪切, 可以改名,在于源文件和目标文件是否在同一个文件夹下。
mv需谨慎使用,因为移动系统的或者未授权的文件不但会导致安全性问题,而且可能系统崩溃。
3-4 常见目录作用
目录 | 作用 |
---|---|
/bin /sbin /usr/bin /usr/sbin | 保存命令,bin下的命令一般用户可是操作,sbin下的目录是超级用户可以使用的命令。 |
/dev | 硬件的目录 |
/etc | 配置文件的目录 |
/lib | 函数库保存目录 |
/media /mnt / misc | 挂载其他的硬盘,u盘的 |
/proc /sys | 保存的是内存的挂载点,是内存的盘符。不能写数据。 |
/tmp | 临时目录 |
/usr | 系统软件资源目录 |
/var | 系统可变文档 |
3-5 链接命令
ln [link]:创建硬链接。
硬链接,特征:
- 有相同的inode和存储block,可以看作是同一个文件。
- 可通过inode 识别。
- 不能跨分区。
- 不能针对目录使用。
一个文件的不同接入点,如果删了一个,可以通过另一个访问数据。
选项 | 作用 |
---|---|
-s[soft] | 软链接 |
特征:
- 有自己的inode和block,但是数据块中保存了源文件的inode和文件名。
- 权限777 。 源文件一定要写绝对路径
4-1 文件搜索命令
locate 文件名。速度快,它的搜索是在/var/lib/mlocate中进行搜索,更新的频率是一天一次。updatedb可以更新前面的数据库。只可以按文件名搜索。
按照/etc/updatedb.conf配置搜索。
4-2 命令搜索命令
whereis 命令名:搜索命令所在路径和帮助文档所在的位置。
选项 | 作用 |
---|---|
-b | 只看在哪 |
-m | 只看帮助文档。 |
whatis: 后面接命令,是什么命令,命令的作用。
whoami:登录用户名。
which:所在位置和别名位置。
环境变量:执行一个命令会在PATH的路径中查找,路径下如果有可以执行。这是系统搜索命令的路径。
4-3 find命令
find [搜索范围] [搜索条件]
条件的格式: -name install.log (搜索名字是install.log文件)
基本的搜索是完全匹配,名字一样,如果想使用模糊查询,需要使用通配符。
通配符:*匹配任意字符, ?匹配任意一个字符, []匹配括号内的任意一个字符。
条件的选项 | 作用 |
---|---|
-iname | 不区分大小写搜索 |
-user | 按照所有者搜索 |
-nouser | 查找没有所有者的文件。内核和外来文件没有所有者,其他没有所有者的文件都是垃圾文件。 |
-atime [access] [+10] | 文件访问时间 +10表示十天前的文件。 |
-ctime [change] [-10] | 改变文件属性时间 -10表示十天内的文件。 |
-mtime [ modify] [10] | 修改文件时间 10表示第十天的24h内的文件。 |
-size | 文件大小搜索 -25k表示小于25k的文件,+25M表示大于25M的文件。默认是数据块,是硬盘的扇区,不是系统的数据块。扇区默认大小是512字节。搜索大小需要加单位,如-25k。 |
-inum | 按照inode查找。 |
-a 表示 and逻辑与 | 左右两侧的条件都要满足。 |
-o or 逻辑或 | [find /root -size +20k -a -size -50k] |
-
-exec {} \; 命令格式:
- -exec [] {} \; 中括号内添加第二条命令,如果接在find后面,表示find找出的文件用此条命令处理。能处理第一个结果的才能写到这里面。
4-4 grep命令
grep [选项] 字符串 文件名
选项 | 作用 |
---|---|
-i | 忽略大小写 |
-v | 排除指定字符串 |
包含匹配。搜索的是文件的内容。
5-1 帮助命令
man[manual] 命令
查看命令帮助,支持多个级别1-8。
选项 | 作用 |
---|---|
-f | 查看命令级别,可以使用whatis |
-k | 跟命令相关所有信息。 |
5-2 其他帮助命令
–help 获取选项帮助
shell是命令解释器
help获取内部命令的帮助。
whereis找不到内部命令,就是内部命令。其他的就是安装的命令。
info查找所有帮助的帮助文档。
6-1 压缩命令1
zip 压缩文件名 源文件;
zip -r 压缩文件名 目录;
unzip 解压;
gzip,压缩后源文件删除。
-r 压缩目录的子文件,不会压缩目录。
gunzip解压缩或者gzip -d。
bzip2不能压缩目录,不保留源文件。
bzip2 -d, bunzip解压缩。
touch 创建文件,cat查看文件
6-1 压缩命令2
tar -cvf 打包文件名 源文件
选项 | 作用 |
---|---|
-c | 表示打包 |
-v | 显示过程 |
-f | 指定打包后的文件名 |
文件或目录没关系。
然后用gzip或者bzip2压缩。
tar -xvf 文件名, 解压缩
tar -zcvf 压缩tar.gz格式
tar -zxvf 解压缩tar.gz。
tar -jcvf 压缩tar.bz2格式
tar -jxvf 解压缩tar.bz2。
-C 可以设置解压缩位置,
多个文件加空格就行了。
tar -ztvf [中的t是test], 查看里面的内容,不解压缩。
7-1 关机与重启命令
shutdown [选项] 时间
选项 | 作用 |
---|---|
-c | 取消前一个关机命令 |
-h | 关机 |
-r | 重启 |
shutdown -r 05:30 & ,后面的&
表示后台运行。
比较安全,可以保存当前的状态。
还有其他的关机命令,都不太安全。
系统运行级别: 0-6 ,init可以调用系统运行级别。
runlevel 可以查看系统运行级别。
8-1 挂载命令
mount 查询系统中已经挂载好了的设备。
mount -a;作用:根据配置文件/etc/fstab自动挂载。
mount [-t 指定文件系统] [ -o 特殊设备] 设备文件名 挂载点
脚本文件第一行要写#!/bin/bash
挂载光盘过程:
1.建立挂载点: mkdir /mnt/cdrom
2.挂载命令:mount -t ios9660 /dev/sr0 /mnt/cdrom/ [-t ios9660可以省略]
卸载命令:umount 设备文件名或者挂载点。
挂载u盘:
fdisk -l 查看系统中已经挂载的硬盘,显示设备文件名。
8-2 用户登录查看命令
w 查看用户登录信息。
who 同w但是显示的信息少。
last 查询所有用户登录的信息,它是读取的/var/log/wtmp文件。
lastlog 查询所有用户最后登录的信息,也是读取的/var/log/lastlog文件。
9-1 shell 概述
shell是命令行解释器
shell 还是一个编程语言。
9-2 脚本执行方式
echo 把内容输出到屏幕上。
echo [选项]
-e 支持特殊字符,如:\n \t \b 等等。设置输出格式。
可以支持颜色调用, \e[1:31m \e[0m
修改完脚本之后, 赋予执行权限才可以执行。
还可以通过bash 命令直接执行,不用赋予执行权限。
9-3 别名与快捷键
alias查看系统的别名, 别名为了适用用户的操作习惯。
alias ls=’ls –coloer=auto’ ,设置别名格式:别名=原命令,这个只是临时的,重启系统会消失。需要写到~/.bashrc环境变量配置文件。这个是用户的配置环境变量。
source .bashrc 可以重新调用文件内容,使其生效。
unalias 别名, 就可是删除别名,是临时删除。
命令生效顺序:
1.绝对路径或相对路径的命令
2.别名
3.Bash内部命令
4.按照$PATH 目录定义顺序查找的第一个命令
快捷键:C+l 清屏;C+u光标所在位置删除到行首;C+a光标跳到行首;C+e光标跳到行尾;C+z把命令放到后台;C+r在历史命令中搜索;
9-4 历史命令
history [选项] [历史命令保存文件]。历史命令保存在~/.bash_history
选项 | 作用 |
---|---|
-c | 清空历史命令。 |
-w | 把缓存的历史写道~/.bash_history文件中。 |
!n | 执行第n条命令 |
!! | 执行上一条命令 |
!字符串 | 执行以最后一个以这个结尾的命令 |
9-5 输出重定向
结果 > 文件名。把正确的输出的结果放到文件中,覆盖原来的内容。
结果 >> 文件名 。把正确的输出的结果放到文件中,追加到文件末尾。
以上可以保存正确的输出。
结果 2>文件名。把错误的输出的结果放到文件中,覆盖原来的内容。
结果 2>>文件名。把错误的输出的结果放到文件中,追加到文件末尾。
只可以记录犯错信息,右侧不能有空格。
在命令后面添加:2>&1
正确和错误的都可以写入到文件名。
或者:结果 &>> 文件名,添加个&
符号功能同上。
命令 >> 文件1 2>>文件2,分开保存信息。
wc [选项] [文件名]
选项 | 作用 |
---|---|
-c | 统计字节数 |
-w | 统计单词数 |
-l | 统计行数 |
命令 < 文件 把文件作为命令的输入。
命令 << 标记 了解就行,基本不用。
9-6 管道符
多命令顺序执行:
命令1 ; 命令2 | 多个命令顺序执行; |
命令1 && 命令2 逻辑与; | 命令1正确执行,命令2才执行;命令1错误执行,命令2不会执行; |
命令1 || 命令2 逻辑或; | 命令1错误执行,命令2才执行;命令1正确执行,命令2不执行。 |
优先级相同,按顺行执行。
管道符:命令1 | 命令2
,命令1的正确输出作为命令2的操作对象。
netstat [-an , ] 查看网络链接。
more 分屏显示
9-7 通配符
符号 | 意义 |
---|---|
? | 任意一个字符 |
* | 任意多个字符 |
[] | 中括号内任意一个字符。在中括号内写^ 代表不包括其中的字符,- 代表范围。 |
其他特殊符号:
# | 是注释 |
$ | 放在变量前面,表示调用变量的值。 |
单引号:'' | 单引号中的特殊符号没有意义。 |
双引号:"" | 双引号中的特殊符号也没有意义,但是$, \, ` 是例外。 |
反引号:` ` | 包含命令,表示命令执行之后在赋值。等同于$() ,经常使用后者。 |
系统管理进阶:http://blog.csdn.net/wybluewind/article/details/49387027
Shell编程进阶:http://blog.csdn.net/wybluewind/article/details/49388431