linux 系统学习1

https://www.imooc.com/video/3236   慕课网教程

一.linux简介     用户端个人领域 -windows      服务器端-linux   

  1.起源:   Linux前身:Minix,由Andrew S. Tanenbaum教授参考Unix编写
Linux创始人:Linus Torvalds    

Linux分为内核版本和发布版本(发布版本都是各大公司根据内核版本加入自己的理解开发的)  图标是芬兰的吉祥物,企鹅

Linux内核官网:www.kernel.org

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

centos和Redhat完全一样,但centos完全免费;Redhat有服务收费,但是centos  已经被Redhat收购了,天知道什么时候会收费

ununtu  的优势在于有好的图形界面,但是弊端也是由于图形界面产生的,因为图形界面,系统不稳定和更容易遭受到攻击(图形界面要用到很多的程序和连接跟多的服务)

 

2.linux开源软件(就如同windows 安装的软件一样,但是不是exe等文件,可以看到源代码)

   开源:源代码开放,开源不等于免费
常用开源软件
1、apache(羽毛标志):网站搭建软件,可发布已写好网站至互联网
2、nginx:占用资源更少,提供更多访问量,抗并发高
3、linux、php、mysql、apache、nginx、是常用搭建平台
4、monggoDB、sumba、ruby、python等

3.应用领域

 

Linux的应用领域

1. 基于Linux的应用服务器

查看现在互联网发展报告和各个网站详细信息(比如用的服务器是什么):http://www.netcraft.com

2. 嵌入式应用

远程管理android手机,给手机装上ssh应用(QuickSSHd),使用SecureCRT应用连接手机。安卓系统的底层其实是Linux;苹果的iOS系统的底层是unix。

4.Linux与Windows的不同:

1、Linux严格区分大小写

2、Linux中所有的内容以文件形式保存,包括硬件、用户

3、Linux不靠扩展名来区分文件,它靠权限来区分文件  (ls -lh) 返回的每一条的第一位就是文件类型(只有7种文件类型)   

       以下后缀名并不是linux本身规定后缀,而是使用者自我区分文件类型后缀。

      压缩包:*.gz  *.bz2   *.tar.bz2   *.tgz

      二进制:.rpm

      网页文件:*.html  *.php

      脚本文件: *.sh

      配置文件:*.conf

4、Windows下的程序不能直接在Linux中安装和运行

二。linux 系统安装

1.安装  或者是docker 镜像安装

VNware 的官网下载地址:http://www.vmware.com.

VNware 的只要特点:

  1. 不需要分区或重新开机,就能在同一PC上使用两种操作系统;

  2. 本机系统可与虚拟机系统网络通信;

  3. 可以设定并且随时修改虚拟机操作系统的硬件环境;

  4. 安装VMware的基本要求:CPU:建议主频为1GHz以上;内存:最低1GB;硬盘:建议分区

2.使用

桥      接:用真实网卡,占用网段,可与局域网其他机器通信

 HOST ONLY :用 VMNET 1 只能与主机通讯 ,不能上网

 NAT       :用VMNET  8 能与主机通讯,可以上网

后面两种,只能实现虚拟主机和原机的通信,不能与局域网的的其他机器通信

3.系统分区和格式化        https://blog.csdn.net/github_39319000/article/details/80953125(阿里云ecs 7天玩转服务器)

硬盘分区(主分区):最多只能分4个  (windows 也是这,都是由硬盘的结构决定的);

扩展分区:最多只能有1个;

                 主分区加扩展分区最多只能有4个;

                 不能写入数据,只能包含逻辑分区

逻辑分区: 理论上最多可分23个;

格式化可以清空文件,但其目的不是为了清空文件,而是为了写入文件系统;

windows 文件系统(fat16  fat32  ntfs) linux 文件系统(ext2  ext3  ext4  swap 这个没有挂载点,直接分配空间就行,临时空间)

格式化最主要是为了写入文件系统,对于linux来讲它写入文件系统主要干了两个事情。 1.把整个分区分成了等大小的数据块(block默认4kb)。 2.在分区列表里面建立了二维表格,里面记录了每个文件的ID、修改时间、权限还有文件的保存位置,我们把ID号称为I节点(I node)。从这个表格从关联数据块。

硬盘分区决定主分区最多只能有四个,512字节(扇区大小)-448字节(记录启动信息)=64(进行分区表示)[每16个字节表示一个分区] Windows下A、B作为软分区的盘符,C作为第一个主分区的盘符,所以最多还能分23个子分区。 格式化的作用:将硬盘打隔断,根本目的是为了写入文件系统。 FAT16:最大支持2G的分区 FAT32单个文件大写不能超过4G,支持分区大小16TB,NTFS支持更大单个文件支持更大分区。 格式化目的:1.将整个分区分为等大小数据块,默认最小存储单位block大小为4KB。2 .分区列表:拥有I节点(ID号),修改时间,权限,保存的位置。先将衣服拿出来才能打隔段,所以格式化要将数据清空。

4.分区设备文件名与挂载

1. Windows与Linux不同的磁盘分区流程 Windows:分区-->格式化-->分配盘符 Linux:分区-->格式化-->给每个分区起“设备文件名”-->分配挂载点

2.设备文件名:Linux中一切皆文件,包括硬件、用户等。硬件的文件名即称作“硬件设备文件名”,硬件设备文件名作为硬件的标准称呼,是由Linux自动检测并分配的。硬件设备文件在目录中处于根目录(“/”代表根目录,最高级目录)下的dev文件夹(专用于放硬件设备文件)下,即“/dev”文件夹下。 分区的设备文件名分配规则: hd代表IDE接口,sd代表SCSI接口或SATA接口; a代表第一块硬盘,如有多块硬盘b代表第二块硬盘,c代表第三块硬盘,以此类推; 1代表一块硬盘上的第一个分区,2代表此硬盘的第二个分区,3代表此硬盘第三个分区,以此类推,其中1234编号只能代表主分区或扩展分区,逻辑分区的编号从5开始分配,最大分区编号16 /dev/sda1 第一块SATA接口硬盘的第一个分区 IDE接口,老式硬盘接口,传输速度较慢,理论速度133MB/S SCSI 接口,老式服务器硬盘接口,理论速度200MB/S SATA接口(窗口硬盘),目前使用的硬盘接口,分三代,SATA3的理论速度为500MB/S

3.挂载点:参考Windows中的盘符的概念来理解。Windows中使用字母标识符来指定在这个分区上的文件和目录,而Linux中使用目录作为挂载点(盘符) 绝大多数目录都可以作为挂载点(部分必须和根目录放在同一个分区的目录除外,否则将导致系统不能启动)包括你手工创建的目录。

必须分区:

根分区 /(挂载点根目录,根目录中要保存其他所有数据,根目录如果没有硬盘空间,根下的很多数据将没有地方存放)

swap分区(交换分区,可理解为虚拟内存, 当真实内存不足时,可将swap分区中的硬盘空间作为内存使用,如果内存小于等于4GB,推荐swap分配内存的两倍,若内存大于4GB,建议swap空间与内存相等,不需要挂载点)

推荐分区:

启动分区,推荐200MB (挂载点/boot目录,/boot中存放了用于系统启动的相关数据,如果不单独分区,将会和根分区存放在同一个存储空间中,如果根分区写满将导致系统无法启动)

5.虚拟机系统的安装  

1、Desktop(桌面)

2、Minimal Desktop (最小化桌面)

3、Minimal(最小化)

4、Basic Server(基本服务器) v

5、DataBse SErver(数据库服务器)

6、Web Server(网页服务器)

7、Virtual Host(虚拟主机)

8、software development worstation(软件开发工作站)

分区顺序:/boot 200M 、/home xxx 、swap 4G以上为内存大小 、/根分区 剩余可用空间

Ctrl + Alt + Enter 可以把虚拟机设为全屏

swap没有挂载点,说明这个东西不是给用户用的

Ctrl + Alt切出鼠标;

安装完虚拟机之后多出两个虚拟机网卡:桥接网则是虚拟机网卡和真实网卡直接通信,缺点是会占用真实网卡的IP;HAT则是用虚拟机VMware8虚拟网卡。

2. 格式化:又称逻辑格式化,是根据用户选定的文件系统(如AT16,FAT32(单个文件数据不能超过4G),NTFS,EXT2,EXT3,EXT4),在磁盘的特定区域写入特定数据,在分区中划出一片用于存放文件分配表、目录表等用于文件管理的磁盘空间。 * 盘符:DOS、windows系统对于磁盘存储设备的标示符。A:,B:表示两个软驱,硬盘设备就是从字母C:开始,一直到Z:。对于UNIX,Linux系统来说,没有盘符的概念,以目录作为盘符;

/root/install.log 记录安装系统软件包以及其文件信息

/root/install.log.syslog 记录安装过程留下来的事件记录

/root/anacona-ks.cfg 以kickstart配置文件的格式记录安装过程中设置的选项信息(可以供服务器批量使用);

inux分区顺序:(把大硬盘分为小逻辑分区)->格式化(写入文件系统)->给设备起文件名->分配盘符(挂载);

swap分区不是给用户看的,是系统直接调用的所以无挂载点(盘符类似); .cfg配置文件可以认为是一个模板文件,可以用来装很多机器;

6.修改网络配置进行通讯

   临时修改ifconfig    永久修改setup   或者是   修改配置文件        然后启动网络服务

7.文件的基本格式和文件处理命令

1.起始符: [root@localhost ~]# root 当前登录用户 localhost 主机名 ~ 当前所在目录(家目录) # 超级用户的提示符

2.命令格式:命令 [选项] [参数]     比如  ls  -lh(选项) 文件夹或者文件(如果不写就是当前的文件夹)  

ls命令选项: ls -a 显示所有文件,包括隐藏文件

                      ls -l 显示详细信息

                      ls -d 查看目录属性

                      ls -h 人性化显示文件大小

                      ls -i 显示inode

3.文件权限(10位),第一位为文件类型(在linux 中只有7中文件类型),后面每3位一组 -rw-r--r-- -文件类型(-文件 d目录 l软链接目录) rw- u所有者 r-- g所属组 r-- o其他人 r读 w写 x执行 -rw-r--r--. 1 root root 1207 .代表ACL权限 1应用计数 在linux中“.”开头的文件是隐藏文件。

4.# 超级用户的提示符 ¥普通用户的提示符 ~ 代表当前目录

4.文件处理命令

1、linux中一切皆文件。目录为目录文件。普通文件用来保存数据,目录文件用来保存文件。

2、mkdir :建立目录(make directories)

2-1)mkdir -p [目录名] 2-1-1)-p :递归创建,当创建多级目录时需加

2-2)例:

2-2-1)mkdir light

2-2-2) mkdir -p imooc/linux/light

3、cd [目录] :切换目录(change directory)

3-1)简化操作

3-1-1)cd ~/ cd :进入当前用户的家目录

3-1-2)cd - :进入上次目录

3-1-3)cd .. :进入上一级目录

3-1-4)cd . :进入当前目录

4、路径 4-1)相对路径:参照当前所在目录,进行查找 4-2)绝对路径:从根目录开始制定,一级一级递归,进行查找

5、pwd :查询所在目录位置(print working directory)

ctrl+L == 清屏

Linux有命令,目录补全的功能(tab),如果嗯一下没反应说明可能根目录下没有l开头的目录或者l开头的目录较多,此时再嗯一下table键就会列出所有l开头的文件,如果没有列出则说明根目录下没有l开头的文件

2.目录学习

【Author LightXun】 【引用请转明出处】 【Linux】第三章 linux 目录处理命令(下)

1、删除空目录

1-1)rmdir [目录名] (remove empty directories)

1-1-1)只能删除空目录

2、删除文件或目录

2-1)rm -rf [文件或目录] (remove)

2-1-1)选项 -r :删除目录

2-1-2)选项 -f :强制

2-1-3)rm [文件名] :提示是否删除

2-1-4)rm -r [目录] :删除目录需加 -r ,目录中含有子文件,将持续询问是否删除

2-1-5)rm -rf [目录] :删除目录, 不会询问是否删除而直接进行

2-1-6)纯字符界面没有回收站。注意自杀指令:rm -rf /

2-2)rm -rf /tmp/* :删除tmp目录下的内容

2-3)rm -rf /tmp/ :删除tmp目录

3、建议:删除文件或目录习惯使用命令 rm -rf [文件或目录]

4、复制命令

4-1)cp [选项] [原文件或目录] [目标目录] (copy)

4-1-1)选项 -r :复制目录

4-1-2)选项 -p :连带文件属性复制

4-1-3)选项 -d :若原文件是链接文件,则复制链接属性

4-1-4)选项 -a :相当于 -pdr 全选 4-2)

例子 4-2-1)cp abc /tmp/ 若目标目录不加文件名,则为原名复制 4-2-2)cp abc /tmp/ana 若目标目录后加入文件名,则为改名复制 4-2-3)cp -r japan/ /tmp/ 复制目录 4-2-4)cp -a japan/ /tmp/ 完全复制,包括所有属性 4-3)被复制文件的时间为执行复制命令的时间,若要使被复制的文件与原文件属性完全一致,需加 -a

5、剪切或改名命令

5-1)mv [原文件或目录] [目标目录] (move)

5-1-1)mv japan/ /tmp/ 剪切目录时不需加 -r

5-1-2)mv abc longls 当原文件与目标目录,在同一目录下,则为改名命令

6、当前系统时间命令:date

7、ls -l 命令别名 :ll

3.目录作用

linux 是个严谨的操作系统,一级目录都严格规定 做练习推荐在家目录中(home),以及tmp。

1、/ 根目录

2、/bin 命令保存目录(普通用户就可以读取的命令)

2-1)根目录下的bin和sbin,usr目录下的bin和sbin,这四个目录都是用来保存系统命令。其中,bin目录 下的命令任何用户都可以执行,sbin目录下只有root才可以执行。linux使用此方式来区分用户权限。

3、/boot 启动目录,启动相关文件

4、/dev 设备文件保存目录

5、/etc 配置文件保存目录

6、/home 普通用户的家目录

7、/lib 系统库保存目录

7-1)操作系统中并没有把所有功能都写入linux中,而将常用的功能写成一个个程序库,此些库保存在lib 中,当需要时调用即可。避免全部写入linux中,使其无比庞大且运行缓慢。

8、/mnt 系统挂载U盘、移动硬盘目录

8-1)老师习惯于在mnt下创建CD-ROM来挂载光盘,在mnt下创建USB来挂载U盘。原因在于老师的linux中不存 在media、misc目录。

9、/media 挂载光盘目录 1

0、/misc 外接磁带机挂载目录

11、/root 超级用户的家目录

12、/tmp 临时目录

12-1)可存放临时数据

13、/sbin 命令保存目录(超级用户才能使用的目录) 1

4、/proc 直接写入内存的

14-1)该目录同sys目录不能直接操作,这两个目录保存的是内存的挂载点。其中的数据直接写在内存中。避免数据丢失或由于内存溢出导致系统崩溃。

15、/sys

16、/usr 系统软件资源目录

16-1)/usr/bin/ 系统命令(普通用户)

16-2)/usr/sbin/ 系统命令(超级用户)

17、/var 系统相关文档内容

4.链接命令 ln -s(创建软连接,不加s就是硬链接) [原文件] [目标文件] (link)  https://www.imooc.com/notepad/l3bd61

   软连接相当于windows 里面的快捷方式,硬链接相当于一个教室的两个门,推荐软链家,硬链接的局限性(1.不能跨分区使用,2.不能对 文件夹使用,只能在文件上面使用)

文件搜索

  1. locate  文件名     优势:快,因为在昨天更新好的数据库查找,缺点:只能跟文件名    如果搜过不到可能是搜搜索的配置文件过滤了  https://www.imooc.com/notepad/l3bd6a          
  2. 搜索命令的命令 whereis(显示帮助文档)  which(显示别名)echo $PATH (环境变量) whoami显示当前操作用户     whatis ls ls的作用
  3. find 搜索  命令格式:find [搜索范围] [搜索条件]      https://www.imooc.com/notepad/20daa4
  4. grep 搜索 命令格式:grep [选项] 字符串 文件名 (字符串使用 "" 包围,结果为行记录) -i 忽略大小写 -v 排除指定字符串 find 命令与 grep 命令的区别 find:在 系统 中搜索符合条件的 文件名,使用 通配符(完全)匹配 grep:在 文件 当中搜索符合条件的 字符串,使用 正则表达式 (包含)匹配
  5. 帮助命令 命令格式:man + 【数字】+命令名称  因为有8个级别,查具体级别(man -f 命令 相当于 whatis 命令)可以加数字    
  6. 其他帮助命令      man,--help,help,info总共四种获取帮助的命令。
    1. 命令 --help 获取选项帮助 例如:ls --help
    2.help shell内部命令 例如:whereis可以用来判断一个命令是否是shell内部命令,ls在/bin/下面有可执行文件 说明ls命令不是shell内部命令,cd命令在/bin/下面没有相应的可执行文件,所以是shell 自带的命令.
    3.info 命令 info里面内容十分繁琐,是关于命令的一个巨大的帮助文档,里面有各个版本对于此命令 的说明。 -回车:进入带*号的说明 -u: 进入上层页面 -n: 进入下一个帮助小节 -p: 进入上一个帮助小节 -q: 退出

压缩和解压缩            https://www.imooc.com/notepad/la4bd4

常用压缩格式:.zip .gz .bz2 常用压缩格式:.tar.gz .tar.bz2

打包命令

tar tar -cvf 打包文件名 源文件 //压缩为tar格式

tar -zvcf 压缩包名.tar.gz 源文件 //压缩为.tar.gz格式

tar -jvcf 压缩包名.tar.bz2 源文件 //压缩为.tar.bz2格式

解压

tar tar -xvf 打包文件名 //解压tar格式文件

tar -zxvf 压缩包名.tar.gz //解压.tar.gz格式文件

tar -jxvf 压缩包名.tar.bz2 //解压.tar.bz2格式文件

挂载             https://www.imooc.com/notepad/10e574            (如果是光盘和U盘一定记得卸载,u盘走的是硬盘系统,所以要先查看硬盘的情况  fdisk -l  硬盘设备排到哪里了)

  1. mount [-t 文件系统] [-o特殊选项] 设备文件名 挂载点
          -o特殊选项 
  2. fdisk  创建和维护分区表的程序      l 列出素所有分区表
  3. df命令是  查看linux系统以磁盘分区的情况(磁盘满了没有)
  4. du  统计文件夹的大小

用户登录查看

  1. w 查看用户信息 (有系统资源) load average: x.xx x.xx x.xx 表示系统在1分钟内 5分钟内 15分钟内的平均负载(CPU 内存) tty:终端 tty1本机终端 pts/0第一个远程终端 IDLE:用户闲置时间 WHAT:用户正在执行命令
  2. who 查看用户信息(简化)
  3. last 查询当前登陆和过去登陆用户信息 (可以看到reboot时间)实际是查看/var/log/wtmp 但必须用last命令才能看
  4. lastlog 查看所有用户最后一次登陆时间 /var/log/lastlog 不能直接看 也是用lastlog看

shell 基础

  1. shell 概述          (用户输入的是ascill 码 (abcd 等),需要通过shell转化成机器识别的0101语言,这就是shell)
    1)Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至时编写一些程序。Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令 (2)Shell分类 Bourne Shell:主文件名为sh C Shell:BSD版的Unix 两种语法类型有Bourne和C,彼此不兼容。Bourne家族主要包括sh,ksh,Bash(Linux标准Shell),psh,zsh;C家族主要包括:csh,tcsh echo $SHELL 查看Shell Bash:Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell vi /etc/shells       
              
  2. 脚本执行方式          https://www.imooc.com/notepad/l4cc24
    方法1:赋予执行权限,直接运行 chmod 755 hello.sh ./hello.sh(或者绝对路径执行 /root/hello.sh)
    方法2:通过Bash调用执行脚本 bash hello.sh
  3. 别名和快捷键           https://www.imooc.com/notepad/ld1563
  4. 历史命令  https://www.imooc.com/notepad/l7b06a
  5. 输出重定向    https://www.imooc.com/notepad/4lfb59
  6. 管道符    https://www.imooc.com/notepad/9lfd6b
    "|" 管道符 命令1|命令2 命令1正确的结果 作为命令2的操作对象
  7. 通配符  https://www.imooc.com/notepad/107d16

猜你喜欢

转载自blog.csdn.net/github_39319000/article/details/81196417
今日推荐