Linux学习第六天
学习Linux环境下的挂载命令。
什么是挂载命令?
1.Windows下,mount挂载,就是给磁盘分区提供一个盘符(C,D,E,...)。比如插入U盘后系统自动分配给了它I:盘符其实就是挂载,退优盘的时候进行安全弹出,其实就是卸载unmount。
2.Linux下,不像Windows可以有C,D,E,多个目录,Linux只有一个根目录/。在装系统时,我们分配给linux的所有区都在/下的某个位置,比如/home等等。
3.提问者插入了新硬盘,分了新磁盘区sdb1。它现在还不属于/。
4.我们虽然可以在一些图形桌面系统里找到他的位置,浏览管理里面的文件,但在命令行却不知怎么访问它的目录,比如无法使用cd或者ls。也无法在编程时指定一个目录对它操作。
5.这时提问者使用了 mount /dev/sdb1 ~/Share/ ,把新硬盘的区sdb1挂载到工作目录的~/Share/文件夹下,之后访问这个~/Share/文件夹就相当于访问这个硬盘2的sdb1分区了。对/Share/的任何操作,都相当于对sdb1里文件的操作。
6.所以Linux下,mount挂载的作用,就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。
7.linux操作系统将所有的设备都看作文件,它将整个计算机的资源都整合成一个大的文件目录。我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。挂载就是把设备放在一个目录下,让系统知道怎么管理这个设备里的文件,了解这个存储设备的可读写特性之类的过程。
8.我们不是有/dev/sdb1 吗,直接对它操作不就行了?这不是它的目录吗?
9.这不是它的目录。虽然/dev是个目录,但/dev/sdb1不是目录。可以发现ls/dev/sdb1无法执行。/dev/sdb1,是一个类似指针的东西,指向这个分区的原始数据块。mount前,系统并不知道这个数据块哪部分数据代表文件,如何对它们操作。
10.插入CD,系统其实自动执行了 mount /dev/cdrom /media/cdrom。所以可以直接在/media/cdrom中对CD中的内容进行管理。
mount 命令用来挂载文件系统。其基本命令格式为:
mount -t type [-o options] device dir
device:指定要挂载的设备,比如磁盘、光驱等。
dir:指定把文件系统挂载到哪个目录。
type:指定挂载的文件系统类型,一般不用指定,mount 命令能够自行判断。
options:指定挂载参数,比如 ro 表示以只读方式挂载文件系统。
用法:
 mount [-lhV]
 mount -a [选项]
 mount [选项] [--source] <源> | [--target] <目录>
 mount [选项] <源> <目录>
 mount <操作> <挂载点> [<目标>]
挂载文件系统。
选项:
 -a, --all               挂载 fstab 中的所有文件系统
 -c, --no-canonicalize   不对路径规范化
 -f, --fake              空运行;跳过 mount(2) 系统调用
 -F, --fork              对每个设备禁用 fork(和 -a 选项一起使用)
 -T, --fstab <路径>      /etc/fstab 的替代文件
 -i, --internal-only     不调用 mount.<type> 辅助程序
 -l, --show-labels       也显示文件系统标签
 -n, --no-mtab           不写 /etc/mtab
 -o, --options <列表>    挂载选项列表,以英文逗号分隔
 -O, --test-opts <列表>  限制文件系统集合(和 -a 选项一起使用)
 -r, --read-only         以只读方式挂载文件系统(同 -o ro)
 -t, --types <列表>      限制文件系统类型集合
     --source <源>       指明源(路径、标签、uuid)
     --target <目标>     指明挂载点
 -v, --verbose           打印当前进行的操作
 -w, --rw, --read-write  以读写方式挂载文件系统(默认)
-h, --help              display this help
 -V, --version           display version
源:
 -L, --label <标签>      同 LABEL=<label>
 -U, --uuid <uuid>       同 UUID=<uuid>
 LABEL=<标签>            按文件系统标签指定设备
 UUID=<uuid>             按文件系统 UUID 指定设备
 PARTLABEL=<标签>        按分区标签指定设备
 PARTUUID=<uuid>         按分区 UUID 指定设备
 <设备>                  按路径指定设备
 <目录>                  绑定式挂载的挂载点(参阅 --bind/rbind)
 <文件>                  用于设置回环设备的常规文件
操作:
 -B, --bind              挂载其他位置的子树(同 -o bind)
 -M, --move              将子树移动到其他位置
 -R, --rbind             挂载其他位置的子树及其包含的所有子挂载(submount)
 --make-shared           将子树标记为 共享
 --make-slave            将子树标记为 从属
 --make-private          将子树标记为 私有
 --make-unbindable       将子树标记为 不可绑定
 --make-rshared          递归地将整个子树标记为 共享
 --make-rslave           递归地将整个子树标记为 从属
 --make-rprivate         递归地将整个子树标记为 私有
 --make-runbindable      递归地将整个子树标记为 不可绑定
学习Linux环境下的ifconfig命令。
首先需要先下载网络工具:
$sudo apt install net-tools


用法:
  ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]
  [add <address>[/<prefixlen>]]
  [del <address>[/<prefixlen>]]
  [[-]broadcast [<address>]]  [[-]pointopoint [<address>]]
  [netmask <address>]  [dstaddr <address>]  [tunnel <address>]
  [outfill <NN>] [keepalive <NN>]
  [hw <HW> <address>]  [mtu <NN>]
  [[-]trailers]  [[-]arp]  [[-]allmulti]
  [multicast] [[-]promisc]
  [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]
  [txqueuelen <NN>]
  [[-]dynamic]
  [up|down] ...
<HW>=硬件类型。
  可能硬件类型列表:
    loop (本地环回) slip (Serial Line IP) cslip (VJ Serial Line IP) 
    slip6 (6-bit Serial Line IP) cslip6 (VJ 6-bit Serial Line IP) adaptive (Adaptive Serial Line IP) 
    ash (Ash) ether (以太网) ax25 (AMPR AX.25) 
    netrom (AMPR NET/ROM) rose (AMPR ROSE) tunnel (IPIP Tunnel) 
    ppp (点对点协议) hdlc ((Cisco)-HDLC) lapb (LAPB) 
    arcnet (ARCnet) dlci (Frame Relay DLCI) frad (Frame Relay Access Device) 
    sit (IPv6-in-IPv4) fddi (Fiber Distributed Data Interface) hippi (HIPPI) 
    irda (IrLAP) ec (Econet) x25 (generic X.25) 
    eui64 (Generic EUI-64) 
  <AF>=地址族。默认:inet
  可能的地址族列表:
    unix (UNIX Domain) inet (DARPA Internet) inet6 (IPv6) 
    ax25 (AMPR AX.25) netrom (AMPR NET/ROM) rose (AMPR ROSE) 
    ipx (Novell IPX) ddp (Appletalk DDP) ec (Econet) 
    ash (Ash) x25 (CCITT X.25)
学习Linux环境下的文件权限(重点掌握chmod命令)
chmod 命令语法:
chmod(选项)(参数)
- u # 操作对象简称,用户user,文件或目录的所有者。
- g # 操作对象简称,同组用户group,文件或目录所属群组
- o # 操作对象简称,其它用户others
- a # 操作对象简称,所有用户all,系统默认使用此项
- + # 权限操作符,添加某些权限
- - # 权限操作符,取消某些权限
- = # 权限操作符,设置文件的权限为给定的权限
- r # 权限设定(英文),表示可读权限
- w # 权限设定(英文),表示可写权限
- x # 权限设定(英文),表示可执行权限
- - # 权限设定(英文字符),表示没有权限
- X # 权限设定,如果目标文件是可执行文件或目录,可给其设置可执行权限
- s # 权限设定,设置权限suid和sgid,使用权限组合“u+s”设定文件的用户的ID位,“g+s”设置组ID位
- t # 权限设定,只有目录或文件的所有者才可以删除目录下的文件
- -c或——changes # 效果类似“-v”参数,但仅回报更改的部分,如果文件权限已经改变,显示其操作信息;
- -f或--quiet或——silent # 操作过程中不显示任何错误信息;
- -R或——recursive # 递归处理,将指令目录下的所有文件及子目录一并处理;
- -v或——verbose # 显示命令运行时的详细执行过程;
- --reference=<参考文件或目录> # 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
- <权限范围>+<权限设置> # 开启权限范围的文件或目录的该选项权限设置;
- <权限范围>-<权限设置> # 关闭权限范围的文件或目录的该选项权限设置;
- <权限范围>=<权限设置> # 指定权限范围的文件或目录的该选项权限设置;
- --help # 显示帮助信息
- --version # 显示版本信息
chmod 命令参数:
权限模式:指定文件的权限模式;
文件:要改变权限的文件。
权限范围的表示法如下:
- u User,即文件或目录的拥有者;
- g Group,即文件或目录的所属群组;
- o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
- a All,即全部的用户,包含拥有者,所属群组以及其他用户;
- r 读取权限,数字代号为“4”;
- w 写入权限,数字代号为“2”;
- x 执行或切换权限,数字代号为“1”;
- - 不具任何权限,数字代号为“0”;
- s 特殊功能说明:变更文件或目录的权限。
chmod 命令实例:
Linux 用户分为:拥有者、组群(Group)、其他(other),Linux 系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及 root 的相关信 息, 都是记录在 /etc/passwd 文件中。每个人的密码则是记录在 /etc/shadow 文件下。 此外,所有的组群名称记录在 /etc/group 內!
linux文件的用户权限的分析图
- -rw-r--r-- 1 user staff 651 Oct 12 12:53 .gitmodules
- # ↑╰┬╯╰┬╯╰┬╯
- # ┆ ┆ ┆ ╰┈ 0 其他人
- # ┆ ┆ ╰┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈ g 属组
- # ┆ ╰┈┈┈┈ u 属组
- # ╰┈┈ 第一个字母 `d` 代表目录,`-` 代表普通文件
- 例:rwx rw- r--
- r=读取属性 //值=4
- w=写入属性 //值=2
- x=执行属性 //值=1
- chmod u+x,g+w f01 # 为文件f01设置自己可以执行,组员可以写入的权限
- chmod u=rwx,g=rw,o=r f01
- chmod 764 f01
- chmod a+x f01 # 对文件f01的u,g,o都设置可执行属性
- #文件的属主和属组属性设置
- chown user:market f01 # 把文件f01给uesr,添加到market组
- ll -d f1 #查看目录f1的属性
- #将/home/wwwroot/里的所有文件和文件夹设置为755权限
- #(1)直接指定路径修改
- chmod -R 755 /home/wwwroot/*
- #(2)手动进入该目录修改权限(并显示详细过程)
- cd /home/wwwroot
- chmod -Rv 755 * #注意:“*”表示通配符,指的是所有文件和文件
- sudo chmod o+rw /shared #设置文件夹权限以保证其余用户可以访问它。
VI或VIM编辑器的工作方式有哪些?这些工作方式之间如何转换?
可以通过$vimtutor来学习,通常Vi分为三种模式:一般模式、编辑模式、命令行命令模式。
(1) 一般模式Normal Mode(common Mode, c-Mode)
Vi处理文件时,进入该文件就是一般模式,此模式中输入的任何字符皆被视为指令。可以用方向键来移动光标,可以使用“删除字符”或“删除整行”来处理文件内容,也可以使用复制、粘贴处理文件数据
(2) 编辑模式(文本写入模式)Insert Mode (i-Mode)
在一般模式中可以进行删除、复制、粘贴操作,但无法进行编辑,需要按下i, l, o, O, a, A, r, R等才会进入编辑模式,此时进入文本写入模式,而不会被视为命令行。通常在屏幕左下方会出现“INSERT”或“REPLACE”字样,才可以输入任何字符到文件中。返回一般模式按下Esc键即可。
(3) 命令行模式Ed Mode (common-line Mode, e-Mode)
在一般模式中,输入:或/或?就可以将光标移到最下面一行,在这个模式中,可以搜索数据并读取、存盘、大量删除字符、离开Vi、显示行号等操作都是在此模式中实现的。
Linux学习第六天的更多相关文章
- Linux 学习第六天
		一.VIM 1.VIM编辑器 1.1.VIM工作模式 1.1.1.命令模式:复制.剪切.粘贴.搜索等等 1.1.2.输入模式:随意对文件进行内容编辑 1.1.3.末行模式(:):保存退出,编辑环境设置 ... 
- Linux学习--第六天--软件包
		yum在线管理 管理的是rpm包,光盘里面都有 /etc/yum.repos.d下面有四个文件,对应网络yum源,光盘yum源等.如果需要用到哪个源,将其他三个源的enabled设置为0即可. |源配 ... 
- Linux学习日记-使用EF6 Code First(四)
		一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是 请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ... 
- Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码
		在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ... 
- Linux学习笔记之兄弟连
		systemctl --user enable pulseaudio说明:安装完成后系统没有声音,用该命令可以打开.ifconfig eth0 192.168.118.1说明:给网卡设置IP地址.ap ... 
- Linux学习内容
		Linux学习要点(转载自红联) 一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件 ... 
- Linux 学习笔记
		Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ... 
- Linux学习心得之 Linux下命令行Android开发环境的搭建
		作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ... 
- Linux学习心得之 Linux下ant安装与使用
		作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ... 
随机推荐
- redis保存dataset
			公司统一走redis缓存,也将之前的memcache迁移到redis碰到问题是redis的dataset缓存. memcache底层封装了dataset的序列化. 而redis引的DLL包,未支持.所 ... 
- [洛谷P4388] 付公主的矩形
			18.09.09模拟赛T1. 一道数学题. 题目传送门 首先把对角线当成是某个点的移动轨迹,从左下到右上. 那么这个点每上升一个单位长度,就穿过一个格子. 每右移一个单位长度,也会穿过一个格子. 例外 ... 
- shortcuts 快捷键
			Home » Linux » shortcuts 快捷键 Page Updated 2018-12-12 19:23 shortcuts 快捷键 移动光标 Ctrl – a :移到行首 Ctrl – ... 
- 状态模式(State)-设计模式
			软件模式是将模式的一般概念应用于软件开发领域,即软件开发的 总体指导思路或参照样板.软件模式并非仅限于设计模式,还包括 架构模式.分析模式和过程模式等,实际上,在软件生存期的每一个阶段都存在着一些被认 ... 
- js作用域其二:预解析
			文章目錄 解析机制 JavaScript是一门解释型的语言 , 想要运行js代码需要两个阶段 编译阶段: 编译阶段就是我们常说的JavaScript预解析(预处理)阶段,在这个阶段JavaScript ... 
- word2vec的简单理解
			word2vec研究如何将词用向量表示,使用的两个重要模型--CBOW模型(Continuous Bag-of-Words Model)和Skip-gram模型(Continuous Skip-gra ... 
- element ui table render-header自定义表头信息使用
			在使用vue自定义组件内容过程之中,我们绝大多数情况下都是通过预先写好不同的html模板,再通过props传入不同的值来渲染不同的模板.例如我们需要实现一个<v-title size='1'&g ... 
- 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
			效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/ZRjGGy 可交互视频 此视频是可 ... 
- JS基础入门篇(十二)—JSON和Math
			1.JSON JSON: 对象格式的字符串 轻量的数据传输格式 注意事项: 键名 需要 使用 双引号 包起来 JOSN有两个方法:JSON.parse和 JSON.stringify. JSON.pa ... 
- 在windows上极简安装GPU版AI框架(Tensorflow、Pytorch)
			在windows上极简安装GPU版AI框架 如果我们想在windows系统上安装GPU版本的AI框架,比如GPU版本的tesnorflow,通常我们会看到类似下面的安装教程 官方版本 安装CUDA 安 ... 
