Linux操作系统基础知识1

Linux操作系统基础知识1
第一章 简单使用Linux1.1 shell命令提示符例root 当前登录的账户名root为管理员server2主机名默认为localhost此处我改成了server2~ 该位置表示当前工作目录~表示/root提示符标志#或表示账户身份。#表示root表示普通账户。1.2 使用命令操作Linux系统在终端窗口上输入命令命令的格式主命令 参数 操作对象操作前建议关闭网卡统一命名变回 eth0、eth1、eth2所有机器网卡命名规则一致不用每次查网卡名称。输入指令ip a查看当前网卡接口名为ens33。输入指令vim /boot/grub2/grub.cfg在第100行代码的末尾加上net.ifnames0编辑完成后保存退出。重连后再查看IP此时网卡已经变成eth0。1.2.1 切换目录——cd例输入指令cd /root切换到root 用户的家目录专属超级管理员 root 的个人目录只有 root 用户能完整读写。登录 root 后直接输 cd 不加参数等价于 cd /root。例输入指令cd /切换到根目录是系统最顶层包含 boot、etc、root、home 等所有文件夹。补充.表示当前目录. .表示上一级目录./xxx代表当前目录下的 xxx 文件 / 文件夹1.2.2 查看当前的工作目录——pwd输入指令pwd可看到当前工作在根目录。1.2.3 浏览目录内容——ls输入指令ls可以查询当前目录下的所有内容。1.3 重置root密码rd.break方法第1步重启虚拟机在此界面按↑或↓键停止倒计时按“e”键进入编辑。第2步找到刚刚加入的net.ifnames0在后面加上rd.break按CTRLx启动。系统进入如下图所示的紧急模式。第3步以读写方式挂载/sysroot。第4步设置新密码。第5步输入两次exit退出。等待重启输入新密码即可登录。第二章 Linux中执行命令2.1 命令格式主命令 参数 操作对象对于命令的语法的一些符号的说明[] 表示的是可选… 表示的可以存在多个参数|表示是可选的:必填{}表示作为一个整体存在的2.2 查看命令帮助2.2.1 查看bash内部命令帮助2.2.2 命令–help2.2.3 命令manman命令用来提供在线帮助使用权限是所有用户。使用man命令可以调阅其中的帮助信息。2.2.4 命令infoinfo与man的用途相同都是用来查询命令的用法或者是文件的格式。不同的是info是将文件数据拆成一个一个的段落每个段落用自己的页面来撰写 并且在各个页面中还有类似网页的超链接来跳到各不同的页面中每个独立的页面也被称为一个节点。2.3 命令datedate命令用于显示或设置系统的时间与日期。格式date -参数 显示日期时间格式参数常见参数:参数作用%Y完整年份例如2020%m月份1~12%d本月中的第几天%H小时0023%M分钟0059%j今年中的第几天%X相当于%H:%M:%S%Z显示时区%A星期几 (Sunday-Saturday)%p显示本地AM或PM例2.4 命令timedatectltimedatectl命令用于设置系统的时间英文全称为time date control。例可用指令timedatectl set-timezone Asia/Shanghai设置时区再用指令timedatectl status查看系统时间与时区2.5 命令calcal 年份显示这一年的日历。cal 月份 年份显示某年某月的日历。2.6 命令ls命令ls用于查看目录下的内容格式ls -参数 操作对象参数参数功能-l以长格形式显示文件和目录的详细信息,ls命令默认只显示名称的短格式。-d显示指定目录本身的信息,而不显示目录下的各个文件和子目录的信息。-c按文件的修改时间排序后予以显示。-h以更人性化的方式显示出目录或文件的大小,默认的大小单位为字节,使用-h选项后将显示为K、M等单位。此选项需要和-l选项结合使用才能体现出结果。-R以递归的方式显示指定目录及其子目录中的所有内容。-a显示所有子目录和文件的信息,包括名称以“.”开头的隐藏目录和隐藏文件。-A与-a选项的作用类似,但不显示表示当前目录的“.”和表示父目录的“…”。-i显示文件索引节点号inode。一个索引节点代表一个文件在linux中保存在磁盘分区中的文件都给它分配一个编号称为索引节点号inode。-s按照文件大小排序执行 ll 执行 ls -l提示-R会消耗CPU故一般不建议用。也可两个参数合并简写如ls -dl /root 表示以长格式只查看目录自身信息不列出目录内文件。例ls浏览后颜色表示白色普通文件蓝色目录红色压缩包文件黄色设备文件绿色可执行文件第三章 linux文件类型和根目录结构根目录底下的文件最好不要动大概率会影响系统运行。3.1 Linux文件类型第一个字符文件类型说明-普通文件类似于Windows的记事本d目录文件类似于windows文件夹c字符设备文件串行端口设备顺序读写键盘b块设备文件可供存储的接口设备随机读写硬盘p管道文件用于进程间的通信s套接字文件通常用于网络上的通信。可以启动一个程序来监听客户端的要求客户端可以通过套接字来进行数据通信l符号链接又叫软链接和原文件不是一个文件例如Windows的快捷方式如果原始文件被删除所有指向它的符号链接也就都被破坏了。软链接有自己的node是linux特殊文件的一种作为一个文件它的数据是它所连接的文件的路径。符号链接可以跨越文件系统也可以为目录建立。-硬链接只能引用同一文件系统中的文件。它引用的是文件在文件系统中的物理索引也称为inode。当移动或者删除原始文件时硬链接不会被破坏因为它所引用的是文件的物理数据而不是文件在件结构中的位置。3.2 Linux系统的目录结构3.2.1 Linux目录结构的特点Linux使用树形目录结构来组织和管理文件。整个系统只有一个根目录树根用“”表示。其他所有分区以及外部设备如硬盘、光驱等都是以根目录为起点挂接在目录树的某个目录中的通过访问挂载点目录即可实现对这些分区的访问。常见目录用途文件名描述/Linux文件系统的最上层根目录,其他所有目录均是该目录的子目录/boot存放系统启动时所需的文件,这些文件若损坏常会导致系统无法启动,一般不要改动/root超级用户的个人目录普通用户没有权限访问/home存放一般用户的个人目录/binBinary的缩写,存放普通用户可执行的程序或命令/sbin和/bin类似这些文件往往用来进行系统管理,只有root可使用/lib是库library英文缩写存放系统的各种库文件/lib64存放系统本身需要用到64位程序的共享函数库(library)/usr一般用户程序安装所在的目录,用于安装各种应用程序/opt该目录通常提供给较大型的第三方应用程序使用,例如Sun Staroffice、Corel WordPerfect,这可避免将文件分散至整个文件系统/etc存放了系统管理时要用到的各种配置文件和子目录/var通常各种系统日志文件放在这里/run保存自系统启动以来描述系统信息的文件/devdev 是设备device的英文缩写。包含所有的设备文件/mnt和/media可以临时将别的文件系统挂在这个目录下即为其他的文件系统提供安装点/tmp用来存放不同程序执行时产生的临时文件/srvsrv 是服务(server)的简写服务启动之后需要访问的数据目录/sys本目录是将内核的一些信息映射文件,以供应用程序所用/proc可以在这个目录下获取系统信息3.2.2 路径以及工作目录3.2.2.1 路径路径表示某个文件(或目录)在目录结构中所处的位置指从树型目录中的某个目录层次到达某一文件或子目录的一条线路由以“/”为分隔符的多个目录名构成。路径可分为绝对路径和相对路径。绝对路径是指以根目录“/”为起点来表示系统中某个文件(或目录)的位置的方式。相对路径是以当前目录为起点表示系统中某个文件或目录在目录结构中的位置的方式。例图中红色方框中的指令为相对路径蓝色方框为绝对路径。cd -为快速切换回上一次所在的目录。可以看到两条指令指向同一个目录。3.2.2.2 工作目录使用pwd命令查看用户当前所处的位置。使用cd命令更改当前的工作目录即切换目录。详情可见本文1.2.1和1.2.2。第四章 从命令行管理文件4.1文件命名规则1.不能使用/来当文件名/是用来做根的也是用来做路径分隔符的。2.文件名不能超过255个字符。3.区分大小写file File FILE fIle root Root rOOt ROOT。4.目录也是文件在同一路径下两个不同类型文件不能同名。4.2 创建链接文件4.2.1 硬链接4.2.1.1 原理Linux系统允许多个文件指向同一个inode即允许一个文件拥有多个有效地路径名是指向原始文件inode的指针。4.2.1.2 查看方法ll 文件名或stat 文件名例可以看到此时链接数为1。4.2.1.3 建立硬链接格式ln 源文件 目标链接文件例链接建立后再次查看此时链接数为2。注意1.硬链接建立后删除源文件后数据依然可以访问只有硬链接为0时数据就无法访问了。2.硬链接不能给目录建立。3.不可以在不同的文件系统内建立硬链接由于inode是当前文件在本文件系统的索引值即只能在本分区使用所以硬链接不能跨越文件系统。使用指令查看建立硬链接的两个文件对应的incode编号发现其编号相同访问其中任何一个文件其底层磁盘映射的位置是相同的。4.2.2 软链接4.2.2.1 原理软链接是一种符号连接类似于windows的快捷方式仅包含所链接的路径名。4.2.2.2 建立软链接格式ln -s 源文件 目标连接名例从中可以看出m2文件与m1文件编码不同。例注意源文件必须是存在的否则无法生效。此时找到正确的位置重新建立软链接即可。注意软链接只是一种指向关系删除软链接只是删除指向关系源数据依然可以访问删除源文件则数据不可访问。4.2.3 软硬链接的区别1.硬链接中源文件与链接文件公用一个inode号是同一个文件软链接中源文件与链接文件拥有不同inode号是2个不同的文件。2.软链接的指向关系可以查看硬链接不可以查看。3.链接数不同硬链接数会增加软链接数不会增加。4.文件大小不同硬链接文件大小与源文件一样。5.软链接不受任何文件系统的影响任何用户都可以创建指向目录的软链接。4.3 目录操作命令4.3.1 创建目录格式mkdir [-p] [/路径/] 目录名例创建一个名为dir1的目录。例在dir1目录下创建多级子目录可用tree指令查看tree指令的详细用法见4.4.2。注意rm -f只删除文件、软链接不能删文件夹rm -fr可递归强制删除。4.3.2 du命令格式du [参数] [目录名]参数选项功能-a统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录。-s只统计每个文件所占用空间总的大小,而不是统计每个子目录、文件的大小。-h以K,M,G为单位显示磁盘使用情况,以提高信息的可读性。例注意/boot/代表/boot 目录本身完整目录对象。/boot/*代表目录下所有一级文件、子文件夹不含隐藏文件不包含 /boot 目录本身。4.4 新建文件4.4.1 touch创建普通文件如果文件已存在stat可以查看文件的详细信息。例access访问文件的时间查看文件内容cat会更新modify修改内容的时间文件内容被改变了会更新change修改文件元数据的时间若文件不存在则用touch创建文件。格式touch 文件名1 文件名2 文件名3touch {文件名1,文件名2,文件名3}例touch p1.txttouch p2.txt p3.txt p4.txttouch {p5,p6,p7}.txttouch abc {1…100}创建abc1abc2…abc99abc100。4.4.2 tree命令tree命令用于显示目录下文件的树形拓扑图及摘要。格式tree 参数 路径参数-a : 所有文件包含显示隐藏文件 -f : 列出文件的完整路径内容 -d 只显示目录 -L : 设置显示最大深度如tree -f -L 2例4.4.3 dd命令4.4.3.1 创建大容量文件dd命令用于制作指定个数及容量的空文件。格式dd if来源 of新文件名 count数据块个数 bs块容量/dev/shm/ 是 Linux 系统下的一个内存文件系统RAM-backed filesystem通常挂载为 tmpfs。它利用物理内存和交换分区Swap来存储数据而不是持久化存储设备如硬盘或 SSD。用df指令查看文件系统磁盘空间使用情况能快速了解各个挂载点的总容量、已用空间、剩余空间等信息。可见/dev/shm/挂载在tmpfs临时文件系统上占用空间大小为物理内存总量的一半。free -m 是 Linux 系统中用来查看内存RAM和交换分区Swap使用情况的命令。-m 参数表示以 MB兆字节 为单位显示数据。可以看到此时可使用的物理内存Mem大小为1683M。使用dd指令制作100M空数据文件再查看物理内存大小可见此时可用物理内存减少了100M。4.4.3.2 做备份首先确认50G的磁盘在/dev/sda并且有分区表存在。切出/dev/shm目录因为此目录中是内存新建的文件放在其中再重启会消失。从/dev/sda将磁盘分区表备份到mbr。提示MBRMaster Boot Record主引导记录 是存储在硬盘第一个扇区的一个特殊数据结构。你可以把它理解为硬盘的“目录”或“启动管家”计算机通电后会首先读取这部分信息以确定如何启动操作系统以及硬盘是如何分区的。它主要由以下三部分组成主引导程序446 字节包含可执行的机器码负责在启动时检查分区表、定位并加载活动分区的引导程序从而启动操作系统。磁盘分区表64 字节记录硬盘的分区信息。由于每条分区记录占16字节因此MBR分区表最多只能记录4个主分区的信息。有效标志2 字节固定为0x55AA用于BIOS确认该扇区是一个有效的MBR。此时用全0覆盖掉/dev/sda中的全部字节相当于破坏掉分区表。再查看磁盘分区表信息已无分区表。将mbr中数据写入/dev/sda再查看磁盘分区表信息此时分区恢复系统可正常使用。4.5 删除文件格式rm 参数 文件名用法删除文件 rm 文件名删除目录rm -r 目录名强制删除不确认rm -f 文件名注意删除前必须确认路径及名称删除文件时必须将文件名及扩展名写全4.6 数据流和重定向4.6.1 数据流标准输入standard input简称stdin默认情况下标准输入指从键盘获取的输入代码为0。标准输出standard output简称stdout默认情况下命令执行所回传正确的信息会输出到屏幕上代码为1。标准错误输出standard error output简称stderr默认情况下标准错误输出可理解为命令执行失败后所回传的错误信息会输出到屏幕上代码为2。4.6.2 重定向操作符重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置。其本身不是命令而是命令中附加的可改变命令的输入和输出对象的特殊符号。输出重定向操作符输入重定向操作符用法命令 文件或命令 1文件: 将命令执行后的结果不在默认的屏幕上显示而是以覆盖的方式写入到指定文件中若指定的文件不存在则自动创建该文件。命令 2文件: 将命令执行后所产生的错误信息不在默认的屏幕上显示而是以覆盖的方式写入到指定文件中若指定的文件不存在则自动创建该文件。命令 2/dev/null 将命令执行后所产生的错误信息不在默认的屏幕上显示而是写入到空设备文件黑洞中即将输出的错误信息丢弃掉。命令 文件或命令 文件 将命令执行后的正确输出信息和错误信息不在默认的屏幕上显示而是以覆盖的方式写入到指定文件中若指定的文件不存在则自动创建该文件。命令 文件 将命令执行后的正确输出信息以追加的方式写入到指定的文件中不覆盖原文件内容若指定的文件不存在则自动创建该文件。命令 文件 使命令从指定的文件中读取数据作为输入。命令 结束标识字符串 在命令行读取数据作为输入直到遇到指定的结束标识字符串。例1覆盖例2追加例3错误输出重定向切换到普通用户可以看到同时有正确和错误信息存在。红色均为错误信息。将错误信息丢弃仅剩正确信息。例4也可将正确和错误信息分别输出到不同文档中。例5标准输入重定向并不表示追加而是表示输入结束的意思即作为一个结束符。4.6.3 echo命令将标准输出重定向到文件echo向终端设备上输出字符串或变量提取后的值格式echo “字符串”echo “$量”例1查看路径例24.7 tee命令读取数据输出到文件例1把标准输入的内容原样输出到标准输出同时写入到 test1.txt 文件中。红色方框中均为标准输出其余为标准输入。输入结束按下CTRLD。例2追加4.8 管道符 |用于两个命令或者多个命令相连接将管道符左边命令的输出作为管道符右边命令的输入。例1统计行数例2管道符仅允许正确的信息通过。在统计行数时仅统计出2行正确信息。若想统计所有信息行数可用21表示将标准错误重定向到标准输出当前所指向的目标位置。4.9 vim文本编辑器4.9.1 vim编辑器的三种模式命令模式也成为了阅读模式可以控制光标移动对文本进行查看、删除、复制粘贴等操作默认编辑模式也称为插入模式可以对文本进行编辑末行模式保存、退出、设置编辑环境进入的顺序刚打开文件后进入的为命令模式默认命令模式点击i键进入输入模式点击Esc返回命令模式命令模式中点击冒号进入末行模式点击Esc返回输入模式与末行模式不可以相互进入4.9.2 命令模式的快捷键4.9.2.1 光标跳转按键功能按键光标按单个字符移动↑、↓、←、→光标按照单词向后跳转w光标按照单词向前跳转b光标跳转至行首^光标跳转至行尾$文档首行第一个字符gg文档最后一行第一个字符G跳转到指定行行号gg 或者 行号G4.9.2.2 复制、粘贴、删除功能按键删除光标所在行dd删除从光标处开始的n行数字dd删除光标前至行首字符d^删除光标及之后的所有字符d$复制光标所在行yy复制从光标处开始的n行数字yy将缓冲区的内容粘贴到光标所在行的下一行p小写将缓冲区的内容粘贴到光标所在行的上一行P大写撤销操作u4.9.2.3 编辑模式的快捷键可通过如下任意一种功能键从命令模式切换到编辑模式按ESC键可从编辑模式切换到命令模式功能按键在光标前插入i在光标所在行行首第一个非空字符前插入I大写字母i在光标后插入a在光标所在行末尾插入A在光标所在行上一行插入O大写字母在光标所在行下一行插入o小写字母删除光标所在字符并进入插入模式s小写字母删除当前行并进入插入模式S大写字母4.9.2.3 末行模式的快捷键按或者/可从命令模式切换到末行模式按esc键可从末行模式切换到命令模式。4.9.2.4 查找关键字并替换功能按键从上而下查找字符串“word”可按n键定位到下一个匹配的的字符串/word将当前行中查找到的第一个字符“old”替换为“new”: s /old/new将当前行中查找到的所有字符“old”替换为“new”: s /old/new/g在行号“n1,n2”范围内替换所有的字符串“old”为“new”:n1,n2 s/old/new/g将整个文件内的字符串“old”替换为“new”:% s/old/new/g注冒号后直接输入即可因编辑器显示问题因而有两处加了空格。4.9.2.5 保存退出功能按键退出vi/vim编辑器未对文件做任何编辑操作才可退出:q不保存文档内容强制退出vi/vim编辑器:q!保存文件:w将文件另存为/dir/file:w /dir/file保存文件内容并退出vi/vim编辑器:wq 或者 ZZ强制保存并退出:wq!4.9.2.6 vim分屏垂直分割vnew 水平分割new直接输入vim指令进入如下页面输入:vnew按回车切为左右两屏。再输入:文件名即可在左半屏打开此文件。按ctrlw键再按→键输入:r 文件名即可在右半屏打开对应的文件。输入:new可以再将右半屏分为上下两屏。按ctrlw键光标可以在各个屏之间切换。4.9.2.7 其他操作功能按键在当前文件中读入其他文件内容:r /dir/file查找含有word的行并删除:g/word/d显示行号:set nu关闭行号显示:set nonu删除n1-n2行内容:n1,n2 d复制n1-n2行到第n行后面:n1,n2 co n例使用vim编写c程序实现编译执行建立test.c文件在文件中写入程序。编译并运行查看结果。4.9.3 vim的配置文件[rootserver ~]# vim /etc/vimrc全局生效或者vim ~/.vimrc局部生效想调制参数时只要将以下指令写入上述文件即可。set hlsearch 高亮度反白 set backspace2 可随时用退格键删除 set autoindent 自动缩排 set tabstop4 缩进 set softtabstop4 softtabstop是“逢4空格进1制表符”,前提是你tabstop4 set shiftwidth4 自动缩进空格长度 set mousea 使用鼠标 set selectionexclusive set selectmodemouse,key set ruler 可显示最后一行的状态 set showmode 左下角那一行的状态 set nu 可以在每一行的最前面显示行号 set bgdark 显示不同的底色色调 syntax on 进行语法检验颜色显示例查看/etc/fstab文件此时不显示行号。编辑~/.vimrc文件写入set nu。此时再重新查看/etc/fstab文件显示行号。4.9.4 vim 的异常处理在test文件中写入一些内容正常保存退出。重新打开按ctrlz键模拟异常退出。此时再尝试打开出现异常。按Q键退出查看目录下的所有文件包括那些以点.开头的隐藏文件。可以看到.test.swp就在其中。删除.test.swp文件再次打开此时恢复正常。第五章 文件内容显示5.1 浏览普通文件5.1.1 cat命令用于查看文件内容适合数据量较少的文件。格式cat 参数 文件名参数-n显示行号加上-b文件中所有非空行增加行号编号从1开始例5.1.2 tac命令用于倒叙访问文件内容。格式tac 参数 文件名参数-s指定分隔符按自定义分隔符反转-r将分隔符视为正则表达式-b将分隔符放在每段的前面而不是后面例5.1.3 more 命令用于翻页查看文件内容适合内容较多的文件查看。格式more 文件名注意使用回车则一行一行查看使用空格则整页查看点击q键退出查看。5.1.4 less命令作用同more命令格式less 文件名注意可以使用上下键进行浏览点击q退出浏览。5.1.5 head命令用于查看文档前n行的内容。格式head -数字 文件名例5.1.6 tail命令用于看文档后n行内容格式tail 参数 文件名参数-数字查看倒数行数-f动态刷新, 实时显示日志文件并且能动态更新例在一个终端中打开系统日志。打开一个新的终端记录一份日志。此时再看第一个终端打开的日志可以看见手动记录的新日志。5.1.7 file命令用于查看文件类型。格式file 文件名文件类型ASCII file ASCII文本字符文件empty空文件block special 块设备文件character special 字符设备文件diretory目录例5.1.8 stat命令用于显示文件属性信息。格式stat 文件名注意一般通过该命令查看大小、Inode、硬链接、软连接例5.2 文件内容过滤显示—grep用于在指定的普通文件中查找并显示含有指定字符串的行也可与管道符一起使用。格式grep 参数 查找条件 文件名参数选项说明-c仅显示找到的行数-i忽略大小写-n显示行号-v反向选择——仅列出没有“关键词”的行-A-A 2 搜索时显示匹配到的那一行以及下2行-B-B 2 搜索时显示匹配到的那一行以及上2行-C-C 2 搜索时显示匹配到的那一行以及上下2行例1找到含有root的行。例2统计含有root的行数。例3过滤掉含有root的行。使用特殊符号匹配匹配模式说明grep h 文件名查找文件里有字符h的行grep ^ [q] 文件名匹配以q开始的行grep ^ [qf] 文件名匹配以q或者f开头的行grep ^ [ ^qf ] 文件名不匹配以q或者f开头的行grep ^ [0-9] 文件名匹配以数字开头的行grep q$ 文件名匹配以q结束的行grep ^$过滤空白行grep -r h ./*如果要明确搜索当前目录中的子目录有h的行grep -d s kip h ./*忽略当前目录下的子目录下的普通文件5.3 切割显示——cut用于按列提取文本内容。格式cut -d “分隔符” -f列数字 文件名例/etc/passwd文件在保存用户数据信息时每一项值之间是采用冒号来间隔的。按列搜索不仅要使用-f参数来设置需要看的列数还需要使用-d参数来设置间隔符号。这里我们间隔符号设为列数设为1可查看第一列。也可同时查看多列列数用逗号隔开即可。5.4 排序显示——sort用于对文本内容进行排序显示。格式sort 参数 文件名参数选项作用-f忽略大小写-b忽略缩进与空格-n以数值型排序-r反向排序-u去除重复行-t指定间隔符-k设置字段范围例可以将passwd文件按第三列数字的大小进行排序。5.5 去重显示——uniq用于去除文本中连续的重复行。格式uniq 文件名例5.6 文件中字符替换显示——tr用于从标准输入读取数据经过替换或者删除后将结果输出到标准输出。格式tr 参数 替换内容 新内容参数-c 反选设定字符符合 “替换内容” 的部份不做处理不符合的剩余部份才进行转换-d 删除指令字符-s 缩减连续重复的字符成指定的单个字符例小写字母全部转换成大写字母。第六章 文件的其它操作命令6.1 文本内容统计——wc用于统计指定文本文件的行数、字数或字节数。格式wc 参数 文件名参数选项作用-l只显示行数-w只显示单词数-c只显示字节数例不加参数行数、单词数、字节数均统计。6.2 复制文件或目录——cp格式cp 参数 源文件 目标文件参数选项功能-a通常在拷贝目录时使用。它保留链接、文件属性并递归地拷贝目录-d拷贝时保留链接-f在覆盖已经存在的目标文件时不提示-i在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖是交互式拷贝-p除复制源文件的内容外还将把其修改时间和访问权限也复制到新文件中-r若给出的源文件是一目录文件此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名例6.3 移动文件或目录——mv用于剪切或重命名文件。格式mv [选项] 源文件名称 目标文件名称注意剪切操作不同于复制操作因为它会把源文件删除掉只保留剪切后的文件。如果在同一个目录中将某个文件剪切后还粘贴到当前目录下其实本质就是对文件进行了重命名操作。例首先查看文件中的内容将其移动到/etc目录下。在/etc中检索显示有此文件查看文件内容可以确认移动成功。6.4 查找文件路径6.4.1 whereis命令用于搜索系统命令的可执行文件路径和说明文档。格式whereis 命令名6.4.2 which命令用于搜索系统命令的可执行文件。格式which 命令名例6.5 查找文件——find用于按照文件名、大小、时间、权限、类型、所属者、所属组来搜索文件。格式find 查找路径 查找条件 具体条件 操作注意find命令默认的操作是print输出find是检索文件的grep是过滤文件中字符串参数参数作用-name根据文件basename匹配名称-size匹配文件的大小50KB为查找超过50KB的文件而-50KB为查找小于50KB的文件-mtime [|-]n匹配修改内容的时间-4指小于等于4天内的文件名4,大于等于5天前的文件名4指前4~5那一天的文件-atime [|-]n匹配访问文件的时间-ctime [|-]n匹配修改文件权限的时间-newer f1 !f2匹配比文件f1新但比f2旧的文件-perm匹配权限mode为完全匹配-mode为包含即可-user匹配所有者-group匹配所有组-nouser匹配无所有者的文件-nogroup匹配无所属组的文件-type b/d/c/p/l/f匹配文件类型后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件-depth先从该目录子目录下查找再查找该目录-maxdepth levels-mindepth levels最多查找多少层目录最少查找多少层目录-delete将找到的文件删除如果是目录只能删除找到的空目录。-exec …… {};后面可跟用于进一步处理搜索结果的命令示例按照文件名搜索-name 按照文件名搜索-iname 按照文件名搜索不区分文件名大小写-inum 按照 inode 号搜索没有那个文件或目录find命令在执行时在内存中自己产生的临时文件执行完既消失注意搜索位置越大消耗系统资源越多在生产服务器上搜索的时候尽量不在根目录下搜索把搜索的范围尽量控制在最小例1/目录下检索名为passwd的文件。例2/etc下检索host开头的文件。按照文件大小搜索-size [|-]大小 按照指定大小搜索文件“”的意思是搜索比指定大小还要大的文件 “-”的意思是搜索比指定大小还要小的文件单位可以通过man find 查看size参数的单位例3从根目录/开始查找所有大小超过 100 MB 的文件。按照修改时间搜索-atime [|-]时间 按照文件访问时间搜索-mtime [|-]时间 按照文件数据修改时间搜索-ctime [|-]时间 按照文件状态修改时间搜索-newer file: 把比file修改时间更新的文件列出来注意时间范围问题-5代表 5 天内修改的文件。5代表前 56 天那一天修改的文件。5代表 6 天前修改的文件。例4从根目录/开始查找所有在过去10天内被修改过、并且是空文件或空目录的对象。按照权限搜索-perm 权限模式 查找文件权限刚好等于“权限模式”的文件 常用-perm -权限模式 查找文件权限全部包含“权限模式”的文件-perm 权限模式 查找文件权限包含“权限模式”的任意一个权限的文件如果要在整个系统中搜索权限中包括SUID权限的所有文件只需使用-4000即可例5从根目录/开始查找所有设置了 SUIDSet User ID权限位的文件按照所有者和所属组搜索-uid 用户 ID 按照用户 ID 查找所有者是指定 ID 的文件-gid 组 ID 按照用户组 ID 查找所属组是指定 ID 的文件-user 用户名 按照用户名查找所有者是指定用户的文件-group 组名 按照组名查找所属组是指定用户组的文件-nouser 查找没有所有者的文件 ,常用主要用于查找垃圾文件,还有一种情况就是外来文件比如光盘和U盘中的文件如果是由Windows复制来的也就是文件是由windows建立的在Linux中查看就是没有所有者的文件再比如手工源码包安装的文件也有可能没有所有者由其他系统打的源码包)例6在当前目录中查找所有者为 root 的文件和目录。按照文件类型搜索-type d 查找目录-type f 查找普通文件-type l 查找软链接文件例7查找当前用户家目录下所有子目录。逻辑运算符-a and 逻辑与-o or 逻辑或-not not 逻辑非优先级与或非例8在 /etc目录下查找所有文件名以字母e开头或者以字母f开头的文件或目录。exec参数用于把find命令搜索到的结果交由紧随其后的命令作进一步处理类似于管道符该参数必须为带减号的长参数使用-exec命令结尾必须为\ 例9将/root目录下的属于root账户的文件检索出来后拷贝到/目录下的find1目录中。6.6 压缩和解压缩6.6.1 压缩——zip格式zip FILE但在Linux中一般不使用zip来压缩。6.6.2 解压缩——unzip格式unzip FILE6.6.3 压缩——gzip格式gzip 参数 文件名参数-d 解压等同于 gunzip-k 保留原文件压缩后原文件不删除-v 显示压缩率-r 递归压缩目录下的所有文件注意不会打包成一个文件而是把目录里每个文件单独压缩6.6.4 压缩——bzip2格式bzip2 参数 文件名参数-d 解压等同于 bunzip2-k 保留原文件压缩后原文件不删除-v 显示压缩率-r 递归压缩目录下的所有文件注意不会打包成一个文件而是把目录里每个文件单独压缩-c 输出到标准输出配合重定向保留原文件-f 强制覆盖已存在的输出文件-t 测试压缩文件的完整性不解压6.7 归档命令tar格式tar 参数 [args]常用参数选项功能-c创建.tar格式的包文件-x释放.tar格式的包文件-t查看包中的文件列表必选参数选项功能-f用于指定打包文件名。当与-c选项一起使用时创建的tar包文件使用该选项指定的文件名当与-x选项一起使用时,则释放该选项指定的tar包文件辅助参数选项功能-v表示在命令执行时显示详细的提示信息-p打包时保留文件及目录的权限z调用gzip程序以gzip格式压缩或解压缩文件.tar.gz-j调用bzip2程序以bzip2格式压缩或解压缩文件.tar.bz2-J使用xz压缩或解压缩文件.tar.xzxz的压缩率通常比bzip2更高-C大写字母C和-x选项一起使用表示释放包时指定释放的目标路径额外参数打包时排除某个文件tar cf 文件名.tar --exclude路径/文件 路径注此处的路径前后需要保持保持一致统一使用绝对路径或者相对路径提示压缩只能针对文件不能针对目录且在压缩后会删除原文件。故需要先用tar指令打包再压缩。例1先打包再压缩。解压缩再解包。例2可以打包之后立即压缩。解压缩后直接解包。