当前位置: 首页 > article >正文

嵌入式Linux学习笔记-Linux基础操作

一、Linux 目录结构

二、文件基础操作

        Linux 命令一般由三部分组成,命令 + 选项 + 参数

        1、pwd:列出当前所在路径

pwd     //列出当前所在目录

        2、cd:切换路径

cd /home/boot    //切换路径为/home/boot
cd ..            //返回上一级目录
cd ../..         //返回上上级目录
cd -             //返回上次目录
cd ~             //切换路径为home

        3、mkdir:创建目录

mkdir dir0    //创建目录dir0
mkdir -p dir1/dir2    //创建目录dir1以及子目录dir2

        4、rmdir:删除目录

mkdir dir0    //删除目录dir0

        5、ls:列出目录内容

ls        //列出当前目录内容
ls -l     //显示文件完整信息
ls -a     //显示所有文件包括隐藏文件
ls -la    //显示所有文件的全部信息
ls -lh    //以K/M/G等可读方式列出来

        6、cp:复制文件

cp -r dir1 dir2    //递归的复制dir1的内容到dir2

        7、rm:删除文件

rm -rf dir1    //强制递归删除dir1及其子目录

        8、mv:移动文件

mv ../1.txt .    //将上级目录中的1.txt移到当前目录

        9、cat:显示文件信息

cat 1.txt 2.txt    //显示1.txt和2.txt内容

        10、touch:修改文件时间,如果没有该文件则创建该文件

touch 1.txt    //修改文件时间为当前时间

三、权限与属性修改

        我们先来看一下  ls -l 列出的文件属性:

        第1个字符  -  表示文件类型,d表示目录,-表设普通文件,l表示链接文件;

        随后的字符 rw-r--r-- 每三个为一组,共三组。每组第一位 r 表示可读,第二位 w 表示可写,第三位 x 表示可执行,- 表示没有该权限。比如 rw- 就表示:可读可写不可执行。第一组表示文件所有者的操作权限,第二组表示该用户组的权限,第三组表示其他用户的权限;

        第11个字符 1 表示链接数,每在该目录的下一级创建一个目录,链接数就会+1;

        随后的两个 book 表示该文件所属,第一个 book 表示所属用户,第二个 book 表示所属用户组;

        随后的 0 表示文件占用大小;

        Aug 29 22:27表示文件创建或修改时间;

        1.txt 表示文件名。

1、改变文件权限

        chown:改变文件所属用户

        可以看到直接将用户修改到 root 操作是不被允许的,因为 book 用户权限较低,我们可以使用 sudo 命令来临时提升权限

        chgrp:改变文件所属用户组

2、改变文件属性

        chmod:改变文件权限,方法有三种:

        1、我们可以把 rwx 三个权限看做三位 2 进制数,有该权限时置1 没有置0,然后用十进制表示。比如: rw-r--r-- 用二进制表示为:110 100 100 ,十进制为 644。那么修改文件属性时就可以这样写:chmod 644 1.txt

        那么我们将 1.txt 属性修改为文件拥有者可读可写可执行,该用户组可读可写,其他用户可读。

        2、我们也可以使用 u,g,o,a 分别表示 user、group、others、all 。

        比如要将 1.txt 属性的 u 改成可读可写,g,o 改成可读

        3、我们也可以使用 + 或 - 去增加或去除某种权限

四、查找搜索

1、find:

        查找文件

find /home/Desktop/ -name "1.txt" //以名字的方式在 /home/Desktop 下查找 1.txt文件

find /home/Desktop/ -name "*.txt" //以名字的方式在 /home/Desktop 下查找以 .txt 结尾的文件

find /home/Desktop/ -name "*abc*" //以名字的方式在 /home/Desktop 下查找含有 abc 的文件

2、grep:

        查找文件中的内容

        r 表示递归查找,n 表示显示目标位置行号

grep -rn "abc" 1.txt  //在1.txt中查找 abc 并显示行号

五、压缩解压

1、gzip

        有三个常用选项:-l:列出压缩文件;-k:压缩或解压时保留输入文件;-d:解压缩

        只能压缩单个文件,不能压缩目录

gzip -l test1.gz    //列出压缩文件

gzip -kd test1.gz   //解压文件

gzip test.1         //压缩文件

gzip -k test.1      //压缩文件,保留原有文件

2、bzip2

        有两个可用选项:-k:压缩或解压时保留输入文件;-d:解压缩

        只能压缩单个文件,不能压缩目录

bzip2 -kd test1.bz2   //解压文件

bzip2 test.1         //压缩文件

bzip2 -k test.1      //压缩文件,保留原有文件

        两者用法区别不大,但 gzip 压缩率没有 bzpi2 高。一般小文件用前者,大文件用后者

3、tar

        tar常用选项:

        -c:表示创建用来生成文件包

        -x:表示提取,从文件包中提取文件

        -t:可以查看压缩的文件

        -z:使用 gzip 方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩

        -j:使用 bzip2 方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩

        -v:详细报告 tar 处理的信息

        -f:表示文件,后面接着一个文件名

        -C 解压到指定目录

tar czvf dira.tar.gz dira           //将目录dira以gzip方式压缩为dira.tar.gz

tar cjvf dira.tar.bz2 dira          //将目录dira以bzip2方式压缩为dira.tar.bz2

tar tvf dira.tar.gz                 //查看压缩文件

tar xzvf dira.tar.gz                //解压到当前目录

tar xzvf dira.tar.gz -C /home/book  //解压到/home/book

六、vi编辑器

1、vi 简介

        vi 编辑器是一个运行在终端的文本编辑器,类似于 windows 下的记事本。它的升级版 vim 编辑器功能更丰富。

        vi 的基本操作是:从终端输入 vi 1.txt 后可进入一般模式;按 i 可进入编辑模式,按ESC退出编辑模式;输入“:”进入命令行模式执行各种命令,按ESC退出命令行模式;按“ :wq ” 保存修改并退出 vi。

2、翻页/浏览

        在一般模式下:

ctrl + f:下翻页;

ctrl + b:上翻页;

nG/ngg:光标移动到n行行首;

n+:光标下移n行;

n-:光标上移n行;

G:转至文本结尾;

0:光标移至当前行行首;

$:光标移至当前行行末;

fx:搜索当前行中下一个出现字母 x 的地方;

3、文本编辑

        在一般模式下:

cc 删除整行,并且修改整行内容;

dd 删除该行,不提供修改功能;

ndd 删除当前行向下 n 行;

x 删除光标所在的字符;

X 删除光标前面的一个字符;

yy 复制当前行;

nyy 复制当前行及其下面 n 行;

p 粘贴最近复制的内容;

s 删除光标所在字符;

r 替换光标处字符;

u 撤销上一步操作;

4、查找与替换

        在一般模式下:

1、查找

/hello 

        下面命令为从光标位置向文件末尾搜索 “hello”,按 n 在同方向上重复上次搜索命令(即继续向下搜索),按 N 在反方向上重复上次搜索命令(即继续向上搜索)。

2、替换

%s/p1/p2/g    //将文件中所有p1替换为p2

%s/p1/p2/gc   //替换时需要确认

七、其他操作

file 文件名    //查看文件类型

which 命令名/应用程序名    //查看所在位置

whereis 命令名/应用程序名    //查看所在位置


http://www.kler.cn/a/282834.html

相关文章:

  • vue3: ref, reactive, readonly, shallowReactive
  • RabbitMQ轻松构建高效可靠的消息队列系统
  • ChatGPT登录失败的潜在原因分析
  • 嵌入式硬件实战基础篇(一)-STM32+DAC0832 可调信号发生器-产生方波-三角波-正弦波
  • C++内存池实现
  • 2024 年(第 7 届)“泰迪杯”数据分析技能赛B 题 特殊医学用途配方食品数据分析 完整代码 结果 可视化分享
  • Elasticsearch 8.13.4 LocalDateTime类型转换问题
  • 使用seamless-scroll-v3 实现无缝滚动,自动轮播平滑的滚动效果
  • Linux系统——服务器长时间训练不间断指令(nohup的简单用法)
  • PsConvertToGuiThread函数调用前传
  • 力扣第二阶段Days34
  • AI在医学领域:GluFormer一种可泛化的连续血糖监测数据分析基础模型
  • 自动化任务工具 | zTasker v1.97.1 绿色版
  • [Hive]四、Hive On Tez
  • 私域流量升级下的新机遇——“开源 AI 智能名片S2B2C 商城小程序”与新兴技术的融合
  • ARM/Linux嵌入式面经(二七):韶音
  • Java LeetCode 练习
  • pmp证书为何会被骂?他真的就是个垃圾证书?
  • 鸿蒙HarmonyOS开发实战: 页面传值跳转
  • Linux CMake根据环境变量和编译选项,编译多模块
  • k8s集群搭建
  • 四个版本的双向链表(C++,C++ CLI, C#, Java)
  • 奇安信渗透测试岗位三面经验分享
  • SpringBoot集成EasyExcel实现Excel文件导入/出
  • 计算机基础复习8.29
  • 力扣top300:3. 无重复字符的最长子串