一、文件系统 管理文件系统 文件系统日志方法: 数据模式 索引节点和文件都会被写入日志;丢失数据风险低,但性能差 有序模式 只有索引节点数据会被写入日志,但只有数据成功写入后才删除;在性能和安全性之间取得了良好的折中 回写模式 只有索引节点数据会被写入日志,但不控制文件数据何时写入;丢失数据风险高,但仍比不用日志好 操作文件系统 fdisk 创建分区——sudo fdisk /dev/sdb fdisk 命令: a 设置活动分区标志 b 编辑BSD Unix系统用的磁盘标签 c 设置DOS兼容标志 d 删除分区 l 显示可用的分区类型 m 显示命令选项 n 添加一个新分区 o 创建DOS分区表 p 显示当前分区表 q 退出,不保存更改 s 为Sun Unix系统创建一个新磁盘标签 t 修改分区的系统ID u 改变使用的存储单位 v 验证分区表 w 将分区表写入磁盘 x 高级功能 创建文件系统——sudo mkfs.ext4 /dev/sdb 创建文件系统的命令行程序: 工 具 用 途 mkefs 创建一个ext文件系统 mke2fs 创建一个ext2文件系统 mkfs.ext3 创建一个ext3文件系统 mkfs.ext4 创建一个ext4文件系统 mkreiserfs 创建一个ReiserFS文件系统 jfs_mkfs 创建一个JFS文件系统 mkfs.xfs 创建一个XFS文件系统 mkfs.zfs 创建一个ZFS文件系统 mkfs.btrfs 创建一个Btrfs文件系统 type mkfs.ext4 -- type命令判断工具是否可用 新文件系统挂载(重启linux文件系统不会自动挂载,除非创建在/etc/fstab) ——sudo mkdir /mnt/my_partition -- 创建挂载点 ——sudo mount -t ext4 /dev/sdb /mnt/my_partition -- 挂载 文件系统的检查与修复 fsck fsck 的命令行选项: -a 如果检测到错误,自动修复文件系统 -A 检查/etc/fstab文件中列出的所有文件系统 -C 给支持进度条功能的文件系统显示一个进度条(只有ext2和ext3) -N 不进行检查,只显示哪些检查会执行 -r 出现错误时提示 -R 使用 -A 选项时跳过根文件系统 -s 检查多个文件系统时,依次进行检查 -t 指定要检查的文件系统类型 -T 启动时不显示头部信息 -V 在检查时产生详细输出 -y 检测到错误时自动修复文件系统 逻辑卷管理(未文件系统创建逻辑存储设备) 逻辑卷管理布局:卷组、逻辑卷、物理卷(linux将每一个逻辑卷视为一个物理分区) LVM 允许你在Linux上用简单的命令行命令管理一个完整的逻辑卷管理环境 功能三:快照(备份逻辑卷文件);条带化(跨多个物理硬盘创建逻辑卷);镜像(实时更新的逻辑卷的完整副本) 使用LVM ①定义物理卷: 通过t命名改变分区类型:t——8e——w(8e代表LVM,w保存) sudo pvcreate /dev/sdb1 -- 标记为LVM分区 sudo pvdisplay /dev/sdb1 -- 查看创建进度( VG Name 内容为空,因为物理卷还不属于某个卷组) ②创建卷组 sudo vgcreate Vol1 /dev/sdb1 -- 创建卷组Voll sudo vgdisplay Vol1 -- 查看创建卷组细节 ③创建逻辑卷 lvcreate 的选项: -c --chunksize 指定快照逻辑卷的单位大小 -C --contiguous 设置或重置连续分配策略 -i --stripes 指定条带数 -I --stripesize 指定每个条带的大小 -l --extents 指定分配给新逻辑卷的逻辑区段数,或者要用的逻辑区段的百分比 -L --size 指定分配给新逻辑卷的硬盘大小 --minor 指定设备的次设备号 -m --mirrors 创建逻辑卷镜像 -M --persistent 让次设备号一直有效 -n --name 指定新逻辑卷的名称 -p --permission 为逻辑卷设置读/写权限 -r --readahead 设置预读扇区数 -R --regionsize 指定将镜像分成多大的区 -s snapshot 创建快照逻辑卷 -Z --zero 将新逻辑卷的前1 KB数据设置为零 sudo lvcreate -l 100%FREE -n lvtest Vol1 -- 为逻辑卷命名lvtest(指定卷组Voll) sudo lvdisplay Vol1 -- 查看逻辑卷创建细节 ④创建文件系统 sudo mkfs.ext4 /dev/Vol1/lvtest sudo mount /dev/Vol1/lvtest /mnt/my_partition -- 挂载 ⑤修改LVM Linux LVM命令: vgchange 激活和禁用卷组 vgremove 删除卷组 vgextend 将物理卷加到卷组中 vgreduce 从卷组中删除物理卷 lvextend 增加逻辑卷的大小 lvreduce 减小逻辑卷的大小 二、文件 清空当前界面(clear) 查看历史命令(history) 列出文件和目录(ls): ls -- 按列字母排序列出 ls -a -- 列出包括文件前代·的隐藏文件*(!隐藏文件的查看方式:cat .bash_history ) ls -F -- 区别文件和目录列出,文件后加正斜线区分/,文件后加*表示有执行权限的文件 ls -F -R -- 递归文件。直到所有目录或子目录下的文件。 ls -l -- 长列表显示文件详细信息:文件属性(类型和权限)、数量(!对于目录文件(-2)才是实际子目录的个数)、属主、属组、字节大小(byte)、上次更改时间、文件名。(!可以仅查看某个目录:ls -ld New_Dir 文件:ls -l new_file.sh) 支持通配符使用?*(?号代表一个字符,*号代表0个或多个字符) 支持正则表达式: ls -l my_scr[ai]pt a 或 i ls -l f[a-i]ll a 到 i ls -l f[!a]ll 排除 a 扩展:!列出当前环境所有包括隐藏文件:ls -al !列出当前环境所有包括隐藏文件 并区别目录:ls -F -al !列出当前环境所有包括隐藏文件 区别目录 并递归:ls -FR -al 切换目录(cd): HFS标准(文件系统层次结构标准):http://www.pathname.com/fhs Linux目录名称 / 虚拟目录的根目录。通常不会在这里存储文件 /bin 二进制目录,存放许多用户级的GNU工具 /boot 启动目录,存放启动文件 /dev 设备目录,Linux在这里创建设备节点 /etc 系统配置文件目录 /home 主目录,Linux在这里创建用户目录 /lib 库目录,存放系统和应用程序的库文件 /media 媒体目录,可移动媒体设备的常用挂载点 /mnt 挂载目录,另一个可移动媒体设备的常用挂载点 /opt 可选目录,常用于存放第三方软件包和数据文件 /proc 进程目录,存放现有硬件及当前进程的相关信息 /root root用户的主目录 /sbin 系统二进制目录,存放许多GNU管理员级工具 /run 运行目录,存放系统运作时的运行时数据 /srv 服务目录,存放本地服务的相关文件 /sys 系统目录,存放系统硬件信息的相关文件 /tmp 临时目录,可以在该目录中创建和删除临时工作文件 /usr 用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里 /var 可变目录,用以存放经常变化的文件,比如日志文件 cd /bin -- 进入bin目录(!绝对路径:目录或文件前加(/)) cd bin -- 进入当前目录下一个目录bin(!相对路径) cd ../bin -- 进入bin的父目录(!扩展:cd ../../bin ) cd -- 返回当前用户起始目录(!查看当前目录位置:pwd ) 处理目录(可以使用tree工具检查目录) 创建: mkdir New_Dir -- 创建新目录 mkdir -p New_Dir/Sub_Dir/Under_Dir -- 创建层级目录 删除: rmdir New_Dir -- 删除空目录 rm -ri New_Dir -- 每一级提示删除:目录文件都删除掉 rm -rf New_Dir -- 递归删除(!强制删除:不提示,目录和文件一起删除) 更改: mv Old_Dir New_Dir -- 修改目录名(!New_Dir若存在,则会将Old_Dir移动到New_Dir下 ) 处理文件 创建: touch New_Dir/my_file -- 创建空文件,当文件存在更改修改时间 删除: rm -i file -- 删除文件(会有提示) rm -f file -- 强制删除文件(不会有提示,慎用) 更改: mv old_file new_Scripts -- 移动或重命文件(!如果 new_Scripts 文件存在将被覆盖,如果 new_Scripts 是文件夹,old_file将被移动到文件夹 new_Scripts 下 ) touch -a old_file -- 更改访问时间(!默认显示更改时间,查看文件内容的时间不会显示。查看访问时间:ls -l --time=atime new_file) 复制(cp): cp old_file new_file -- 复制old_file,命名为new_file cp -i old_file Old_Dir/ -- 将old_file文件复制到Old_Dir下。如果Old_Dir有old_file文件,会提示是否覆盖 cp -R Scripts/ Mod_Scripts/ -- 递归复制文件夹中所有内容到Mod_Scripts/ (扩展!备份script结尾的文件:cp *script Mod_Scripts/ ) 链接(ln): 创建软链接 ln -s data_file sl_data_file -- 符号链接sl_data_file(注意不要软链接上创建软连接,容易断裂和混乱) 创建硬链接 ln data_file sl_data_file -- 硬链接(其实是同一个文件属性更改,如重命名,inode编码并没有改变。!查看文件的唯一inode编码:ls -i *data_file(扩展:ls -li *data_file 长列表显示)) 查看文件(file、cat、more): 一、file tmp -- 查看文件类型:确定该文本文件的 字符编码、文件类型 二、cat(查看所有内容。所有展示一旦运行不能停止,不适合大型文件查看) cat old_file cat -n old_file -- 给查看文件加上行号 cat -b old_file -- 给有文本的加上行号 cat -T old_file -- T 参数会用 ^I 字符组合去替换文中的所有制表符 三、more(分页工具:会在显示每页数据之后停下来,q键退出) 四、less(more的升级版,部分中文会转数字不好用) 五、查看文件首尾数据 head old_file -- 默认查看前面10行数据 head -5 old_file -- 限制查看前五行数据 fail old_file -- 默认查看倒数10行数据 fail -n 2 old_file -- 限制查看倒数2行数据 编辑: 流编辑器:sed、gwak 交互式编辑器:vim 排序(sort): sort 命令参数: -b --ignore-leading-blanks 排序时忽略起始的空白 -C --check=quiet 不排序,如果数据无序也不要报告 -c --check 不排序,但检查输入数据是不是已排序;未排序的话,报告 -d --dictionary-order 仅考虑空白和字母,不考虑特殊字符 -f --ignore-case 默认情况下,会将大写字母排在前面;这个参数会忽略大小写 -g --general-number-sort 按通用数值来排序(跟 -n 不同,把值当浮点数来排序,支持科学计数法表示的值) -i --ignore-nonprinting 在排序时忽略不可打印字符 -k --key=POS1[,POS2] 排序从POS1位置开始;如果指定了POS2的话,到POS2位置结束 -M --month-sort 用三字符月份名按月份排序 -m --merge 将两个已排序数据文件合并 -n --numeric-sort 按字符串数值来排序(并不转换为浮点数) -o --output=file 将排序结果写出到指定的文件中 -R --random-sort 按随机生成的散列表的键值排序 --random-source=FILE 指定 -R 参数用到的随机字节的源文件 -r --reverse 反序排序(升序变成降序) -S --buffer-size=SIZE 指定使用的内存大小 -s --stable 禁用最后重排序比较 -T --temporary-directory=DIR 指定一个位置来存储临时工作文件 -t --field-separator=SEP 指定一个用来区分键位置的字符 -u --unique 和 -c 参数一起使用时,检查严格排序;不和 -c 参数一起用时,仅输出第一例相似的两行 -z --zero-terminated 用NULL字符作为行尾,而不是用换行符 sort file -- 按字符排序 sort -n file -- 按数值排序(!默认升序。降序排列:sort -nr file ) sort -t ':' -k 3 -n /etc/passwd -- -t 以分隔符:分隔,-k 3代表行第三列该列排序 查找文本特定信息(grep): grep three file -- 搜索文件中的three的文本.如:grep ly_sw_cs /etc/passwd 查看ly_sw_cs用户是否可以使用系统 grep -v t file -- 输出不匹配t的行 grep -n t file -- 如果要显示匹配模式的行所在的行号,可加 -n 参数 grep -c t file -- 如果只要知道有多少行含有匹配的模式,可用 -c 参数 grep -e t -e f -e ,file -- 输出了含有字符 t 或字符 f 或',' 的所有行 grep [tf] file -- 正则表达式,t或f或',',同-e 压缩文件(gzip,tar) gzip file -- 压缩文件file,支持通配符gzip file* (原文件转化为压缩文件 file.gz ) tar 命令的功能(归档): -A --concatenate 将一个已有tar归档文件追加到另一个已有tar归档文件 -c --create 创建一个新的tar归档文件 -d --diff 检查归档文件和文件系统的不同之处 --delete 从已有tar归档文件中删除 -r --append 追加文件到已有tar归档文件末尾 -t --list 列出已有tar归档文件的内容 -u --update 将比tar归档文件中已有的同名文件新的文件追加到该tar归档文件中 -x --extract 从已有tar归档文件中提取文件 -C dir 切换到指定目录 -f file 输出结果到文件或设备 file -j 将输出重定向给 bzip2 命令来压缩内容 -p 保留所有文件权限 -v 在处理文件时显示文件 -z 将输出重定向给 gzip 命令来压缩内容 tar -cvf test.tar test/ test2/ -- 创建了名为test.tar的归档文件,含有test和test2目录内容 (打包) tar -tf test.tar -- 列出tar文件test.tar的内容(但并不提取文件) tar -xvf test.tar -- 从tar文件test.tar中提取内容(解包) 以.tgz结尾的gzip文件是压缩过的tar文件可用命令 tar -zxvf filename.tgz 来解压 三、文本编辑工具 linux编辑器分类: ? vim编辑器 ? nano编辑器 ? emacs编辑器 ? KWrite编辑器 ? Kate编辑器 ? GNOME编辑器 linux的交互式编辑器选择一种就可以了 交互式编辑器vim: 检查vim软件包 which vim -- /usr/bin/vim readlink -f /usr/bin/vi -- 找出链接文件的最后一环/usr/bin/vim.tiny vim基础 vim编辑器有三种操作模式(ESC到一般模式与其他模式切换): 一般模式 插入模式(i a A o R 进入) 命令行模式(/ :进入) vim中有用来移动光标的命令(处理放向键失灵的特殊情况): h :左移一个字符。 j :下移一行。 k :上移一行。 l :右移一个字符。 vim提供了一些能够提高移动速度的命令: PageDown(或Ctrl+F):下翻一屏。 PageUp(或Ctrl+B):上翻一屏。 G :移到缓冲区的最后一行。 gg :移到缓冲区的第一行。 num G :移动到缓冲区中的第num行。 vim命名行(普通模式下键入:): q! :取消所有对缓冲区数据的修改并退出 wq :将缓冲区数据保存到文件中并退出 复制和黏贴:普通模式下,通过寄存器使用p命名实现 剪切黏贴:x/dw/dd/d$;p 复制黏贴:yw/y$;p(yw表示复制一个单词,y$表示复制到行尾) 查找和替换 查找的3种情况,下斜线+单词查找,要继续查找同一个单词,按下斜线键,然后按回车键:(在一般模式中直接使用 /+字符串 查找) 如果要查找的文本出现在光标当前位置之后,则光标会跳到该文本出现的第一个位置。 如果要查找的文本出现在光标当前位置之前,则光标会绕过文件末尾,出现在该文本所在的第一个位置(并用一条消息指明)。 输出一条错误消息,说明在文件中没有找到要查找的文本。 替换 :s/old/new/ :替换当前行的第一个old :s/old/new/g :一行命令替换所有 old 。 :n,ms/old/new/g :替换行号 n 和 m 之间所有 old 。 :%s/old/new/g :替换整个文件中的所有 old 。 :%s/old/new/gc :替换整个文件中的所有 old ,但在每次出现时提示。 vim常用命令解释: x 删除当前光标所在位置的字符 dd 删除当前光标所在行 dw 删除当前光标所在位置的单词 d$ 删除当前光标所在位置至行尾的内容 J 删除当前光标所在行行尾的换行符(拼接行) u 撤销前一编辑命令 i 在当前光标前插入数据 a 在当前光标后追加数据 A 在当前光标所在行行尾追加数据 o 在当前光标所在行上添加一行 r 用char替换当前光标所在位置的单个字符 R 用text覆盖当前光标所在位置的数据,直到按下ESC键
来源:https://www.cnblogs.com/TianMu/p/11193686.html