精华内容
下载资源
问答
  • 以下是个人在网络搜集到较为容易理解解释,若有...swapwindows系统的交换文件作用类似,但是它是一段连续磁盘空间,并且对用户不可见。 swap分区能够作为“虚拟”内存,但其速度比物理内存慢,因此若需...

    以下是个人在网络搜集到的较为容易理解的解释,若有不对或缺少之处,欢迎评论区纠正及补充,共同学习进步。谢谢!

     

    swap是linux下的虚拟内存分区,作用是在物理内存使用完成之后,将磁盘空间(也即swap分区)虚拟成内存来使用。

    swap和windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。

    swap分区能够作为“虚拟”的内存,但其速度比物理内存慢,因此若需要更快的速度的话,并不能寄厚望于swap,最好的办法是加大物理内存,swap分区只是临时的解决办法。

    swap分区的合理值一般是内存的2倍左右,可适当加大。实际上具体以实际应用为准。

    linux可以创建两种类型的交换空间,一种是swap分区,一种是swap文件。前者适合有空闲的分区可以使用,后者适合于没有空的硬盘分区,硬盘的空间都已经分配完毕。

    linux是一个树形文件系统,根分区是它的root节点,任何的目录,文件都会挂在根节点一下。swap分区是一个遗留,在原来内存比较小,不能满足需要。当内存资源不足的时候,linux就会把一些短期内不会用到的内存数据转储到磁盘上,以空出足够的空间。现在swap分区存在,但是实际上会很少使用到。不排除当启动内存消耗比较大的程序的时候,会使用它。现在swap分区还有一个用处,就是sleep on disk ,sleep可以在memory上也可以在disk。当在disk上时,也可以指定为swap分区。

     

    boot 分区

    早期为什么会分单独的boot分区?
    在2000年左右那会儿,硬盘容量快速发展(实际上也就10G、20G),但是一部分旧式的BIOS还不支持LBA模式,不支持引导距离MBR太远的硬盘分区,现在的小朋友们根本无法想象吧!当时的 Linux 还是极少数 GNU 爱好者的玩具,一般都是作为第二系统和 Windows 共存,而且Linux在硬盘中的位置大都靠后。有时候因为安装的根分区距离MBR太远无法引导,于是流行在 C: 盘后面紧跟着建立一个100、200M的 “/boot” 分区,以防无法启动。
    在现在的硬件条件下,完全没有必要划分boot分区,那只会带来麻烦,容量如果太小,会使你无法安装、升级新内核。现在实际上只需要一个根分区挂在“/”,一个HOME分区挂在“/home”,连 swap 分区都可有可无,因为完全可以用 swapfile 代替。
    单独的HOME分区是为了保护你的个人文件安全,防止系统崩溃时丢失文件。

    如果只是尝鲜的,只分一个30G的/分区就可以了,如果准备长期用的,应该单独分HOME分区,保护个人数据安全

     

     

    展开全文
  • 虚拟内存:相对于物理内存,在 Linux 下还有一个虚拟内存的概念,虚拟内存是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存。用作虚拟内存的磁盘空间被称为交换空间(又称 swap 空间)...

    1、关于虚拟内存和物理内存

    物理内存:即硬件提供的实际内存空间
    虚拟内存:相对于物理内存,在 Linux 下还有一个虚拟内存的概念,虚拟内存是为了满足物理内存的不足而提出的策略,它是利用磁盘空间虚拟出的一块逻辑内存。用作虚拟内存的磁盘空间被称为交换空间(又称 swap 空间)。
    注意:Linux 的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。

    2、合理规划虚拟内存

    交换空间的页面在使用时会首先被交换到物理内存,如果此时没有足够的物理内存来容纳这些页面,它们又会被马上交换出去,如此一来,虚拟内存中可能没有足够的空间来存储这些交换页面,最终会导致 Linux 出现假死机、服务异常等问题。Linux 虽然可以在一段时间内自行恢复,但是恢复后的系统己经基本不可用了。因此,合理规划和设计 Linux 内存的使用是非常重要的,关于物理内存和交换空间的大小设置问题,取决于实际所用的硬盘大小,但大致遵循这样一个基本原则:

    • 如果内存较小(根据经验,物理内存小于 4GB),一般设置 swap 分区大小为内存的 2 倍;
    • 如果物理内存大于 4GB,而小于16GB,可以设置 swap 分区大小等于物理内存;
    • 如果内存大小在 16GB 以上,可以设置 swap 为0,但并不建议这么做,因为设置一定大小的 swap 分区是有一定作用的。

    3、建立swap分区

    3.1 建立swap分区第一步:分区

    [root@localhost ~]# fdisk /dev/sdb
    #以/dev/sdb分区为例
    WARNING: DOS-compatible mode is deprecated.It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').
    Command (m for help): n
    #新建
    Command action e extended p primary partition (1-4)
    P
    #主分区
    Partition number (1-4): 1
    #分区编号
    First cylinder (1-2610, default 1):
    #起始柱面
    Using default value 1
    Last cylinder, +cylinders or +size{K, M, G} (1-2610, default 2610): +500M
    #大小
    Command (m for help): p
    #查看一下
    Disk /dev/sdb: 21.5GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 *512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes 1512 bytes
    Disk identifier: OxOOOOOebd
    Device Boot Start End Blocks Id System
    /dev/sdb1 1 65 522081 83 Linux
    #刚分配的分区ID是83,是Linux分区,我们在这里要分配swap分区
    Command (m for help): t
    #修改分区的系统ID
    Selected partition 1
    #只有一个分区,所以不用选择分区了
    Hex code (type L to list codes): 82
    #改为swap分区的ID
    Changed system type of partition 1 to 82 (Linux swap / Solaris)
    Command (m for help): p
    #再查看一下
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes
    255 heads, 63 sectors/track, 2610 cylinders
    Units = cylinders of 16065 *512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes 1512 bytes Disk identifier: OxOOOOOebd
    Device Boot Start End Blocks Id System
    /dev/sdb1 1 65 522081 82 Linux swap / Solaris
    #修改过来了
    Command (m for help): w
    #记得保存退出
    The partition table has been altered!
    Calling ioctl() to re-read partition table.
    Syncing disks.
    

    3.2 建立 swap 分区第二步:格式化

    因为要格式化成 swap 分区,所以格式化命令是 mkswap。命令如下:

    [root@localhost ~]# mkswap /dev/sdb1
    Setting up swapspace version 1, size = 522076 KiB
    no label, UUID=c3351 dc3-f403-419a-9666-c24615e170fb
    

    3.3 使用swap分区

    在使用 swap 分区之前,我们先来说说 free 命令。命令如下:

    [root@localhost ~]#free
    total used free shared buffers cached
    Mem: 1030796 130792 900004 0 15292 55420
    -/+ buffers/cache: 60080 970716
    Swap: 2047992 0 2047992
    

    free 命令主要是用来查看内存和 swap 分区的使用情况的,其中:

    • total:是指总数;
    • used:是指已经使用的;
    • free:是指空闲的;
    • shared:是指共享的;
    • buffers:是指缓冲内存数;
    • cached:是指缓存内存数,单位是KB;

    注意:cached 是给读取数据时加速的,buffers 是给写入数据加速的。cached 是指把读取出来的数据保存在内存中,当再次读取时,不用读取硬盘而直接从内存中读取,加速了数据的读取过程;buffers 是指在写入数据时,先把分散的写入操作保存到内存中,当达到一定程度后再集中写入硬盘,减少了磁盘碎片和硬盘的反复寻道,加速了数据的写入过程。可以看到,在加载进新的 swap 分区之前,swap 分区的大小是 2000MB,接下来只要加入 swap 分区就可以了,使用命令 swapon。命令格式如下:

    [root@localhost ~]# swapon 分区设备文件名
    

    执行命令:

    [root@localhost ~]# swapon /dev/sdb1
    swap分区已加入,我们查看一下。
    [root@localhost ~]#free
    total used free shared buffers cached
    Mem: 1030796 131264 899532 0 15520 55500
    -/+ buffers/cache: 60244 970552
    Swap: 2570064 0 2570064
    

    swap 分区的大小变成了 2500MB,加载成功了。如果要取消新加入的 swap 分区,则也很简单,命令如下:

    [root@localhost ~]# swapoff /dev/sdb1
    

    如果想让 swap 分区开机之后自动挂载,就需要修改 /etc/fstab 文件,命令如下:

    [root@localhost ~]#vi /etc/fstab
    UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4 defaults 1 1
    UUID=0b23d315-33a7-48a4-bd37-9248e5c443451 boot ext4 defaults 1 2
    UUID=4021be19-2751-4dd2-98cc-383368c39edb swap swap defaults 0 0
    tmpfs /dev/shm
    tmpfs defaults 0 0
    devpts /dev/pts
    devpts gid=5, mode=620 0 0
    sysfs /sys
    sysfs defaults 0 0
    proc /proc
    proc defaults 0 0
    /dev/sdb1 swap swap
    defaults 0 0
    #加入新swap分区的相关内容,这里直接使用分区的设备文件名,也可以使用UUID。
    
    展开全文
  • linux中swap分区的介绍

    2017-08-09 21:33:09
    Windows系统的交换文件作用类似,但是它是一段连续磁盘空间,并且对用户不可见。 缺点:这个SWAP分区能够作为"虚拟"内存,但它速度比物理内存可是慢多了,因此如果需要更快速度话,并不能寄厚望于SWAP,...

    一、概念:

        SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用.它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。
        缺点:这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于SWAP,最好的办法仍然是加大物理内存.SWAP分区只是临时的解决办法。
    

    二、下面通过一个示例来说明swap相关的命令

    1、创建swap分区
    

    [root@centos7 ~]# fdisk /dev/sdb
    Command (m for help): n
    Partition number (1-4, default 1): 1
    Last sector, +sectors or +size{K,M,G} (2048-419430399, default 419430399): +2G
    Command (m for help): t
    Hex code (type L to list all codes): 82
    Changed type of partition 'Linux' to 'Linux swap / Solaris'

    2、同步分区
    

    [root@centos7 ~]# partprobe /dev/sdb

    3、制作swap分区系统
    

    [root@centos7 ~]# mkswap /dev/sdb1

    4、修改文件配置,使其开机挂载
    

    [root@centos7 ~]# vim /etc/fstab
    UUID=4c8c4003-c6ef-402f-b94a-9f7de3655fd5 swap swap defaults 0 0

    5、使自动挂载立即生效
    

    [root@centos7 ~]# mount -a

    6、查看空间使用情况
    

    [root@centos7 ~]# free
    [root@centos7 ~]# swapon -s #查看空间使用情况以及更详细的信息

    如果想使自己的swap分区优先使用,可以修改配置文件;
    [root@centos7 ~]# vim /etc/fstab
    UUID=4c8c4003-c6ef-402f-b94a-9f7de3655fd5 swap swap pri=2 0 0

    但是这样使用mount -a 不能立即使其生效,所有利用下面命令使其生效,先禁用再启用
    

    [root@centos7 ~]# swapoff /dev/sdb1
    [root@centos7 ~]# swapon -a
    [root@centos7 ~]# swapon -s
    Filename Type Size Used Priority
    /dev/dm-1 partition 1953788 5980 -1
    /dev/sdb1 partition 2097148 0 2

    注意:以前swap分区如果是一个磁盘,我们可以把它拆掉;如果是一个分区,可以删除此分区,解决磁盘空间不够用的问题。

    三、如何用文件作为swap分区

    1、模拟一个大文件
    

    [root@centos7 ~]# dd if=/dev/zero of=/mnt/swapfile bs=1M count=1024

    2、查看文件的id
    

    [root@centos7 ~]# blkid /mnt/swapfile

    3、制作swap文件
    

    [root@centos7 ~]# mkswap /mnt/swapfile

    4、编辑配置文件
    

    [root@centos7 ~]# vim /etc/fstab
    UUID=98e483f9-8a49-449a-b99f-7bf857d7c07a swap swap defaults 0 0

    5、启动swap分区
    

    [root@centos7 ~]# swapon -a
    如果不能使用此swap分区

    1、先禁用swap分区
    

    [root@centos7 ~]# swapoff /mnt/swapfile

    2、然后删除配置文件中的信息
    3、删除此文件
    

    [root@centos7 ~]# rm -rf /mnt/swapfile
    建议:在每个过程中都建议检查是否正确执行。

    小结

        swapon 选项
            -a:激活所有的交换分区
            -p PRRORITY:指定优先级
    

    注意:

    1、可以指定swap分区0到32767的优先级,值越大优先级越高。
    2如果用户没有指定,那么核心会自动给swap指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的swap,会给这个优先级减一。
    3、先添加的swap的缺省优先级比较高,除非用户自己指定一个优先级,而用户指定的优先级(是正数)永远高于核心缺省指定的优先级(是负数)。

    展开全文
  • Linux期末复习-ch1-ch3

    2020-12-05 20:00:08
    ch1 Linux作者,应用领域,组成,各种概念(内核,发行版等等) Linux系统内核最早是由芬兰大学生Linus Torvalds开发,并于...分区,如何分区,分区命名,交换分区作用,关机重启常用命令 如何分区 自动配置分区方

    ch1

    Linux作者,应用领域,组成,各种概念(内核,发行版等等)

    Linux系统的内核最早是由芬兰大学生Linus Torvalds开发,并于1991年8月发布。

    内核
    内核是操作系统的核心,具有很多最基本的功能,如虚拟内存、多任务、共享库、需求加载、可执行程序和TCP/IP网络功能。
    Linux内核的主要模块分为存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信、系统的初始化和系统调用等几个部分。

    ch2

    分区,如何分区,分区命名,交换分区作用,关机重启的常用命令

    如何分区

    自动配置分区方式用户无需进行设置,系统会自动对磁盘进行分区,默认创建/分区、/boot分区、/home分区和swap分区。

    手动配置分区

    创建标准分区时各分区字段的含义及其使用方法:

    挂载点:输入分区的挂载点。如果这个分区是根分区,输入“/”;如果是“/boot”分区,输入“/boot”。如果是swap分区则无需挂载点。也可以通过下拉菜单为磁盘分区选择正确的挂载点。

    文件系统类型:使用下拉菜单,选择用于该分区的合适的文件系统类型,如swap或xfs。

    设备:包括用户计算机上安装的磁盘列表。如果一个磁盘的列表突出显示,那么在该磁盘上可以创建分区。

    期望容量:输入分区的大小。

    设备类型:指定标准分区。

    加密:将磁盘分区进行加密。

    标签:分区的卷标。

    交换分区

    • 直接从物理内存读写数据要比从硬盘读写数据快的多,而物理内存是有限的,这样就使用到了虚拟内存。虚拟内存是为了满足物理内存的不足而提出的一种策略,它是利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为交换分区(swap分区)。

    • 内核会将暂时不用的内存块信息写到交换分区,这样一来,物理内存得到了释放,这块内存就可以用于其它用途,当需要用到原始的内容时,这些信息会被重新从交换分区读入物理内存。

    • Linux的内存管理采取的是分页存取机制,为了保证物理内存能得到充分的利用,内核会在适当的时候将物理内存中不经常使用的数据块自动交换到虚拟内存中,而将经常使用的信息保留到物理内存。

    • Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存,即使并没有什么操作需要使用内存,Linux也会交换出暂时不用的内存页面,这可以避免等待交换所需的时间。

    • Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存,Linux内核根据“最近最常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存。

    ch3

    字符界面的切换,Linux下获取帮助(man, help等),运行级别,控制台组合键,特殊字符,命令自动补全(tab),命令历史保存,命令排列,命令替换,管道,重定向,vi

    虚拟控制台

    Linux系统可以同时接受多个用户同时登录,还允许用户进行多次登录,这是因为Linux系统提供了虚拟控制台的访问方式。

    在字符界面下,虚拟控制台的选择可以通过按下[Alt]键和一个功能键来实现,通常使用F1~F6键。比如用户登录后,按下[Alt+F2]键,用户可以看到“login:”提示符,说明用户进入了第二个虚拟控制台。然后只需按[Alt+F1]组合键,就可以回到第一个虚拟控制台。

    如果用户在图形界面下,那么可以使用[Ctrl+ Alt+F2]~[Ctrl+ Alt+F6]组合键切换字符虚拟控制台,使用[Ctrl+Alt+F1]可以切换到图形界面。

    1.shutdown命令

    shutdown命令可以安全地关闭或重启Linux系统。

    命令语法:

    shutdown [选项] [时间] [警告信息]
    

    【例3.1】 立即关闭计算机系统。

    [root@rhel ~]# shutdown -h now
    

    【例3.2】 定时45分钟后关闭计算机系统。

    [root@rhel ~]# shutdown -h +45
    

    【例3.3】 立即重新启动计算机系统,并发出警告信息。

    [root@rhel ~]# shutdown -r now "system will be reboot now."
    

    【例3.4】 定时在1点38分重新启动计算机系统。

    [root@rhel ~]# shutdown -r 01:38
    

    2.halt命令

    使用halt命令就是调用“shutdown –h”命令执行关机任务。

    命令语法:

    halt [选项]
    

    【例3.5】 使用halt命令关闭系统。

    [root@rhel ~]# halt
    

    3.reboot命令

    reboot命令的工作过程与halt相似,不过reboot是引发计算机重启,而halt是引发计算机关闭。它的选项与halt相似。

    【例3.6】 使用reboot命令重启计算机系统。

    [root@rhel ~]# reboot
    

    特殊字符

    符号 功能
    ~ 用户主目录
    ` 反引号,用来命令替代(在Tab键上面的那个键)
    # 注释
    $ 变量取值
    & 后台进程工作
    ( 子Shell开始
    ) 子Shell结束
    \ 使命令持续到下一行
    | 管道
    < 输入重定向
    > 输出重定向
    >> 追加重定向
    单引号(不具有变数置换的功能)
    " 双引号(具有置换的功能)
    / 路径分隔符
    ; 命令分隔符

    命令历史记录

    在操作Linux系统的时候,每一个操作的命令都会记录到命令历史中,在以后可以通过命令历史查看和使用以前操作的命令。

    bash启动的时候会读取~/.bash_history文件,并将其载入到内存中,$HISTFILE变量就用于设置~/.bash_history文件,bash退出时也会把内存中的历史记录回写到
    ~/.bash_history文件中。

    使用history命令可以查看命令历史记录,每一条命令前面都会有一个序列号标示。
    命令语法:

    history [选项]
    

    使用命令历史举例

    举例 描述
    !! 运行上一个命令
    !6 运行第6个命令
    !8 /test 运行第8个命令并在命令后面加上/test
    !?CF? 运行上一个包含CF字符串的命令
    !ls 运行上一个ls命令(或以ls开头的历史命令)
    !ls:s/CF/G 运行上一个ls命令,其中把CF替换成G
    fc 编辑并运行上一个历史命令
    fc 6 编辑并运行第6条历史命令
    bootroot^ 快速替换。将最后一个命令中的boot替换为root后运行
    !-5 运行倒数第5个命令
    !$ 运行前一个命令最后的参数

    【例3.11】 使用命令历史记录功能键。

    [root@rhel ~]# mkdir /root/aaa
    //创建目录/root/aaa
    
    [root@rhel ~]# cd !$
    cd /root/aaa
    //!$是指重复前一个命令最后的参数,参数是/root/aaa
    
    [root@rhel aaa]# pwd
    /root/aaa
    //显示用户当前目录是/root/aaa
    

    搜索历史命令

    快捷键 描述
    ↑(向上方向箭) 查看上一个命令
    ↓(向下方向箭) 查看下一个命令
    Ctrl+p 查看历史列表中的上一个命令
    Ctrl+n 查看历史列表中的下一个命令
    Ctrl+r 向上搜索历史列表
    Alt+p 向上搜索历史列表
    Alt+> 移动到历史列表末尾

    命令排列

    如果希望一次执行多个命令,Shell允许在不同的命令之间,放上特殊的排列字符。

    1. 使用“;”

    使用“;”命令时先执行命令1,不管命令1是否出错,接下来就执行命令2。

    命令语法:

    命令1; 命令2
    

    【例3.15】 使用排列命令“;”同时执行两个命令。

    [root@rhel ~]# ls -l /boot;du -hs /root
    

    2. 使用“&&”

    使用“&&”命令时只有当命令1正确运行完毕后,才能执行命令2 。

    【例3.16】 使用排列命令“&&”同时执行两个命令。

    [root@rhel ~]# ls -a /root/bogusdir&&du -hs
    ls: 无法访问/root/bogusdir: 没有那个文件或目录
    //将返回“ls: 无法访问/root/bogusdir: 没有那个文件或目录”,而“du –hs”命令根本没有运行,因为没有/root/bogusdir目录
    

    命令替换

    在Linux系统中,Shell命令的参数可以由另外一个命令的结果来替代,这种称之为命令替换。

    1.使用“$( )”
    命令语法:

    命令1 $(命令2)
    

    2.使用“`”(位于Tab键上面那个键)
    命令语法:

    命令1 \`命令2`
    
    [root@rhel ~]# pidof less
    7552
    //less进程号为7552
    Kill -9 7552
    

    使用命令替换功能杀死less进程。

    kill -9 $(pidof less)
    

    或者

    kill -9 `pidof less`
    

    管道

    Linux系统的理念是汇集许多小程序,每个程序都有特殊的专长。复杂的任务不是由大型软件完成,而是运用Shell 的机制,组合许多小程序共同完成。管道就在其中发挥着重要的作用,它可以将某个命令的输出信息当作某个命令的输入,由管道符号“|”来标识。
    命令语法:

    [命令1]|[ 命令2]|[ 命令3]
    

    【例3.22】 使用简单的管道。

    [root@rhel ~]# ls /etc|more
    abrt
    acpi
    adjtime
    akonadi
    --More--
    //命令ls /etc显示/etc目录的内容,命令more是分页显示内容
    

    【例3.23】 使用复杂的管道。

    [root@PC-LINUX ~]# rpm -qa|grep a|more
    //命令rpm -qa显示已经安装在系统上的RPM包,命令grep a是过滤软件包,命令more是分页显示这些信息
    

    3.6 重定向

    希望将命令的输出结果保存到文件中,或者以文件内容作为命令的参数,这时就需要用到重定向。重定向不使用系统的标准输入端口、标准输出端口或是标准错误端口,而是进行重新的指定。

    重定向有四种方式:输出重定向、输入重定向、错误重定向以及同时实现输出和错误的重定向。

    输出重定向

    输出重定向,即将某一命令执行的输出保存到文件中,如果已经存在相同的文件,那么覆盖源文件中的内容。

    命令语法:

    [命令] > [文件]
    

    【例3.24】使用输出重定向将/boot目录的内容保存到/root/abc文件中。

    [root@rhel ~]# ls /boot > /root/abc
    

    【例3.25】使用echo命令和输出重定向创建/root/mm文件,文件内容是hello。

    [root@rhel ~]# echo Hello > /root/mm
    [root@rhel ~]# cat /root/mm
    Hello
    //显示文件/root/mm,可以看到文件的内容是Hello
    

    另外一种特殊的输出重定向是输出追加重定向,即将某一命令执行的输出添加到已经存在的文件中。

    命令语法:

    [命令] >> [文件]
    

    【例3.26】使用输出追加重定向将数据写入文件/root/ao。

    [root@rhel ~]# echo Hello > /root/ao
    //先创建文件/root/ao,文件内容是Hello
    [root@rhel ~]# echo Linux >> /root/ao
    //向文件/root/ao中追加数据Linux
    [root@rhel ~]# cat /root/ao
    Hello
    Linux
    

    输入重定向

    输入重定向,即将某一文件的内容作为命令的输入。
    命令语法:

    [命令] < [文件]
    

    【例3.27】使用输入重定向将文件/root/mm的内容作为输入让cat命令执行。

    [root@rhel ~]# cat < /root/mm
    Hello
    //可以看到文件/root/mm的内容是Hello
    

    另外一种特殊的输入重定向是输入追加重定向,这种输入重定向告诉Shell,当前标准输入来自命令行的一对分隔符之间的内容。

    命令语法:

    [命令] << [分隔符]
    > [文本内容]
    > [分隔符]
    

    【例3.28】使用输入追加重定向创建/root/bc文件。

    [root@rhel ~]# cat > /root/bc <<EOF
    > Hello Linux
    > EOF
    //一般使用EOF作为分隔符
    

    错误重定向

    错误重定向,即将某一命令执行的出错信息输出到指定文件中。
    命令语法:

    [命令] 2> [文件]
    

    【例3.29】 查看根本不存在的/root/kk文件,出现报错信息,将其保存到文件/root/b中。

    [root@rhel ~]# cat /root/kk 2> /root/b
    [root@rhel ~]# cat /root/b
    cat: /root/kk: 没有那个文件或目录
    //使用cat命令查看/root/b文件,可以看到其内容就是执行命令cat /root/kk的报错信息
    

    另外一种特殊的错误重定向是错误追加重定向,即将某一命令执行的出错信息添加到已经存在的文件中。

    命令语法:

    [命令] 2>> [文件]
    

    【例3.30】 使用错误追加重定向,将执行命令的多次出错信息保存到文件/root/b中。

    [root@rhel ~]# cat /root/kk 2> /root/b
    [root@rhel ~]# cat /root/kk 2>> /root/b
    [root@rhel ~]# cat /root/b
    cat: /root/kk: 没有那个文件或目录
    cat: /root/kk: 没有那个文件或目录
    

    同时实现输出和错误重定向

    同时实现输出和错误的重定向,即可以同时实现输出重定向和错误重定向的功能。

    命令语法:

    [命令] &> [文件]
    

    【例3.31】 同时使用输出和错误重定向。

    [root@rhel ~]# ls /boot &> /root/kk
    [root@rhel ~]# cat /root/kk
    config-3.3.4-5.fc17.i686.PAE
    grub
    grub2
    initramfs-3.3.4-5.fc17.i686.PAE.img
    lost+found
    System.map-3.3.4-5.fc17.i686.PAE
    tboot.gz
    tboot-syms
    vmlinuz-3.3.4-5.fc17.i686.PAE
    //因为/boot目录下有文件,所以最终使用了输出重定向
    

    【例3.32】 同时使用输出和错误重定向。

    [root@rhel ~]# ls /nn &> /root/oo
    [root@rhel ~]# cat /root/oo
    ls: 无法访问/nn: 没有那个文件或目录
    //因为没有/nn目录,所以最终使用了错误重定向
    

    3.7 vi编辑器

    1.命令模式

    进入vi编辑器之后,系统默认处于命令模式。命令模式控制屏幕光标的移动,字符、
    字或行的删除,某区域的移动、复制等。
    在命令模式下,按冒号键“:”可以进入末行模式,按字母键“a”就可以进入插入模式。

    2.插入模式

    只有在插入模式下,才可以进行文本编辑。在插入模式下按“Esc”键可回到命令模式。

    3.末行模式

    将文件保存或退出vi编辑器,也可以设置编辑环境、替换字符或删除字符。
    在末行模式下按“Esc”键可以回到命令模式。

    进入插入模式命令

    命令 功能
    i 从光标当前所在位置之前开始插入
    a 从光标当前所在位置之后开始插入
    I 在光标所在行的行首插入
    A 在光标所在行的行末尾插入
    o 在光标所在的行的下面新开一行插入
    O 在光标所在的行的上面新开一行插入
    s 删除光标位置的一个字符,然后进入插入模式
    S 删除光标所在的行,然后进入插入模式

    光标移动(1)

    命令 功能 重点
    ↑键(向上箭头 ) 使光标向上移动一行
    ↓键(向下箭头 ) 使光标向下移动一行
    ←键(向左箭头) 使光标向左移动一个字符
    →键(向右箭头 ) 使光标向右移动一个字符
    k 使光标向上移动一行
    j 使光标向下移动一行
    h 使光标向左移动一个字符
    l 使光标向右移动一个字符
    nk 使光标向上移动n行,n代表数字 *

    光标移动(2)

    nj
    nh
    nl
    H
    M
    L
    Ctrl+b
    Ctrl+f
    Ctrl+u
    Ctrl+d
    0(数字0)

    光标移动(3)

    命令 功能 重点
    $ 使光标移动到光标所在行的行尾 *
    ^ 使光标移动到光标所在行的行首 *
    w 使光标跳到下一个字的开头
    W 使光标跳到下一个字的开头,但会忽略一些标点符号
    e 使光标跳到下一个字的字尾
    E 使光标跳到下一个字的字尾,但会忽略一些标点符号
    b 使光标回到上一个字的开头
    B 使光标回到上一个字的开头,但会忽略一些标点符号
    ( 使光标移动到上一个句首 *
    ) 使光标移动到下一个句首 *
    { 使光标移动到上一个段落首 *
    } 使光标移动到下一个段落首 *
    G 使光标移动到文件尾(最后一行的第一个非空白字符处) *
    gg 使光标移动到文件首(第一行第一个非空白字符处) *

    命令模式命令(1)

    删除

    命令 功能
    x 删除光标所在位置的字符
    X 删除光标所在位置的前面一个字符
    nx 删除光标所在位置开始的n个字符,n代表数字
    nX 删除光标所在位置前面n个字符,n代表数字
    dd 删除光标所在行
    ndd 从光标所在行开始删除n行,n代表数字
    db 删除光标所在位置的前面一个单词
    ndb 删除光标所在位置的前面n个单词,n代表数字
    dw 从光标所在位置开始删除一个单词
    ndw 从光标所在位置开始删除几个单词,n代表数字
    d$ 删除光标到行尾的内容(含光标所在处字符)
    D 删除光标到行尾的内容(含光标所在处字符)
    dG 从光标位置所在行一直删除到文件尾

    命令模式命令(2)

    复制和粘贴

    命令 功能 重点
    yw 复制光标所在位置到单词尾的字符
    nyw 复制光标所在位置开始的n个单词,n代表数字
    yy 复制光标所在行 *
    nyy 复制从光标所在行开始的n行,n代表数字
    y$ 复制光标所在位置到行尾内容到缓存区
    y^ 复制光标前面所在位置到行首内容到缓存区
    YY 将当前行复制到缓冲区 *
    nYY 将当前开始的n行复制到缓冲区,n代表数字
    p 将缓冲区内的内容写到光标所在的位置

    命令模式命令(3)

    类型 命令 功能 重点
    替换 r 替换光标所在处的字符,按[r]键之后输入要替换的字符 *
    替换 R 替换光标所到之处的字符,直到按下[ESC]键为止,按[R]键之后输入要替换的字符 *
    撤销和重复 u 撤销上一个操作。按多次u可以执行多次撤销 *
    撤销和重复 U 取消所有操作 *
    撤销和重复 . 再执行一次前面刚完成的操作
    列出行号 Ctrl+g 列出光标所在行的行号 *
    保存和退出 ZZ 保存退出 *
    保存和退出 ZQ 不保存退出 *
    查找字符 /关键字 先按[/]键,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按[n]键会往后查找下一个关键字,而按[N]键会往相反的方向查找
    查找字符 ?关键字 先按[?]键,再输入想查找的字符,如果第一次查找的关键字不是想要的,可以一直按[n]键往前查找下一个关键字,而按[N]键会往相反的方向查找
    合并 nJ 将当前行开始的n行进行合并,n代表数字
    合并 J 清除光标所在行与下一行之间的换行,行尾没有空格的话会自动添加一个空格

    末行模式命令(1)

    类型 命令 功能 重点
    运行Shell命令 :!command 运行Shell命令,command代表命令
    运行Shell命令 :r!command 将命令运行的结果信息输入到当前行位置,command代表命令
    运行Shell命令 :n1,n2 w !command 将n1到n2行的内容作为命令的输入,n1和n2代表数字,command代表命令
    查找字符 :/str/ 从当前光标开始往右移动到有str的地方,str代表字符 *
    查找字符 :?str? 从当前光标开始往左移动到有str的地方,str代表字符 *
    替换字符 😒/str1/str2/ 将光标所在行第一个字符str1替换为str2,str1和str2代表字符 *
    替换字符 😒/str1/str2/g 将光标所在行所有的字符str1替换为str2,str1和str2代表字符
    替换字符 :n1,n2s/str1/str2/g 用str2替换从第n1行到第n2行中出现的str1,str1和str2代表字符,n1和n2代表数字
    替换字符 :% s/str1/str2/g 用str2替换文件中所有的str1,str1和str2代表字符
    替换字符 :.,$s/str1/str2/g 将从当前位置到结尾的所有的str1替换为str2,str1和str2代表字符

    末行模式命令(2)

    保存和退出

    命令 功能 重点
    :w 保存文件 *
    :w filename 将文件另存为filename
    :wq 保存文件并退出vi编辑器 *
    :wq filename 将文件另存为filename后退出vi编辑器
    :wq! 保存文件并强制退出vi编辑器
    :wq! filename 将文件另存为filename后强制退出vi编辑器
    :x 保存文件并强制退出vi编辑器,其功能和:wq!相同
    :q 退出vi编辑器
    :q! 如果无法离开vi,强制退出vi编辑器
    :n1,n2w filename 将从n1行开始到n2行结束的内容保存到文件filename中,n1和n2代表数字
    :nw filename 将第n行内容保存到文件filename中,n代表数字
    :1,.w filename 将从第一行开始到光标当前位置的所有内容保存到文件filename中
    :.,$w filename 将从光标当前位置开始到文件末尾的所有内容保存到文件filename中
    :r filename 打开另外一个已经存在的文件filename
    :e filename 新建名为filename的文件
    :f filename 把当前文件改名为filename文件
    :/str/w filename 将包含有str的行写到文件filename中,str代表字符
    :/str1/,/str2/w filename 将从包含有str1开始到str2结束的行内容写入到文件filename中,str1和str2代表字符

    末行模式命令(3)

    类型 命令 功能 重点
    删除 :d 删除当前行 *
    删除 :nd 删除第n行,n代表数字
    删除 :n1,n2 d 删除从n1行开始到n2行为止的所有内容,n1和n2代表数字
    删除 :.,$d 删除从当前行开始到文件末尾是所有内容
    删除 :/str1/ , /str2/d 删除从str1开始到str2为止的所在行的所有内容,str1和str2代表字符
    复制和移动 :n1,n2 co n3 将从n1行开始到n2行为止的所有内容复制到n3行后面,n1、n2和n3代表数字
    复制和移动 :n1,n2 m n3 将从n1行开始到n2行为止的所有内容移动到n3行后面,n1、n2和n3代表数字
    跳到某一行 :n 在冒号后输入一个数字,再按回车键就会跳到该行,n代表数字 *
    设置vi环境 :set number 在文件中的每一行前面列出行号 *
    设置vi环境 :set nonumber 取消在文件中的每一行前面列出行号
    设置vi环境 :set readonly 设置文件为只读状态
    展开全文
  • 1.1、 linux 各个分区的作用 参考博主“沉淀”的总结:linux目录结构以及作用 1.2、swap temp 区别  swap 用于普通程序的数据交换,temp 用于系统程序的数据交换 2、常用操作 2.1、软件安装、卸载、执行 ...
  • 运维日常及常用命令

    千次阅读 多人点赞 2018-10-19 13:49:20
    Windows系统的交换文件作用类似,但是它是一段连续磁盘空间,并且对用户不可见。 二 运维日常 1.操作系统状态监控 每天登陆系统查看系统运行负荷如何,有无报错日志或报警日志。 2.操作系统故障排除 ...
  • 一、 熟悉Linux系统基本知识 1.Linux基本概念 ...6.了解系统运行级别功能和作用 7.了解Swap交换区原理与功能﹑并使用指命查看swap分区信息 8.学习系统启动﹑关闭等相关指命﹐了解系统整个启动过程 9.学习Li...
  • 2)为了能把深奥、复杂的概念和操作表达明白,本书使用了大量的插图和实际操作例子,使之通俗易懂。例如:在网络应用部分中的很多例子,都在中山大学服务器上运行,每天都在承受巨大的访问量。 3)配置了大量习题。 ...
  • 1、操作系统的概念 操作系统(Operating System,OS),是一种软件,属于系统软件; 1、科普的观点 操作系统是计算机系统的管理控制中心,它依照设计者制定的各种调度策略组织管理计算机系统资源,使之...
  • 数据复制数据移动正变得越来越重要,通过数据复制、数据共享数据移动,企业SAN方案也必须在分立应用之间容易地交换信息。为了提供花费适中应用恢复容灾,企业SAN必须提供存储系统间数据拷贝能力,既...
  • 入门学习Linux常用必会60个命令实例详解doc/txt

    千次下载 热门讨论 2011-06-09 00:08:45
    这里笔者把比较重要使用频率最多命令,按照它们在系统中的作用分成下面六个部分一一介绍。 ◆ 安装登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆ 文件处理命令...
  • Linux高级配置详解

    2011-06-11 06:59:29
    seforlinux2.4.2建informix用户2.4.3安装2.4.4设置环境及参数2.4.5启动...概念3.4.3Linux中硬盘操作3.4.4使用fdisk分区3.4.5关于LILO3.4.6创建交换空间3.4.7创建文件系统3.5键盘鼠标3.5.1键盘3.5.2鼠标3.6调制...
  • 事务处理原理 第2版

    热门讨论 2012-12-30 10:49:38
    面向服务的体系结构(SOA)、RESTWeb服务的概念贯穿全书。另外,在很多地方还对技术细节进行了小小的补充。每一章都有大的改动。  出版商在关于本书的网页上将提供补充材料。最开始,将只包括按章组织的问题选择,...
  • LINUX系统管理白皮书

    2011-10-21 18:37:45
    本书同时收录了Linux领域两位领导人物作品—相当于“Linux 文档项目”一个印刷版本,展示了Linux 核心概念及其基本结构。对于面向所有主流Linux子系统支持与管理任务,本书都进行了恰到好处讲解。涵盖主题...
  • 本书同时收录了Linux领域两位领导人物作品—相当于“Linux 文档项目”一个印刷版本,展示了Linux 核心概念及其基本结构。对于面向所有主流Linux子系统支持与管理任务,本书都进行了恰到好处讲解。涵盖主题...
  • Linux系统管理白皮书

    2008-11-20 14:22:26
    本书同时收录了Linux领域两位领导人物作品—相当于“Linux 文档项目”一个印刷版本,展示了Linux 核心概念及其基本结构。对于面向所有主流Linux子系统支持与管理任务,本书都进行了恰到好处讲解。涵盖主题...
  • 精通Windows.API-函数、接口、编程实例.pdf

    千次下载 热门讨论 2013-01-27 11:49:55
    4.2.4 获取磁盘分区的总容量、空闲容量、簇、扇区信息 83 4.3 文件目录管理 86 4.3.1 删除、复制、重命名、移动文件 87 4.3.2 创建、打开、读写文件,获取文件大小 90 4.3.3 创建目录 96 4.3.4 获取...
  • 4.2.4 获取磁盘分区的总容量、空闲容量、簇、扇区信息 98 4.3 文件目录管理 101 4.3.1 删除、复制、重命名、移动文件 102 4.3.2 创建、打开、读写文件,获取文件大小 105 4.3.3 创建目录 111 4.3.4 获取程序...
  • windowsnt 技术内幕

    2014-04-09 20:47:17
    配置TAPI位置 通过拨号网络登录 配置自动拨号管理器 RAS疑难解答 微软IIS简介 安装IIS Internet站点Intranet站点的概念 介绍Windows NT Workstation上的对等Web服务(PeerWebServices) 配置IIS(Internet ...
  • 4.2.4 获取磁盘分区的总容量、空闲容量、簇、扇区信息 83 4.3 文件目录管理 86 4.3.1 删除、复制、重命名、移动文件 87 4.3.2 创建、打开、读写文件,获取文件大小 90 4.3.3 创建目录 96 4.3.4 获取...

空空如也

空空如也

1 2 3
收藏数 53
精华内容 21
关键字:

交换分区的概念和作用