文件和目录的基础操作

news2025/1/25 9:11:31

cat命令 concatenate(连接)的缩写,即 combine pieces together

1)把碎片组合在一起(意味着可以使用cat创建一个小文件)
2)显示文件

──(root㉿kali)-[~]
└─# cat /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.56.2


┌──(root㉿kali)-[~/work/exam]  组合在一起 ctrl+D 退出编辑
└─# cat > hackingskills 
welcome to sdxh!
Study security.                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# cat hackingskills  
welcome to sdxh!
Study security.                                                                                               

┌──(root㉿kali)-[~/work/exam] >> 内容追加
└─# cat >> hackingskills 
depressioom
yes
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# cat hackingskills   
welcome to sdxh!
Study security.depressioom
yes
      

touch 创建文件 创建一个空文件

这个命令最初是为了让用户可以简单的触摸一个文件更改细节,比如创建或修改时间,如果该文件不存在,该命令会默认创建该文件

┌──(root㉿kali)-[~/work/exam]
└─# ls -l        
总计 8
-rw-r--r-- 1 root root  16  8月18日 11:12 catfile
-rw-r--r-- 1 root root 105  8月18日 14:22 ex01.sh
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# touch catfile
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# date         
2023年 08月 18日 星期五 14:31:55 CST
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls -l        
总计 8
-rw-r--r-- 1 root root  16  8月18日 14:31 catfile
-rw-r--r-- 1 root root 105  8月18日 14:22 ex01.sh
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# touch f1                                                                
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls -l
总计 8
-rw-r--r-- 1 root root  16  8月18日 14:31 catfile
-rw-r--r-- 1 root root 105  8月18日 14:22 ex01.sh
-rw-r--r-- 1 root root   0  8月18日 14:32 f1


扩展 在脚本中使用cat创建一个文件

vi的基本使用

1、 当使用vi编辑一个文件时,默认进入的模式是命令模式
2、 由命令模式进入到插入模式(输入、编辑等 ) i (insert,插入)
3、 由插入模式返回到命令模式 ESC
4、 保存退出,按冒号 (😃 进入到末行 (底行模式) 执行wq保存退出执行q!退出不保存

#! /bin/bash 第一行
// #!:告诉操作系统我会使用哪个解释器
// bash:是常用的一种 shell命令解释器 

┌──(root㉿kali)-[~/work/exam]
└─# vi ex01.sh               
                                                                                               
┌──(root㉿kali)-[~/work/exam] echo 打印显示
└─# cat ex01.sh
#! /bin/bash
# this is my first script
echo "hello,depressiom"

┌──(root㉿kali)-[~/work/exam] #没有x 执行位权限
└─# ls -l ex01.sh
-rw-r--r-- 1 root root 64  8月18日 10:51 ex01.sh
 
┌──(root㉿kali)-[~/work/exam] #chmod +x  添加可执行权限
└─# chmod +x ex01.sh
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls -l ex01.sh   
-rwxr-xr-x 1 root root 64  8月18日 10:51 ex01.sh
     
┌──(root㉿kali)-[~/work/exam] # 1.在当前目录下执行脚本
└─# ./ex01.sh
hello,depressiom
    
┌──(root㉿kali)-[~/work/exam] # 2.输入脚本的完整路径 执行
└─# /root/work/exam/ex01.sh
hello,depressiom


┌──(root㉿kali)-[~/work/exam] # 3.脚本没有可执行权限的 执行方法
└─# chmod -x ex01.sh
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ./ex01.sh
zsh: 权限不够: ./ex01.sh
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# sh /root/work/exam/ex01.sh
hello,depressiom
    

┌──(root㉿kali)-[~/work/exam]
└─# cat ex01.sh     
#! /bin/bash
# this is my first script
cat > catfile << EOF # 创建catfile 以 EOF结束
I am depressiom # 文件的内容
EOF
ls catfile # 查看catfile
cat -n catfile #用cat 命令 查看catfile
  
┌──(root㉿kali)-[~/work/exam]
└─# ls           
catfile  ex01.sh
             

mkdir 创建目录

                                                                                              
┌──(root㉿kali)-[~/work/exam]
└─# mkdir -p dir{1..10}/{ah,sh,sc}xh/dir{1..100}
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls -l
总计 48
-rw-r--r-- 1 root root   16  8月18日 14:31 catfile
drwxr-xr-x 5 root root 4096  8月18日 14:35 dir1
drwxr-xr-x 5 root root 4096  8月18日 14:35 dir10
drwxr-xr-x 5 root root 4096  8月18日 14:35 dir2
drwxr-xr-x 5 root root 4096  8月18日 14:35 dir3
drwxr-xr-x 5 root root 4096  8月18日 14:35 dir4
drwxr-xr-x 5 root root 4096  8月18日 14:35 dir5
drwxr-xr-x 5 root root 4096  8月18日 14:35 dir6
drwxr-xr-x 5 root root 4096  8月18日 14:35 dir7
drwxr-xr-x 5 root root 4096  8月18日 14:35 dir8
drwxr-xr-x 5 root root 4096  8月18日 14:35 dir9
-rw-r--r-- 1 root root  105  8月18日 14:22 ex01.sh
-rw-r--r-- 1 root root    0  8月18日 14:32 f1
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls dir1
ahxh  scxh  shxh
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls ahxh
ls: 无法访问 'ahxh': 没有那个文件或目录
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls dir1/scxh
dir1    dir16  dir23  dir30  dir38  dir45  dir52  dir6   dir67  dir74  dir81  dir89  dir96
dir10   dir17  dir24  dir31  dir39  dir46  dir53  dir60  dir68  dir75  dir82  dir9   dir97
dir100  dir18  dir25  dir32  dir4   dir47  dir54  dir61  dir69  dir76  dir83  dir90  dir98
dir11   dir19  dir26  dir33  dir40  dir48  dir55  dir62  dir7   dir77  dir84  dir91  dir99
dir12   dir2   dir27  dir34  dir41  dir49  dir56  dir63  dir70  dir78  dir85  dir92
dir13   dir20  dir28  dir35  dir42  dir5   dir57  dir64  dir71  dir79  dir86  dir93
dir14   dir21  dir29  dir36  dir43  dir50  dir58  dir65  dir72  dir8   dir87  dir94
dir15   dir22  dir3   dir37  dir44  dir51  dir59  dir66  dir73  dir80  dir88  dir95

cp 复制文件

                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# touch oldfile
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# cp oldfile /root/work/exam
cp: 'oldfile''/root/work/exam/oldfile' 为同一文件
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# cp oldfile /root/work/exam newfile
cp: 目标 'newfile': 没有那个文件或目录
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# cp oldfile /root/work/exam/newfile
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls          
newfile  oldfile

┌──(root㉿kali)-[~/work/exam]
└─# echo "hello world" > oldfile
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# cat oldfile                       
hello world
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# cp oldfile /root/work/exam/newfile
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# cat newfile                       
hello world

┌──(root㉿kali)-[~/work/exam]
└─# cp -a dir1  dir2
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls
dir1  dir2  newfile  oldfile

mv 文件重命名和文件移动

┌──(root㉿kali)-[~/work/exam] # 位置未发生变化 重命名
└─# mv oldfile oldfile1
                                                                                               
┌──(root㉿kali)-[~/work/exam] 
└─# ls                 
dir1  dir2  newfile  oldfile1

┌──(root㉿kali)-[~/work/exam] # 位置发生改变移动
└─# mv oldfile1 dir1/oldfile 
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls dir1     
oldfile
        

删除文件 rm

┌──(root㉿kali)-[~/work/exam]
└─# ls     
dir1  dir2  newfile
                                                                                               
┌──(root㉿kali)-[~/work/exam] # 删除文件
└─# rm newfile    
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls
dir1  dir2



┌──(root㉿kali)-[~/work/exam] # 帮助文档
└─# rm --help     
用法:rm [选项]... [文件]...
删除 (unlink) 一个或多个 <文件>。

  -f, --force           忽略不存在的文件和参数,且从不询问
  -i                    每次删除前询问
  -I                    在删除超过三个文件或者递归删除前询问一次;此选项比 -i
                          提示次数更少,但仍可以避免大多数错误的发生
      --interactive[=何时]  根据 <何时> 的值进行询问:never、once(同 -I)或者
                          always(同 -i);如果省略 <何时>,则默认为 always
      --one-file-system  递归删除目录时,跳过所有和该目录所对应的命令行参
                          数不在同一个文件系统上的目录
      --no-preserve-root  不要对 "/" 特殊处理
      --preserve-root[=all]  不要删除 "/"(默认行为);
                              如添加了 "all" 参数,将拒绝处理与其父目录位于
                              不同设备上的命令行参数
  -r, -R, --recursive   递归删除目录及其内容
  -d, --dir             删除空目录
  -v, --verbose         显示详细步骤
      --help        显示此帮助信息并退出
      --version     显示版本信息并退出


┌──(root㉿kali)-[~/work/exam] # 删除目录
└─# rm -rf dir1   
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# ls
dir2


┌──(root㉿kali)-[~/work/exam] # kali的保护机制
└─# echo $SHELL
/usr/bin/zsh
                                                                                               
┌──(root㉿kali)-[~/work/exam]
└─# rm -rf /   
rm: 在 '/' 进行递归操作十分危险
rm: 使用 --no-preserve-root 关闭此安全保护机制

文件基础操作 测试

测试

bash 技巧

  1. ESC + . (或 !$)调用上一个命令的参数
  2. 重定向 > 覆盖原内容
  3. 重定向 >> 追加内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/894557.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字孪生和SCADA有哪些区别?

虽然SCADA和数字孪生用于工业领域&#xff0c;但它们有不同的用途。SCADA专注于工业过程的实时监测和控制&#xff0c;而数字孪生用于模拟和分析系统的性能。接下来&#xff0c;让我们详细讨论SCADA和数字孪生&#xff08;SCADA与数字孪生&#xff09;之间的区别。 SCADA与数字…

Python Opencv实践 - 图像仿射变换

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) rows,cols img.shape[:2] print(img.shape[:2])#使用getAffineTransform来获得仿射变换的矩阵M #cv.getAffineTransform(…

Java项目-苍穹外卖-Day04

公共字段自动填充 这些字段在每张表基本都有&#xff0c;手动进行填充效率低&#xff0c;且后期维护更改繁琐 使用到注解AOP主要 先答应一个AutoFill注解 再定义一个切面类进行通知 对应代码 用到了枚举类和反射 package com.sky.aspect; /*** 自定义切面类&#xff0c…

信创办公–基于WPS的EXCEL最佳实践系列 (公式和函数)

信创办公–基于WPS的EXCEL最佳实践系列 &#xff08;公式和函数&#xff09; 目录 应用背景相关知识操作步骤1、认识基本的初级函数2、相对引用&#xff0c;绝对引用&#xff0c;混合引用3、统计函数4、文本函数 应用背景 熟练掌握Excel的函数工具能让我们在日常的使用中更加方…

8.深浅拷贝和异常处理

开发中我们经常需要复制一个对象。如果直接用赋值会有下面问题: 8.1 浅拷贝 首先浅拷贝和深拷贝只针对引用类型 浅拷贝&#xff1a;拷贝的是地址 常见方法: 1.拷贝对象&#xff1a;Object.assgin() / 展开运算符{…obj} 拷贝对象 2.拷贝数组&#xff1a;Array.prototype.con…

【小胡同志】我的创作纪念日——暨加入CSDN128天留念!

2023年4月12日&#xff0c;我首次加入CSDN这个创作大集体&#xff0c;大家庭&#xff01;实属荣幸&#xff0c;倍感荣耀&#xff01;在此之前&#xff0c;就曾听说&#xff0c;CSDN是中国开发者的摇篮&#xff0c;今日之悟&#xff0c;确有名之所属之感&#xff01; 机缘 128天…

完美解决微信小程序使用复选框van-checkbox无法选中

由于小程序使用了vant-ui框架&#xff0c;导致checkbox点击无法选中问题 <van-checkbox value"{{ checked }}" shape"square"><view class"check-content"><view class"checktext">我已阅读并同意>《用户协议》…

中文医学知识语言模型:BenTsao

介绍 BenTsao&#xff1a;[原名&#xff1a;华驼(HuaTuo)]: 基于中文医学知识的大语言模型指令微调 本项目开源了经过中文医学指令精调/指令微调(Instruction-tuning) 的大语言模型集&#xff0c;包括LLaMA、Alpaca-Chinese、Bloom、活字模型等。 我们基于医学知识图谱以及医…

从其他地方复制的内容无法粘贴到idea中

问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 使用 idea 开发的时候&#xff0c;从其他地方复制的内容无法粘贴到 idea中&#xff0c;idea的版本是 2023.2 解决方案&#xff1a; 提示&#xff1a;这里填写该问题的具体解决方案&#xff1a; 网上查找资料…

文末有福利 | 小海小源表情包第一弹正式上线

手机铃声提醒你有新的消息 抓紧打个招呼“来了” 收到暖心的称赞 真是按捺不住激动的小心脏啊 只要你愿意拿起书 知识的大门将为你敞开 呲溜~ 这是不是像极了努力工作一天后下班的你&#xff1f; 。。。。。。 看了这么多“海源”表情包 是不是觉得小海、小源愈发可爱了呢…

“保姆级”考研下半年备考时间表

7月-8月 确定考研目标与备考计划 暑假期间是考研复习的关键时期&#xff0c;需要复习的主要内容有&#xff1a;重点关注重要的学科和专业课程&#xff0c;复习相关基础知识和核心概念。制定详细的复习计划并合理安排每天的学习时间&#xff0c;增加真题练习熟悉考试题型和答题技…

【ES6】箭头函数和普通函数的区别

它们之间的区别&#xff1a; &#xff08;1&#xff09;箭头函数没有自己的this。 &#xff08;2&#xff09;不可以当作构造函数&#xff0c;不可以对箭头函数使用new命令&#xff0c;否则抛出错误。 &#xff08;3&#xff09;不可以使用arguments对象&#xff0c;该对象在函…

今年全球智能手机出货量将创10年来新低 |百能云芯

据Counterpoint Research的最新报告称&#xff0c;本年度全球智能手机出货量可能面临十年来最低的局面。然而&#xff0c;值得注意的是&#xff0c;由于高端iPhone销售的坚挺表现&#xff0c;苹果有望在今年成为全球智能手机出货量的冠军。 需要强调的是&#xff0c;出货量并非…

【leetcode】225.用队列实现栈

分析&#xff1a; 队列遵循先入先出的原则&#xff0c;栈遵循后入先出的原则 也就是说&#xff0c;使用队列实现栈时&#xff0c;入队操作正常&#xff0c;但是出队要模拟出栈的操作&#xff0c;我们需要访问的是队尾的元素&#xff1b;题目允许使用两个队列&#xff0c;我们可…

ardupilot开发 --- 位置控制篇

几个疑问 如何根据GPS定位信息进行位置控制&#xff1f; 经纬度海拔高度如何转成导航坐标系&#xff1f; 飞控中的航迹点waypoint是基于那个坐标系的点&#xff1f;导航坐标系&#xff1f; Home点&#xff1f;导航坐标系的原点&#xff1f;电机解锁时的点&#xff1f;xyz&…

JTS多边形自相交异常问题处理

遇到一个奇怪的问题&#xff0c;线上某户型导入报了个异常com.vividsolutions.jts.geom.TopologyException: found non-noded intersection between LINESTRING。 看日志定位问题出在计算两柜体是否相交的方法上 Point middlePoint AlgorithmUtils.middlePoint(sp,ep); Poin…

thinkphp6前后端验证码分离以及验证

1.验证码接口生成验证码: public function verify(){return captcha(); } 也可以自己写方法 2.验证方法和普通模式session验证有区别,需要改原文件: 修改后的代码: <?php // +---------------------------------------------------------------------- // | ThinkP…

360浏览器打开CSDN多个写文章窗口(文章编辑窗口、文章编辑标签)时,文章内容消失问题解决办法(取消勾选“阻止不同源页面共享Cookie”)

文章目录 快速解决办法解决360浏览器打开CSDN多个写文章窗口时&#xff0c;文章内容消失问题的策略目录问题描述理解CookiesCookie和同源策略的关联阻止不同源页面共享Cookie的影响解决策略总结 快速解决办法 点击浏览器设置&#xff1a; 点击高级设置–>网页内容高级设置…

【算法】双指针划分思想妙解移动零

Problem: 283. 移动零 文章目录 思路算法图解分析复杂度Code 思路 首先我们来讲一下本题的思路 本题主要可以归到【数组划分/数组分块】这一类的题型。我们将一个数组中的所有元素划分为两段区间&#xff0c;左侧是非零元素&#xff0c;右侧是零元素 那解决这一类的题我们首先想…

气象知识丨自动气象站的基本信息介绍

自动气象站的基本概述&#xff1a;自动气象站可以用于对大气温度、相对湿度、风向、风速、雨量、气压、太阳辐射、土壤温度、土壤湿度、能见度等众多气象要素进行全天候现场监测&#xff0c;具有气象信息服务功能&#xff0c;可以通过多种通讯方法与监控平台进行通讯&#xff0…