【linux教程学习笔记】

news2024/11/25 2:59:13

目录

一. Linux系统目录结构

​编辑 

二. Linux文件基本属性

 1. 文件属性分析

2. 更改文件属性

2.1. chgrp:change group,更改文件所属的组

2. chown:change owner,更改文件所属的用户,也可同时更改文件所属的组

3. chmod:change mode,更改文件9个属性

方法1 数字类型改变文件权限

方法2 符号类型改变文件权限

三. Linux文件与目录管理

1. 绝对路径与相对路径

2. 处理目录的常用命令

2.1 ls(list,列出目录)--最常用的命令

2.2 cd(change directory,切换目录)

2.3 pwd(print working directory,显示当前所在的目录)

2.4 mkdir(创建新目录)

2.5 rmdir(删除空的目录)

2.6 cp(copy file,复制文件或目录)

2.7 rm(remove,移除文件或目录)

2.8 mv(move file,移动文件或目录,或修改名称)

四. Linux文件内容查看

1. cat (从第一行开始显示文件内容)

2. tac(cat的倒写,文件内容从最后一行开始显示)

 3. nl(显示行号)

 4. more(一页一页翻动)

5. less(一页一页翻动)

6. head(取出文件前面几行)

7. tail(取出文件后面几行)


引言:针对菜鸟教程中的linux学习,记录笔记,方便后期复盘,有关资料详见Linux 系统目录结构 | 菜鸟教程 (runoob.com)

一. Linux系统目录结构

 

 相关目录解释:

目录解释
/binBinaries(二进制文件)缩写,存放最经常使用的程序和指令
/boot存放启动Linux时的核心文件,包括连接文件以及镜像文件
/dev

Device缩写,存放Linux的外部设备。

注意:在Linux中访问设备的方式和访问文件相同

/etcEtcetera(等等)缩写,存放所有的系统管理所需的配置文件和子目录,更改目录下的文件可能导致系统不能启动
/home用户的主目录,Linux中每个用户都有一个自己的目录,一般该目录名以用户的账户命名。
/libLibrary(库)的缩写,存放系统最基本的动态连接共享库,例如(C++库),类似于Windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库
/lost+found该目录一般情况下为空,当系统非法关机后,这里便会存放文件
/mediaLinux系统会自动识别一些设备,例如U盘、光驱等,识别后,Linux会把识别的设备挂载到这个目录上
/mnt系统提供该目录是为了让用户临时挂载别的文件系统,可将光驱挂载在/mnt/上,然后进入该目录就可查看光驱里的内容
/optoptional(可选)的缩写,主机额外安装软件所摆放的目录。例如,安装一个ORACLE数据库可放在这个目录。默认为空
/procProcesses(进程)缩写,/proc是虚拟文件系统,存储当前内核运行状态的一系列特殊文件,该目录是虚拟目录,是系统内存的映射,可直接访问这个文件目录来获取系统信息。这个目录的内容不在硬盘上而在内存里,可直接修改里面的某些文件,
/root系统管理员目录,也称超级权限者的用户目录
/sbinSuperuser Binaries(超级用户的二进制文件)的缩写,存放系统管理员使用的程序和指令
/srv存放服务启动之后需要提取的数据(不用服务器即为空)
/sys该目录安装了2.6内核中新出现的一个文件系统sysfs,sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映,当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建
/tmptemporary(临时)的缩写,用来存放一些临时文件
/usrunix shared resources(共享资源)的缩写,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录(重点目录)
/usr/bin系统用户使用的应用程序与指令
/usr/sbin超级用户使用的比较高级的管理程序和系统守护程序
/usr/src内核源代码默认的放置目录
/varvariable(变量)的缩写,习惯将那些经常被修改的目录放在该目录下,包括各种日志
/run临时文件系统,存储系统启动以来的信息,当系统重启时,该目录下的文件应该被删除或清掉。

对以上文件目录可以分为如下:

系统启动必须:/boot  /etc  /lib  /sys

指令集合:/bin  /sbin  

外部文件管理:/dev  /media  /mnt  

临时文件:/run  /lost+found  /tmp

账户:/root  /home  /usr  /usr/bin  /usr/sbin  /usr/src

运行过程:/var  /proc  

扩展:/opt  /srv

二. Linux文件基本属性

Linux系统是一个多用户系统,不同的用户处于不同的地位,拥有不同的权限。为保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。

通常通过如下命令来修改文件或目录的所属用户与权限:

chown:change owner,修改所属用户与组

chmod:change mode,修改用户的权限

在Linux中我们可以使用 ll 或者 ls -l 命令来显示一个文件的属性以及文件所属的用户和组。

 1. 文件属性分析

第一个字符代表这个文件是目录、文件或者链接文件等等。

第一个字符解释
d目录
-文件
l链接文档(link file)
b装置文件里面的可供存储的接口设备(可随机存储装置)
c

装置文件里面的串行端口设备

例如键盘、鼠标(一次性读取装置)

接下来的字符中,三个为一组,且均为rwx的三个参数的组合,其中r(read)可读、w(write)可写、x(execute)可执行。

注意:三个权限的位置不会改变,若没有权限,则以减号 “-” 代替。

 第0位确定文件的类型,1-3位确定文件所有者的拥有该文件的权限,4-6位确定所有者同组用户拥有该文件的权限,7-9位确定其他用户拥有该文件的权限。

固定的位置:

第1、4、7位:表示读权限,可读则用r,不可读则用 -

第2、5、8位:表示写权限,可写则用w,不可写则用 -

第3、6、9位:表示执行权限,可执行则用x,不可执行则用 -

对于root用户来说,一般情况下,文件的权限不起作用。

2. 更改文件属性

2.1. chgrp:change group,更改文件所属的组

chgrp [-R] 属组名 文件名

参数解释:

-R:更改某个目录文件的属组,该目录下的所有文件的属组都会更改

2. chown:change owner,更改文件所属的用户,也可同时更改文件所属的组

chown [-R] 属主名 文件名
chown [-R] 属主名: 属组名 文件名

例如:

3. chmod:change mode,更改文件9个属性

有两种设置方法:a. 数字; b. 符号

9个基本权限 == owner/group/others(三个身份)* read/write/execute(三个操作权限)

方法1 数字类型改变文件权限

权限分数
r(read)4
w(write)2
x(execute)1

owner/group/others各自的三个权限r/w/x是需要累加的,

例如:权限数字774 === 

owner = rwx = 4+2+1 = 7

group = rwx = 4+2+1 = 7

others = r-- = 4 + 0 + 0 = 4

对应的变更权限的指令chmod如下:

chmod [-R] 774 测试文件

方法2 符号类型改变文件权限

身份权限符号
user:用户u
group:组g
others:其他o
all:全部身份a

所以可用如下的方式:

身份权限操作读写权限
chmod

u

g

o

a

+ (添加)

-(除去)

=(设定)

r

w

x

文件或目录

例1:要将文件权限设置为-rwxr-xr--,可以使用如下:

touch test1   //创建test1文件
ls -al test1  //查看test1默认权限
chmod u=rwx,g=rx,o=r test1  //修改test1权限
ls -al test1  //再次查看test1权限,看权限是否成功更改

例2 拿掉test1全部人的可执行权限(不改变其他已存在的权限)

chmod a-x test1  //去掉全部人的x(可执行)权限
ls -al test1   //查看test1的权限

三. Linux文件与目录管理

Linux的目录结构为树状结构,最顶级的目录是根目录 /,其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。

1. 绝对路径与相对路径

绝对路径:根目录 / 写起

相对路径:不是由 / 写起,存在 .. 这种代指上层目录

例如:从 /usr/share/doc到 /usr/share/man,

绝对路径: cd  /usr/share/man

相对路径:cd  ../man

2. 处理目录的常用命令

ls:list files,列出目录及文件名

cd:change directory,切换目录

pwd:print work directory,显示当前的目录

mkdir:make directory,创建一个新的目录

rmdir:remove directory,删除一个空的目录

cp:copy file,复制文件或目录

rm:remove,删除文件或目录

mv:move file,移动文件与目录,或修改文件与目录的名称

可用命令 man 查看各个命令的使用文档,例如 man rm

2.1 ls(list,列出目录)--最常用的命令

可不带参数和目录,表示列出当前目录下的所有文件和目录

带参数和目录,选项与参数分析如下:

-a:列出该目录下的全部文件,连同隐藏文件(开头为.的文件)

-d:仅列出目录本身

-l:长数据串列出,包含文件的属性与权限等

 补充:将目录下的所有文件(含属性与隐藏栏)全部列出来

ls -al ~

2.2 cd(change directory,切换目录)

cd 【相对路径或绝对路径】

cd ..  // ..表示当前的上一级目录
cd ./test   // .表示当前目录,该命令表示进入当前目录的test目录下
cd ~        // ~表示根目录,即 /root目录

2.3 pwd(print working directory,显示当前所在的目录)

pwd 【-P】

-P:显示实际的路径,而非链接路径

具体看菜鸟教程的解释如下:

2.4 mkdir(创建新目录)

mkdir [-mp] 目录名称

选项与参数:

-m:配置文件的权限,直接配置,无需看默认权限

-p:直接将所需的目录(含上一级目录)递归创建起来

例1:

mkdir test                  //创建一个名为test的新目录

mkdir test1/test2/test3     //报错!!

mkdir -p test1/test2/test3   //成功创建多层目录

例2:创建权限为rwx--x--x的目录

mkdir -m  711 test    //若没有-m强制配置属性,系统会使用默认属性

2.5 rmdir(删除空的目录)

rmdir [-p] 目录名称

选项与参数:

-p:从目标目录起,同时删除多级空目录

注意:rmdir仅能删除空的目录,非空目录的删除可使用rm命令

2.6 cp(copy file,复制文件或目录)

cp [-adfilprsu] 源文档source 目标文档destination
cp [options] source1 source2 source3 ... directory

选项与参数:(红色为常用参数)

选项与参数解释
-a相当于-pdr (-p、-d、-r三者之和)
-d若来源文档为链接档的属性(link file),则复制链接档属性而非文件本身
-fforce,若目标文件已经存在并且无法开启,则移除后再尝试一次
-i若目标文档已经存在,则覆盖时先询问动作的进行
-l进行硬式链接(hard link)的链接档创建,而非复制文件本身
-p连同文件的属性一起复制过去,而非使用默认属性
-r递归持续复制,用于目录的复制行为
-s复制成为符号链接档
-uupdate,若目标文档比原文档旧,才升级destination

2.7 rm(remove,移除文件或目录)

rm [-fir] 文件或目录

选项与参数:

选项与参数解释
-fforce,忽略不存在的文件,不会出现警告信息
-i互动模式,在删除前会询问使用者
-r递归删除

2.8 mv(move file,移动文件或目录,或修改名称)

mv [-fiu] source destination
mv [options] source1 source2 source3 ... directory

选项与参数:

选项与参数解释
-fforce,如果目标文件已经存在,不会询问而直接覆盖
-i若目标文件已经存在,会询问是否覆盖
-uupdate,若目标文件已经存在,而source比较新,才会升级

四. Linux文件内容查看

Linux使用以下命令查看文件的内容:

命令解释
cat从第一行开始显示文件内容
taccat的倒写,从最后一行开始显示
nl显示的时候,输出行号
more一页一页的显示文件内容
less与more类似,并且可以往前翻页
head只看开头几行
tail只看末尾几行

1. cat (从第一行开始显示文件内容)

cat [-AbEnTv] 文件名

选项与参数:

选项与参数解释
-A相当于-vET的整合,可列出一些特殊字符而不是空白
-b列出行号,仅针对非空白做出行号显示,空白行不标行号
-E将结尾的断行字节$显示出来
-n打印出行号,包括空白行(不同与-b)
-T将【Tab】按键以^|显示
-v列出一些看不出来的特殊字符

2. tac(cat的倒写,文件内容从最后一行开始显示)

对比菜鸟教程的cat与tac的举例如下:

 

 3. nl(显示行号)

nl [-bnw] 文件

选项与参数:

选项与参数解释

-b指定行号的方式,主要有两种:

-b a不论是否为空行,都列出行号
-b t如果有空行,空的多行只一个默认行号
-n列出行号的表示方法,主要有三种:
-n ln行号在荧幕的最左显示
-n rn行号在自己栏位的最右显示,且不加0
-n rz行号在自己栏位的最右显示,且加0

 4. more(一页一页翻动)

在more程序运行中,按键的功能如下:

按键功能
空白键(space)向下翻一页
Enter向下翻一行
/字符串在当前显示内容中,向下搜索该关键字
:f立即显示文档名以及目前显示的行数
q立即离开more运行程序,关闭文件内容
b往回翻页(只对文件有用)
ctrl-b往回翻页(只对文件有用)

5. less(一页一页翻动)

在less程序运行中,按键的功能如下:

按键功能
空白键(space)向下翻动一页
向下箭头向下翻动一页
向上箭头向上翻动一页
/字符串向下搜寻字符串
?字符串向上搜索字符串
n重复前一个搜索
N反向的重复前一个搜索
q立即离开less运行程序,关闭文件内容

6. head(取出文件前面几行)

head 【-n number】 文件

选项与参数:

-n:后面接数字,代表显示文件几行内容)

不加  -n number,默认显示前面10行

7. tail(取出文件后面几行)

tail 【-n number】 文件

选项与参数:

-n:后面接数字,代表显示文件几行内容

不加  -n number,默认显示后面10行

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

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

相关文章

UG NX二次开发(C#)-CAM-获取刀具类型

文章目录 1、前言2、UG NX中的刀具类型3、获取刀具类型3.1 刀具类型帮助文档1、前言 在UG NX的加工模块,加工刀具是一个必要的因素,其包括了多种类型的类型,有铣刀、钻刀、车刀、磨刀、成型刀等等,而且每种刀具所包含的信息也各不相同。想获取刀具的信息,那就要知道刀具的…

php如何对接伪原创api

在了解伪原创api的各种应用形态之后,我们继续探讨智能写作背后的核心技术。需要说明的是,智能写作和自然语言生成、自然语言理解、知识图谱、多模算法等各类人工智能算法都有紧密的关联,在百度的智能写作实践中,常根据实际需求将多…

RT-Thread Smart 用户态开发体验

背景 RT-Thread Smart 是基于 RT-Thread 操作系统上的混合操作系统,它把应用从内核中独立出来,形成独立的用户态应用程序,并具备独立的地址空间。 自 V5.0.0 起,rt-smart 分支已合并至 master 分支上,下载 rt-thread …

2023年上半年数学建模竞赛题目汇总与难度分析

2023年上半年数学建模竞赛题目汇总与难度分析 ​由于近年来国赛ABC题出题方式漂浮不定,没有太大的定性,目前总体的命题方向为,由之前的单一模型问题变为数据分析评价优化或者预测类题目是B、C题的主要命题方向。为了更好地把握今年命题的主方…

快捷键使用技巧

IDEA生成序列化ID 1 CtrlAlts快捷键打开设置界面 2 选择Editor→Inspections,勾上serialVersionUID 3 每次实现序列化接口,可以鼠标点击类名,AltEnter快捷键导入序列化ID webstorm 快捷键重构 shiftf6 全局替换 通过快捷键CtrlShiftR打…

带扩散器的超快速控制网

一、说明 自从稳定扩散风靡全球以来,人们一直在寻找更好地控制生成过程结果的方法。ControlNet提供了一个最小的界面,允许用户在很大程度上自定义生成过程。使用 ControlNet,用户可以轻松地使用不同的空间上下文(如深度图、分割图…

Cpp学习——vector模拟实现

vector简介 在模拟实现vector之前,首先就得知道vector是个啥?vector是个啥呢?vector是一个stl里面的容器,并且是一个模板容器。它就像是一个顺序表模板。还记得顺序表吧?之前我实现的顺序表只能弄整形的数据&#xff0…

深入篇【Linux】学习必备:进程理解(从底层探究进程概念/进程创建/进程状态/进程优先级)

深入篇【Linux】学习必备:进程理解(从底层探究进程概念/进程创建/进程状态/进程优先级) 一.进程概念(PCB/task_struct)二.查看进程(top/ps)三.创建进程(fork)四.进程状态(僵尸进程/孤儿进程)五.进程优先级(PRI/NI) 一.进程概念(PCB/task_struct) 1.什么…

不同路径——力扣62

文章目录 题目描述解法一 动态规划题目描述 解法一 动态规划 int uniquePaths(int m, int n) {vector<vector

【Java】项目管理工具Maven的安装与使用

文章目录 1. Maven概述2. Maven的下载与安装2.1 下载2.2 安装 3. Maven仓库配置3.1 修改本地仓库配置3.2 修改远程仓库配置3.3 修改后的settings.xml 4. 使用Maven创建项目4.1 手工创建Java项目4.2 原型创建Java项目4.3 原型创建Web项目 5. Tomcat启动Web项目5.1 使用Tomcat插件…

LeetCode150道面试经典题-- 两数之和(简单)

1.题目 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意…

pytest框架快速进阶篇-pytest前置和pytest后置,skipif跳过用例

一、Pytest的前置和后置方法 1.Pytest可以集成unittest实现前置和后置 importunittestimportpytestclassTestCase(unittest.TestCase):defsetUp(self)->None:print(unittest每个用例前置)deftearDown(self)->None:print(unittest每个用例后置)classmethoddefsetUpClass…

JDK17下载与安装(完整图文教程含安装包)

1.下载JDK17安装包 官网下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads/ 同时提供一份网盘下载地址&#xff0c;大家按需自取&#xff1a;点击下载 JDK 所有版本的安装方法都一样&#xff0c;其他版本也不用重复找教程了。 网盘直接放了 JDK 6 – …

Python教程(8)——一文弄懂Python字符串操作(下)

Python字符串操作 字符串常用方法字符串更多方法介绍 字符串常用方法 字符串在编程中是一种不可或缺的数据类型&#xff0c;它在文本和字符数据时提供了丰富而强大的功能。掌握了字符串的使用方法&#xff0c;你能够更加便捷地进行文本处理、数据操作、用户交互等任务&#xf…

存储器分配算法

1.设计目的与要求 1.1设计目的 本设计的目的是使学生了解动态分区分配方式中使用的数据结构和分配算法&#xff0c;并进一步加深对动态分区存储管理方式及其实现过程的理解。 1.2设计要求 用C语言分别实现采用首次适应算法和最佳适应算法的动态分区分配过程malloc()和回收过程…

多表联合查询

1.创建student表 mysql> CREATE TABLE student ( -> id INT(10) NOT NULL UNIQUE PRIMARY KEY , -> name VARCHAR(20) NOT NULL , -> sex VARCHAR(4) , -> birth YEAR, -> department VARCHAR(20) , -> address VARCH…

【AWS 大赛】亚马逊云科技:2023 直冲云霄训练营入营考试报名与答题答案参考

目录 一、报名 &#xff08;1&#xff09;选择 “解决方案架构师-助理级” &#xff08;2&#xff09;未登录先注册账号 &#xff08;3&#xff09;登录 &#xff08;4&#xff09;报名 &#xff08;5&#xff09;报名成功 二、答题 &#xff08;1&#xff09;开始…

FreeRTOS(互斥信号量)

资料来源于硬件家园&#xff1a;资料汇总 - FreeRTOS实时操作系统课程(多任务管理) 目录 一、互斥信号量的定义与应用 1、互斥信号量的定义 2、互斥信号量的应用 3、简要了解递归互斥信号量 二、优先级翻转问题 1、运行条件 2、优先级翻转编程测试 三、互斥信号量的运…

[HDLBits] Exams/m2014 q3

Consider the function f shown in the Karnaugh map below. Implement this function. d is dont-care, which means you may choose to output whatever value is convenient. //empty

[HDLBits] Exams/2012 q1g

Consider the function f shown in the Karnaugh map below. Implement this function. (The original exam question asked for simplified SOP and POS forms of the function.) //