首页 > 系统相关 >Linux目录和文件管理

Linux目录和文件管理

时间:2023-07-22 22:22:25浏览次数:28  
标签:文件 set num Linux root 目录 光标

目录和文件管理

树型目录结构,根目录“/”,常见子目录“/root管理员家目录 /bin命令 /boot开机启动文件 /dev硬件文件 /etc默认配置文件 /home普通用户家目录的上级目录 /var /usr /sbin”

1、常见目录

一级目录功能(作用)
/bin/ 存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行
/boot/ 系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev/ 设备文件保存位置
/etc/ 配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
/home/ 普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming
/lib/ 系统调用的函数库保存位置(c语言 写的一些固定格式的代码,方便调用)
/media/ 挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
/mnt/ 挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
/misc/ 挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。
/opt/ 第三方安装的软件保存位置。
/root/ root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
/sbin/ 保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
/srv/ 服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
/tmp/ 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。

2、查看文件内容

2.1 单页显示

2.1.1 cat
选项效果
-n 显示行号包括空行
-b 跳过空白行编号
-s 将所有连续的多个空行替换为一个空行
-A 显示隐藏字符
 [root@localhost test]#cat -s test1.txt #将连续的空行压缩成一个空行
 a   b
 c
 ​
 d       e
 ​
 f
 ​
 [root@localhost test]#cat -b test1.txt #空行不编号
      1  a   b
      2  c
 ​
 ​
      3  d       e
 ​
 ​
 ​
      4  f
      
 [root@localhost test]#cat 1.txt 2.txt
 i am 1.txt##可批量查看文件
 i am 2.txt
2.1.2 tac

倒序显示文本

2.1.3 rev

同一行内容逆向显示

2.2分页显示

2.2.1 more

more [选项] 文件名

基本操作

  • 空格下一行 到文末后自动退出

  • b上一行

  • enter一行一行滚动

  • 自动退出

  • q退出

2.2.2 less

less [选项] 文件名

  • 可以使用/ 查找 n向下 N向上查找

  • Page Up 向上翻页,Page Down 向下翻页

  • 其余参考more

2.3显示文件前后内容

2.3.1 head默认显示前十行

格式:head 选项 参数

-c num:指定获取前num个字符

-n num:指定获取前num行;num为负数,表示取到倒数第num行之前

head -n +num(num),显示前num行

head -n -num,不显示最后num行

2.3.2 tail默认显示后十行

-f:实时查看

tail -n +num,从第num行显示到末尾

tail -n -num(num),显示最后num行

该文件从第十行开始显示

 head -n -k 文件名
 tail -n +k 文件名
2.3.3 tr替换

tr [选项]... SET1 [SET2]##SET是一组字符串

tr a b————把所有的字符"a"成字符“b”

tr -d 1————只要有字符"1"就删除

tr -s a————压缩a文件里紧连的重复字符替换成一个,aaaa变成a

tr -c "[0-9]" 用字符串中字符集的补集替换此字符集,要求字符集为ASCII。

2.3.4 wc (word count)

wc [选项]... 目标文件..

统计列数,wc本身就是参数 word

  • -l:统计行数

  • -w:统计单词个数

  • -c:统计字节数

2.3.5 grep 过滤

grep [选项]… 查找条件 目标文件

  • -i:查找时忽略大小写

  • -v:反向查找,输出与查找条件不相符的行

  • -o 只显示匹配项

  • -f 对比两个文件的相同行

  • -c 匹配的行数([root@localhost ky15]# grep -c root passwd 2)

基本格式

  • 要查找的字符串以双引号括起来单引号也可以

  • “^……”表示以……开头,“……$”表示以……结尾

  • “^$”表示空行

 选项:
 -color=auto ##对匹配到的文本着色显示
 -m num  ##匹配num次后停止
 grep -m 1 root /etc/passwd   #多个匹配只取第一个
 -v 显示不被pattern匹配到的行,即取反
 grep -Ev '^[[:space:]]*#|^$' /etc/fstab
 -i 忽略字符大小写
 -n 显示匹配的行号
 -c 统计匹配的行数
 grep -c root /etc/passwd    #统计匹配到的行数
 -o 仅显示匹配到的字符串
 -q 静默模式,不输出任何信息
 -A # after, 后#行 
 grep -A3 root /etc/passwd   #匹配到的行后3行业显示出来
 -B # before, 前#行
 -C # context, 前后各#行
 -e 实现多个选项间的逻辑or关系,如:grep –e ‘cat ' -e ‘dog' file
 grep -e root -e bash /etc/passwd #包含root或者包含bash 的行
 grep -E root|bash  /etc/passwd
 -w 匹配整个单词
 grep -w root /etc/passwd
 useradd rooter
 -E 使用ERE,相当于egrep
 -F 不支持正则表达式,相当于fgrep
 -f   file 根据模式文件,处理两个文件相同内容 把第一个文件作为匹配条件
 -r   递归目录,但不处理软链接
 -R   递归目录,但处理软链接
 ​
 ​
 grep root /etc/passwd
 grep "USER" /etc/passwd
 grep 'USER' /etc/passwd
 grep whoami /etc/passwd
2.3.6 paste

-d 指定分隔符,合并文件

 #一个文件放密码一个文件放用户名
 [root@localhost ~]#cat user.txt pass.txt 
 lisi
 liwu
 liliu
 123
 345
 444
 [root@localhost ~]#paste user.txt pass.txt 
 lisi    123
 liwu    345
 liliu   444
 ​
 ​
 [root@localhost ~]#paste -d: user.txt pass.txt 
 ###分隔符 用冒号隔开
 lisi:123
 liwu:345
 liliu:444

sort 排序;sort [options] file(s);把整理过的文本显示在屏幕上,不改变原始文件;

选项功能
-r 执行反方向(由上至下)整理
-R 随机排序
-n 执行按数字大小整理
-h 人类可读排序,如: 2K 1G
-f 选项忽略(fold)字符串中的字符大小写
-u 选项(独特,unique),合并重复项,即去重
-t 指定分隔符
-k 指定列

split分割文件

常用选项: -b(字节):指定按多少字节进行拆分,也可以指定 K、M、G、T 等单位。 -<行数>或-l<行数>:指定每多少行要拆分成一个文件。 输出文件名前缀:设置拆分后的文件的名称前缀,split 会自动在前缀后加上编号,默认从 aa 开始。 -a(后缀长度):默认的后缀长度是 2,也就是按 aa、ab、ac 这样的格式依次编号。

 

3、压缩、解压

3.1 gzip、bzip2

无法作用于文件夹。

gzip [-9] 文件名… 提高压缩比例,但是文件较大时效率会低 bzip2 [-9] 文件名... gzip -d .gz格式的压缩文件 d就是解压 bzip2 -d .bz2格式的压缩文件

9代表压缩比率,9最大1最小,默认压缩之后删除源文件;gzip的压缩率 要高于bzip2。

3.2归档tar

tar可以把文件打包在一起,故而可作用于文件夹

选项有顺序要求

格式:tar [选项] ... 归档文件名 源文件或目录

先取名再找目标文件

选项功能
-c 创建(Create).tar 格式的包文件
-x 解开.tar 格式的包文件
-C 解压时指定释放的目标文件夹
-f 表示使用归档文件(一般都要带上表示使用tar)
-p 打包时保留文件及目录的权限(不常用)
-P 打包时保留文件及目录的绝对径(不常用)
-t 列表查看包内的文件(要和f一起使用)
-v 输出详细信息(Verbose)
-j 调用 bzip2 程序进行压缩或解压
-z 调用 gzip 程序进行压缩或解压

选项不加“-”没有顺序要求;加“-”要注意顺序;c用于压缩,x用于解压,“f”放在最后;

解压时,选项可以直接用"xf"

 [root@localhost data]# tar -zcvf vm.tar.gz vm1 vm2 zz
 vm1##进行压缩
 vm2##因为v输出了信息
 zz/
 [root@localhost data]# tar -jcvf vm.tar.gz vm1 vm2 zz
 ​
 [root@localhost data]# tar -zxvf vm.tar.gzip -C /opt
 vm1
 vm2
 zz/
 ​
 [root@localhost zz]# tar -tf vm1.tar.gzip 
 vm1##tf可以在不解压下查看所文件

4、vi编辑器

是vi的升级版,类似window的word

格式:vim 选项 文件——文件名不存在,就是新建;文件名存在,就是修改。

4.1命令模式

命令模式:此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作。

unix是linux的前身,类unix操作中输入的命令是完整的单词

退出VIM

 
ZZ 保存退出
 ZQ 不保存退出
 ​
 ##########   光标跳转    ##############
 h: 左 
 L: 右 
 j: 下 
 k: 上
 ​
 ###单词间跳转
 w:下一个单词的词首
 e:当前或下一单词的词尾
 b:当前或前一个单词的词首
 #COMMAND:由#指定一次跳转的单词数
 ​
 当前页跳转:
 H:页首     
 M:页中间行     
 L:页底
 zt:将光标所在当前行移到屏幕顶端
 zz:将光标所在当前行移到屏幕中间
 zb:将光标所在当前行移到屏幕底端
 ​
 行首行尾跳转:
 ^ 跳转至行首的第一个非空白字符
 0 跳转至行首
 $ 跳转至行尾
 ​
 行间移动:
 #G 或者扩展命令模式下 
 :#   跳转至由第#行
 G 最后一行
 1G, gg 第一行
 ​
 命令模式翻屏操作:
 Ctrl+f 向文件尾部翻一屏,相当于Pagedown
 Ctrl+b 向文件首部翻一屏,相当于Pageup
 Ctrl+d 向文件尾部翻半屏
 Ctrl+u 向文件首部翻半屏
 ​
 字符编辑
 ​
 x 剪切光标处的字符
 #x 剪切光标处起始的#个字符
 xp 交换光标所在处的字符及其后面字符的位置
 ~ 转换大小写
 J(大写) 删除当前行后的换行符
 ​
 替换命令(replace)
 r 只替换光标所在处的一个字符
 R 切换成REPLACE模式(在末行出现-- REPLACE -- 提示),按ESC回到命令模式
 ​
 删除命令(delete)
 d 删除命令,可结合光标跳转字符,实现范围删除
 d$ 删除到行尾
 d^ 删除到非空行首
 d0 删除到行首
 dw 下一个单词的词首
 de 当前或下一个单词的词尾
 db 当前或上一个单词的词首
 #COMMAND
 dd:   剪切光标所在的行
 #dd 多行删除
 D:从当前光标位置一直删除到行尾,等同于d$
 删除的内容会存入类似缓存表里,可以设置存放位置
 ​
 复制命令(yank)
 y 复制,行为相似于d命令
 y$
 y0
 y^
 ye
 yw
 yb
 #COMMAND
 yy:复制行
 #yy 复制多行
 Y:复制整行
 ​
 粘贴命令(paste)
 p 缓冲区存的如果为整行,则粘贴当前光标所在行的下方;否则,则粘贴至当前光标所在处的后面
 P 缓冲区存的如果为整行,则粘贴当前光标所在行的上方;否则,则粘贴至当前光标所在处的前面
 ​
 改变命令(change)
 命令 c 删除后切换成插入模式
 c$
 c^
 c0
 cb
 ce
 cw
 #COMMAND
 cc  #删除当前行并输入新内容,相当于S
 #cc  
 C   #删除当前光标到行尾,并切换成插入模式,相当于c$
 ​
 查找
 /PATTERN:从当前光标所在处向文件尾部查找
 ?PATTERN:从当前光标所在处向文件首部查找
 n:与命令同方向
 N:与命令反方向
 ​
 撤消更改
 u 撤销最近的更改,相当于windows中ctrl+z
 #u 撤销之前多次更改
 U 撤消光标落在这行后所有此行的更改
 Ctrl-r 重做最后的“撤消”更改,相当于windows中crtl+y
 . 重复前一个操作
 #. 重复前一个操作#次
 ​
 100iky18 [ESC]
 重复的次数    i(输入模式) 重复的内容  esc 命令模式
 ​
 di"   光标在“ “之间,则删除” “之间的内容
 d i "   "之间的内容就会删除"
 ​
 yi(   光标在()之间,则复制()之间的内容
 ​
 vi[   光标在[]之间,则选中[]之间的内容
 ​
 dtx 删除字符直到遇见光标之后的第一个 x 字符
 ytx 复制字符直到遇见光标之后的第一个 x 字符

4.2 输入模式

输入模式: 使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表 3 所示),当编辑文件完成后按 Esc 键即可返回命令模式。

切入到输入模式

快捷键功能描述
i 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动
l 行首插入命令
o 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本
O 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本
a 在当前光标所在位置之后插入随后输入的文本
A 行尾插入命令

 

4.3 末行模式

  • 末行模式:文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。

 ######################基础命令###################
 #           #具体第#行,例如2表示第2行
 #,#         #从左侧#表示起始行,到右侧#表示结尾行 
 #,+#        #从左侧#表示的起始行,加上右侧#表示的行数,范例:2,+3 表示2到5行
 .           #当前行
 $           #最后一行
 .,$-1       #当前行到倒数第二行
 %           #全文, 相当于1,$
 ​
 /pattern/       #从当前行向下查找,直到匹配pattern的第一行,即:正则表达式
 /pat1/,/pat2/   #从第一次被pat1模式匹配到的行开始,一直到第一次被pat2匹配到的行结束
 #,/pat/         #从指定行开始,一直找到第一个匹配pattern的行结束
 /pat/,$         #向下找到第一个匹配patttern的行到整个文件的结尾的所有行
 ​
 ​
 ###################地址定界后跟一个编辑命令#############################
 d       #删除
 y       #复制
 ​
 ​
 ###########################另存为#############################
 w file  #将范围内的行另存至指定文件中
 r file  #在指定位置插入指定文件中的所有内容
 .!命令   #将命令执行结果贴到当前光标处
 ​
 ​
 ###################查找并替换##########################
 格式:
 范围  s/要查找的内容/替换的内容/g
 ​
 ​
 说明:
 要查找的内容:可使用基本正则表达式模式   
 替换为的内容:不能使用模式,但可以使用\1, \2, ...等后向引用符号;还可以使用“&”引用前面查找时查
 找到的整个内容
 ​
 ​
 修饰符:
 i #忽略大小写
 g #全局替换,默认情况下,每一行只替换第一次出现
 c #全局替换,每次替换前询问
 ​
 ​
 ​
 查找替换中的分隔符/可替换为其它字符,如:#,@
 范例:
 s@/etc@/var@g
 s#/boot#/#i
 ​
 ​
 ################行号##################
 显示:set number,简写 set nu
 取消显示:set nonumber, 简写 set nonu
 ​
 ​
 #########忽略字符的大小写###############
 启用:set ignorecase,简写 set ic
 不忽略:set noic
 ​
 ##############自动缩进############
 启用:set autoindent,简写 set ai
 禁用:set noai
 ​
 ############复制保留格式##############
 启用:set paste
 禁用:set nopaste
 ​
 ​
 ###########显示隐藏字符###############
 显示Tab ^I和换行符 和$显示
 启用:set list
 禁用:set nolist
 ​
 ​
 ##############tab用指定空格的个数代替#############
 启用:set tabstop=#    指定#个空格代替Tab
 简写:set ts=4
 ​
 ​
 ###############设置光标所在行的标识线#############
 启用:set cursorline,简写 set cul
 禁用:set nocursorline
 ​
 ​
 ######################加密##########################
 启用: set key=password
 禁用: set key=
 ​
 ​
 #######################set 帮助#####################
 set all

4.4 可视化模式

在末行有”-- VISUAL -- “指示,表示在可视化模式

允许选择的文本块

  • v 面向字符,-- VISUAL --

  • V 面向整行,-- VISUAL LINE --

  • ctrl-v 面向块,-- VISUAL BLOCK --

范例:在文件指定行的行首插入#

(不常用,且不实用)

vim编辑器类似win的word

 

 

标签:文件,set,num,Linux,root,目录,光标
From: https://www.cnblogs.com/bacolate/p/17574417.html

相关文章

  • mongodb linux 启动命令 指定配置文件
    MongoDBLinux启动命令指定配置文件作为一名经验丰富的开发者,你需要教会这位刚入行的小白如何通过命令行启动MongoDB,并指定配置文件。下面是整个流程的步骤:步骤动作1打开终端2进入MongoDB的安装目录3创建一个配置文件4启动MongoDB服务下面是每个......
  • linux目录和文件管理
    一.目录层次1)一级目录/bin  存放系统命令/boot系统启动目录/dev 设备文件的保存位置/etc  配置文件保存位置 /home放置用户个性配置/mnt挂载目录/opt第三方安装的软件保存位置。/rootroot的主目录/sbin保存与系统环境设置相关的命令/tmp临时目录2)显示......
  • Linux内核6.3生命周期结束
    在kernel.org网站上,Linux 6.3内核系列已经被标记为EOL(生命周期结束),这意味着它将不再支持错误和安全修复,告别Linux6.3内核系列的时刻已经到来。早些时候,知名的Linux内核维护者GregKroah-Hartman宣布发布Linux内核6.3.13,这是Linux6.3内核系列的第13次维护更新,这次更新带......
  • mysql workbench linux
    在Linux系统中安装MySQLWorkbench的步骤MySQLWorkbench是一个强大的数据库设计和管理工具,可以在Linux系统上安装和使用。下面是安装MySQLWorkbench的步骤和相应的代码示例。步骤概述步骤描述步骤1更新软件包列表步骤2安装MySQLWorkbench依赖步骤3下载......
  • python获取当前项目根目录
    defget_item_path(item_name):""":paramitem_name:项目名称,如pythonProject:return:项目根目录"""#获取当前所在文件的路径cur_path=os.path.abspath(os.path.dirname(__file__))#获取根目录returncur_path[:cur_path.......
  • python 数组保存到文件
    Python数组保存到文件的方法概述在Python中,我们可以使用多种方法将数组保存到文件中。本文将介绍一种简单而常用的方法,使用numpy库来实现。numpy是Python中用于科学计算的一个强大的库,它提供了高性能的多维数组对象以及用于处理这些数组的工具。接下来,我们将一步步指导你实现将P......
  • python 输出json文件
    Python输出JSON文件详解在Python中,我们可以使用json模块来处理JSON数据。JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,常用于将数据从一个系统传输到另一个系统。在本文中,我们将学习如何使用Python输出JSON文件。什么是JSON文件?JSON是一种用于存储和交换数据的格......
  • python读取dta文件
    Python读取dta文件在数据分析和数据科学领域,我们经常需要处理各种类型的数据文件。其中,dta文件是一种常见的数据格式,特别是在Stata软件中使用较多。Python提供了多种方法来读取dta文件,并将其转换为PandasDataFrame进行后续分析。什么是dta文件?dta文件是Stata软件使用的数据文件......
  • python方法遍历文件a.txt,并将所有的“好”字替换为“张三”,并另存为b.txt
    Python方法遍历文件并替换指定内容在Python中,我们可以使用各种方法来遍历文件和操作文件内容。本文将介绍如何使用Python来遍历文件,并将其中的指定内容进行替换,并将处理后的内容保存为新的文件。1.打开文件首先,我们需要打开文件并读取文件内容。使用Python的open()函数可以轻松......
  • python读取ascii文件
    Python读取ASCII文件在Python中,我们可以使用各种方法读取ASCII文件。无论是文本文件、配置文件还是其他类型的ASCII文件,Python提供了多种方式来读取并处理这些文件。本文将介绍如何使用Python读取ASCII文件,并提供代码示例。什么是ASCII文件?ASCII(AmericanStandardCodeforInfo......