Linux达人养成计划1

慕课网课程的笔记

1.基础知识:

Linux分为内核版本和发布版本

Linux内核官网:www.kernel.org

Linux主要发行版本:debian ununtu redhat(用的最多) centos 等

开源软件:绝大多数开源软件免费、可以获得软件源代码、可以自由传播改良甚至销售。但是开源是指源代码开放,开源不等于免费。

www.netcraft.com :查看网站的一些技术信息。

AIX是IBM开发的Unix、CentOS是RedHat系列的Linux、Debian是由社区开发和维护的Linux、Ubuntu是一个以桌面应用为主的Linux。

windows里面才叫dos界面,Linux里面叫命令行操作/界面。

Linux中所有内容以文件形式保存,包括硬件。

Linux不靠扩展名区分文件类型(是通过权限区分),但有一些约定俗成的(扩展名不是说一定要有,只是方便用户操作):

  • 压缩包:.gz、.bz2、.tar.bz2、.tgz等
  • 二进制软件包:.rpm
  • 网页文件:.html、.php
  • 脚本文件:.sh
  • 配置文件:.conf

虚拟机快照:保存虚拟机某一时间状态。

FAT16:最大只能支持2GB的分区

FAT32:单个文件不能超过4GB,分区小于4TB

NTFS:Windows最新的文件系统

Linux支持:EXT2、EXT3、EXT4。

Linux主分区:最多只能有4个。

Linux扩展分区:

  • 最多只能有1个扩展分区。
  • 主分区加扩展分区最多有4个,就是只能拿一个主分区当扩展分区。
  • 不能写入数据,只能包含逻辑分区,就是将扩展分区划分为逻辑分区。

格式化:格式化又称逻辑格式化,它是指用户选定的文件系统(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。

格式化的最终目是写入文件系统,并不是清空数据,格式化时主要做两个事:

  • 1、将硬盘分割成等大小的数据块(默认4kb,可以调节);
  • 2、建立二维表格(分区相当于柜子,柜子上面又二维表格),表格内容包括ID号、修改时间、权限、文件保存位置等,目的是为了快速查找文件所在数据块,ID号这里面称为I node。每个分区里都有保存ID,修改时间,访问权限的区块。

Linux里面把目录(/etcpasswd/)当作盘符。

必须有的分区:

  • /(根分区)
  • swap分区(交换分区[可以理解为虚拟内存],内存2倍,不超过2GB)

推荐分区:

  • /boot(启动分区,200MB)

这里写图片描述

分区设备文件名解析:

/dev/hda1 这个 hda1  的 a 代表第一个硬盘(若是b即代表第二个硬盘),1代表第一个分区,hd代表IDE硬盘接口

/dev/sda1 这个 sda1  的 a 代表第一个硬盘,1代表第一个分区,sd代表SCSI硬盘接口或者SATA硬盘接口

硬件设备文件名:

这里写图片描述

Linux:分区-格式化-给分区起设备文件名-分配盘符(Linux称为挂载点)

这里写图片描述

盘符—是软件级的概念,分区—是硬件级概念,当Windows启动的时候,它会检测电脑已连接的所有硬盘上它能够识别的分区(NTFS、FAT32等),并自动为其分配盘符。这个分配盘符的过程,就是挂载(mount)过程,只不过这个过程完全不用你参与。具体来说就是,Windows把第一分区关联到c:这个盘符,第二分区关联到d:这个盘符等等。这样,软件中的磁盘管理概念和实际的硬盘分区紧密关联,二者才具有真正的实用意义。

分区就是把磁盘分成几个逻辑部分,盘符就相当于给分好的这几部分各起一个名字,盘符是windows中的概念,就比如C盘、D盘之类的;盘符在linux中叫挂载点,在linux中是拿目录作为盘符的。

盘符是Windows里的概念,在Linux里类似的东西叫挂载点。分区是指把磁盘分为不同的数据存储区域,在Windows里,要经过三步,分区,格式化,盘符;而在Linux里,要多一步,分四步,分区,格式化,取名,挂载点,所以,分区与挂载点(盘符),是在不同步骤下做的不同的事。

关于挂载可以参考,很详细:
https://www.cnblogs.com/ma5on/p/4357625.html
http://forum.ubuntu.org.cn/viewtopic.php?t=257333

挂载:根文件系统之外的其他文件要想能够被访问,都必须通过“关联”至根文件系统上的某个目录来实现,此关联操作即为“挂载”,此目录即为“挂载点”,解除此关联关系的过程称之为“卸载”。

更多信息可以参考:https://www.linuxidc.com/Linux/2016-08/134666.htm

密码原则:

  • 复杂性
    八位字符以上、大小写字母、数字、符号
    不能是英文单词
    不能是和用户相关的内容
  • 易记忆性
  • 时效性(一般90天更换一次)

安装日志:

  • /root/install.log 存储了安装在系统中的软件包及其版本信息。
  • /root/install.log.syslog 存储了安装过程中留下的事件记录。
  • /root/anaconda-ks.cfg 以Kickstart配置文件的格式记录安装过程中设置的选项信息。

2.命令基本格式:

root@localhost: ~#
yangyang@ubuntu:~$
yangyang@ubuntu:~/test$

参数:

  • root:当前登录用户
  • localhost:主机名
  • ~:当前所在目录(家目录)[输入pwd可以看见这个目录],比如管理员的家目录:/root,user1的家目录是/home/user1
  • # 超级用户的提示符 普通用户的提示符是$

命令格式:

命令 [选项] [参数]

注意:个别命令使用不遵循此格式;当有多个选项时,可以写在一起;简化选项与完整选项,-a等于–all。

查询目录中内容:

ls [选项] [文件或目录]
ls(ll命令就是ls -l的简写)

选项:

  • -a 显示所有文件,包括隐藏文件
  • -l 显示详细信息
  • -d 查看目录属性
  • -h 人性化显示文件大小
  • -i 显示inode
  • -lh 文件大小以易懂的方式显示
  • -ld 查看目录本身的信息,例如权限等 [ls -ld /home/yangyang/test]

代码示例:

~$ ls -l
total 36
d rwxr-xr-x 3 yangyang yangyang 4096 Apr 10 05:36 Desktop
...
//上面3是引用计数,第一个yangyang是文件所有者,第二个yangyang是所属组,4096是文件大小。

3.文件处理命令:

目录处理命令:

mkdir -p [目录名]  
    -p 递归创建
mkdir bols
mkdir -p japan/cang/bols [创建多层次目录时,要加-p参数,这样才可以递归创建]

切换所在目录:

cd [change directory]
简化操作:
cd ~ 进入当前用户的家目录(直接跳到家目录,~本身就是代表家目录)
cd
cd - 进入操作的上一次目录
cd .. 进入上一级目录
cd . 进入当前目录(也可以使用pwd,查看现在的目录)

相对路径:参照当前所在目录,进行查找。如:[root@imooc ~]# cd ../usr/local/src/(../就是表示上一级目录,然后再添加后面目录,./就是指当前目录)

绝对路径:从根目录开始指定,一级一级递归查找。在任何目录下,都能进入指定网址。

查询所在目录:

pwd

删除空目录:rmdir

rmdir [只能删除空目录,不能包含文件]

删除文件或目录:rm

rm -rf [文件或目录] 
例如:rm -rf test 全部删除test下面所有的文件,包括test本身
选项:[rm本来是删文件的,加-r可以删除目录,加-f可以强制删除全部,不用一条条回复]
    -r 删除目录
    -f 强制

复制目录/文件:cp

cp [选项] [原文件或目录] [目标目录]
    -r 复制目录 [不加-r只能复制文件到目录,加上可以复制目录到目录]
    -p 连带文件属性复制
    -d 若源文件是链接文件,则复制链接属性
    -a 相对于-pdr(就是上面的总和,这样源文件和目标文件就一模一样了,属性,时间期限等)
注:
cp test1 demo/test2 复制文件时可以改名,这个就是复制到demo文件夹下面,且名字改为test2
cp test Picture/test1 复制文件夹,这个就是test复制到文件夹Picture下面文件夹test1里面。

剪切或改名命令:mv

mv [原文件或目录] [目标文件]
注:
不论是剪切文件还是文件夹,都不用-r这个选项
如果源文件和目标文件一样时,可以理解为改名命令。

4.常见目录作用:

这里写图片描述

根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令的。(bin是一般用户就可以执行的命令,sbin是root用户才可以执行的命令)。

proc和sys目录不能直接操作,这两个目录保存的是内存的过载点。

可以在家目录root或home,以及tmp目录下随便放内容。

5.链接命令:

链接命令;ln(原文件生成一个目标文件)

ln -s [原文件] [目标文件] 
选项:-s 创建软链接

硬链接特征:

  • 拥有相同的i节点和存储blcok块,可以看做是同一个文件
  • 可通过i节点识别
  • 不能跨分区(创建硬链接)
  • 不能针对目录使用

注:相当于不同名字,但是对应的信息列表一样,对应i节点一样,指向的block块也一样。因此删除一个硬链接,不影响另一个指向对应的block块。所以硬链接相当于一个文件的不同接入点。

软链接特征:

  • 类似windows快捷方式
  • 软链接拥有自己的I节点和Block块,但是数据中只有保存原文件的文件名和I节点号,并没有实际的文件数据
  • lrwxrwxrwx |软链接 软链接文件权限都为rwxrwxrwx
  • 修改任意文件,另一个都改变(注意:创建时原文件要写全路径,不然修改原文件,软链接不可用)
  • 删除原文件,软链接不能使用

对于上面4、5两条的理解可以利用下面代码:

ln -s /home/yangyang/test/test3 test4
ln -s test3 test5

软链接是索引块中目标文件名,而不是目标文件inode,如果是inode,删除目标文件,因为有硬链接的存在,使得inode依然存在,则软连接依然有效,所以记录的不是文件inode;而且如果我们删除目标文件,在新建一个相同文件名的文件(内容不同),则软连接就再次有效了,所以软连接记录的是目标文件名,而不是inode;此时,硬链接和软连接的数据是不同的。

通俗理解:

  • 一个是你原文件没有了,这个链接就失效了(软链接),类似于windows快捷方式。
  • 一个是你原文件没有了。这个文件还在(硬链接)。

6.文件搜索命令:

  • 文件搜索命令locate
  • 命令搜索命令whereis与which
  • 文件搜索命令find
  • 字符搜索命令grep
  • find命令与grep命令的区别

文件搜索命令locate命令格式:

locate 文件名
//在后台数据库中按文件名搜索,搜索速度更快
/var/lib/mlocate
//locate命令所搜索的后台数据库的路径,即会在上面的路径下进行搜索
updatedb(sudo updatedb)
//因为是在路径中搜索,不能保证实时搜到新创建的文件,所以搜索之前可以更新数据库

locate比较快,但是功能单一;find比较强大,但是速度相对较慢。

搜索命令的命令whereis、which:

whereis 命令 名
结果显示,搜索命令所在路径及帮助文档的所在位置
选项:
    -b 值查找可执行文件
    -m 值查看帮助文件
which:
    相对whereis,还可以看见别名,配置文件等,如果命令有这些信息的话。

PATH环境变量:定义的是系统搜索命令的路径

find命令:

find [搜索范围] [搜索条件]
find /home/yangyang -name test1
find搜索的文件名必须与搜索条件中的文件名一模一样。如果需要模糊匹配,可以使用通配符。
避免大范围搜索,会非常耗费系统资源。
find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。

通配符:

  • *匹配任意多个内容
  • ?匹配任意一个字符
  • []匹配任意一个中括号内的字符
find /hoem/yangyang -name "ab[cd]" 
那么可以找到abc abd这样的文件

find /root -iname install.log
不区分大小写
find /root -user root
按照所有者搜索(所有者是root)
find /root -nouser
查找没有所有者的文件

内核产生、外来文件(win拷进Linux)可以没有所有者。

find /var/log/ -mtime +10
查找10天前修改的文件
-10 10天内修改的文件
10 10天当天修改的文件
+10 10天前修改的文件

atime 文件访问时间
ctime 改变文件属性
mtime 修改文件内容

find . -size 25k(.表示当前目录,也可以使用路径)
查找文件大小是25kb的文件
-25k 小于25kb的文件
25k 等于25kb的文件
+25k 大于25kb的文件

find . -inum 262422(.表示当前目录,也可以使用路径)
查找i节点是262422的文件

find /etc -size +20k -a-size -50k
查找/etc/目录下,大于20KB并且小于50KB的文件
-a and 逻辑与,两个条件都满足
-o or 逻辑或,两个条件满足一个即可
find /etc -size +20k -a -size -50k -exec ls -lh {}\;
查找/etc/目录下,大于20KB并且小于50KB的文件,并显示详细信息
-exec/-ok 命令 {}\;对搜索结果再次执行命令,进行筛选。

搜索字符串命令grep:

grep [选项] 字符串 文件名
在文件当中匹配符合条件的字符串
选项:
    -i 忽略大小写
    -v 排除指定字符串

grep "size" anaconda-ks.cfg
搜索anaconda-ks.cfg文件中,还有size的行。

find命令与grep命令的区别:

  • find命令:在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,匹配符是完全匹配。
  • grep命令:在文件当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式时包含匹配。

7.Linux帮助命令:

man 命令
获取指定命令的帮助

man ls
查看ls的帮助

man命令级别:
    1 查看命令的帮助
    2 查看可被内核调用的函数的帮助
    3 查看函数和函数库的帮助
    4 查看特殊文件的帮助(主要是/dev目录下的帮助)
    5 查看配置文件的帮助
    6 查看游戏的帮助
    7 查看其它杂项的帮助
    8 查看系统管理员可用命令的帮助
    9 查看和内核相关文件的帮助

查看命令拥有哪个级别的帮助:
man -f 命令

相当于:
whatis 命令 [whereis 命令 更多的信息]

man -f passwd(含有两个级别)
passwd (1)
passwd (5)[然后查看15两个命令]

man 1 passwd
man 5 passwd

猜你喜欢

转载自blog.csdn.net/u014465934/article/details/81294371
今日推荐