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

一、Linux 目录结构

二、文件基础操作

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

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

cs 复制代码
pwd     //列出当前所在目录

2、cd:切换路径

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

3、mkdir:创建目录

cs 复制代码
mkdir dir0    //创建目录dir0
mkdir -p dir1/dir2    //创建目录dir1以及子目录dir2

4、rmdir:删除目录

cs 复制代码
mkdir dir0    //删除目录dir0

5、ls:列出目录内容

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

6、cp:复制文件

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

7、rm:删除文件

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

8、mv:移动文件

cs 复制代码
mv ../1.txt .    //将上级目录中的1.txt移到当前目录

9、cat:显示文件信息

cs 复制代码
cat 1.txt 2.txt    //显示1.txt和2.txt内容

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

cs 复制代码
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:

查找文件

cs 复制代码
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 表示显示目标位置行号

cs 复制代码
grep -rn "abc" 1.txt  //在1.txt中查找 abc 并显示行号

五、压缩解压

1、gzip

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

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

cs 复制代码
gzip -l test1.gz    //列出压缩文件

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

gzip test.1         //压缩文件

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

2、bzip2

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

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

cs 复制代码
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 解压到指定目录

cs 复制代码
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、翻页/浏览

在一般模式下:

bash 复制代码
ctrl + f:下翻页;

ctrl + b:上翻页;

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

n+:光标下移n行;

n-:光标上移n行;

G:转至文本结尾;

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

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

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

3、文本编辑

在一般模式下:

bash 复制代码
cc 删除整行,并且修改整行内容;

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

ndd 删除当前行向下 n 行;

x 删除光标所在的字符;

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

yy 复制当前行;

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

p 粘贴最近复制的内容;

s 删除光标所在字符;

r 替换光标处字符;

u 撤销上一步操作;

4、查找与替换

在一般模式下:

1、查找

bash 复制代码
/hello 

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

2、替换

bash 复制代码
%s/p1/p2/g    //将文件中所有p1替换为p2

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

七、其他操作

bash 复制代码
file 文件名    //查看文件类型

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

whereis 命令名/应用程序名    //查看所在位置
相关推荐
pk_xz1234561 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强1 小时前
Linux之sed命令详解
linux·运维·服务器
努力变厉害的小超超2 小时前
ArkTS中的组件基础、状态管理、样式处理、class语法以及界面渲染
笔记·鸿蒙
秃头佛爷2 小时前
Python学习大纲总结及注意事项
开发语言·python·学习
Lary_Rock3 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
dayouziei4 小时前
java的类加载机制的学习
java·学习
云飞云共享云桌面5 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
Peter_chq5 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
一坨阿亮6 小时前
Linux 使用中的问题
linux·运维
aloha_7896 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot