Linux | 相关知识点 | 可以通过点击 | 以下链接进行学习 | 一起加油! |
---|---|---|---|---|
在 Linux 开发中,GDB 调试器和 Git 版本控制工具是开发者必备的利器。GDB 帮助快速定位代码问题,Git 则提供高效的版本管理与协作支持。本指南将简明介绍两者的核心功能与使用技巧,助力提升开发效率。
🌈个人主页:是店小二呀
🌈C语言专栏:C语言
🌈C++专栏: C++
🌈初阶数据结构专栏: 初阶数据结构
🌈高阶数据结构专栏: 高阶数据结构
🌈Linux专栏: Linux
🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅
文章目录
- 一、知识铺垫
-
- [1.1 如何登入账号](#1.1 如何登入账号)
- [1.2 关于创建和删除普通账号](#1.2 关于创建和删除普通账号)
- [1.3 操作系统概念(OS)](#1.3 操作系统概念(OS))
- [1.4 Xshell相关快捷键](#1.4 Xshell相关快捷键)
- [1.5 文件](#1.5 文件)
-
- [1.5.1 文件占用内存(内存≠大小)](#1.5.1 文件占用内存(内存≠大小))
- [1.6 路径](#1.6 路径)
- [1.7 .与..用法](#1.7 .与..用法)
-
- [1.7.1 隐藏文件](#1.7.1 隐藏文件)
- [1.7.2 .当前用法](#1.7.2 .当前用法)
- [1.7.3 ..当前用法](#1.7.3 ..当前用法)
- 二、常见指令介绍
-
- [2.1 pwd指令](#2.1 pwd指令)
- [2.2 cd指令](#2.2 cd指令)
- [2.3 家目录](#2.3 家目录)
- [2.4 whoami指令](#2.4 whoami指令)
- [2.5 重新认识指令](#2.5 重新认识指令)
-
- [2.5.1 安装和卸载行为含义](#2.5.1 安装和卸载行为含义)
- [2.6 which指令](#2.6 which指令)
- [2.7 alias指令](#2.7 alias指令)
- [2.8 ls指令](#2.8 ls指令)
- [2.9 touch指令](#2.9 touch指令)
- [2.10 stat指令与文件ACM时间](#2.10 stat指令与文件ACM时间)
- [2.11 mkdir指令(重要)](#2.11 mkdir指令(重要))
- [2.12 tree指令](#2.12 tree指令)
- [2.13 rmdir指令(重要)](#2.13 rmdir指令(重要))
- [2.14 rm指令](#2.14 rm指令)
- [2.15 man指令(重要)](#2.15 man指令(重要))
- [2.16 cp指令(重要)](#2.16 cp指令(重要))
- [2.17 mv指令(重要)](#2.17 mv指令(重要))
- [2.18 *通配符](#2.18 *通配符)
- [2.19 nano指令](#2.19 nano指令)
一、知识铺垫
1.1 如何登入账号
首先输出ssh 用户名@公网IP
,跳出SSH用户身份验证输入密码即可。SSH(Secure Shell,安全外壳)是一种网络协议,通过加密和认证机制实现安全访问和文件传输等业务。
1.2 关于创建和删除普通账号
windows,Linux属于多用户操作系统
添加普通账号的步骤(如果创建成功就会出现@)
adduser 用户名
passwd(密码) 用户名
(输入密码时,是不显示密码的)passwd
命令用于更改设置用户密码
删除普通账号的步骤 :userdel -r 用户名@
1.3 操作系统概念(OS)
操作系统是一款进行软硬件资源管理的软件 ,对于Linux是一款具体的操作系统的一个品类,而centos7
是一款具体的Linux操作系统,计算机是一个工具,被人使用的工具。
【操作系统的作用】:
- 提供了人机交互接口,在早期计算机使用者使用计算机的时候,面对一大堆的硬件进行操作,通过硬开关进行控制,操作系统可以避免直接操作硬件带来的麻烦,这也是操作系统最大的功能
- 提供了计算机软硬件资源管理
- 对下操作系统提供了基本的管理工作,让多种硬件处于一个稳定、高效、安全的工作环境
- 对上(运用软件)提供了一个稳定、高效、安全的运行环境(用户的目的)
1.4 Xshell相关快捷键
【Alt + 回车】:全屏
【Ctrl + D】:退出
【ctrl+insert】:复制(如果不行,打开Fn配合使用)
【shift+insert】:粘贴
这里不支持ctrl c和ctrl v快捷键
1.5 文件
当在电脑上进行操作时,实际上是通过操作系统来控制文件和文件夹 。操作系统提供了图形用户界面(GUI)
和命令行界面(CLI)
,让你可以方便地浏览、创建、删除、移动和修改文件和文件夹。比如我们的桌面实际上是一个文件夹,存储了在桌面上看到的所有文件和快捷方式。
【桌面属于文件夹】
当你登入windows进行如下操作:
- 确定你是谁
- 根据用户名,找到改用户名目录下的"桌面文件夹"
- 将桌面文件夹显示成为图形化界面
1.5.1 文件占用内存(内存≠大小)
文件虽然显示大小是0KB
,但是同样会占用内存 。由于【文件=文件属性+文件内容】,这里显示的时间、类型和文件名等都属于文件属性(对应的数据是字符串之类,同样占用内存),对此文件属性是数据,并且也是需要保存。
对此未来对文件的任何操作,无外乎就是对文件的属性和内容进行操作。这里操作可以通过指令控制文件,编程访问文件的内容。
1.6 路径
文件路径是用来指定文件或文件夹在计算机文件系统中的位置的,路径分为绝对路径和相对路径。
以下这些都称为路径,不同在于它们的路径分隔符
cpp
//Linux下:
[root@iZ7xv21eg69v0bihv6nnufZ 111]# pwd
root/111
//Windows下:
D:\C---language\C++\string模拟实现
两个路径分隔符之间,一定是一个文件夹,而路径最末端,一定是一个普通文件或者文件夹 (这里的文件夹通常叫做目录,但是一个目录中可以有文件,也可以有目录)
-
【/】:Linux下路径分隔符
-
【\】:windows下路径分隔符
【问题与答案】
1.【为什么要有路径?】
路径是系统层标识一个特定的文件,路径分为绝对路径和相对路径,在Linux的整个文件目录结构是一个多叉树,属于树状结构
根据树状结构,从中可以知道每个孩子(子文件)都只有一个父目录,这也导致了路径必须具有唯一性 ,最开始的目录称为根目录
2.【为什么要找到目标文件?】
访问任何文件之前,都必须先找到这个文件,为了找到这个目标文件,所以需要使用到目录
1.7 .与...用法
1.7.1 隐藏文件
无论是在Linux下还是在Windows下,都有隐藏文件存在。
【Windows下隐藏文件】
【Linux下隐藏文件】
关于查看Linux目录中隐藏文件,我们需要使用ls -l或ll指令进行查看,该指令作用是更详细罗列目录下所有子目录和文件信息 ,而ls -la是列出目录下的所有文件,包括以 . 开头的隐含文件。任何目录下,都会默认具有两个隐藏目录.和...
1.7.2 .当前用法
【.两种用法】:
- 可以表示当前路径
- 指定执行当前目录下的一个可执行文件,表示明确该文件在该目录下,可以直接执行该可执行文件
1.7.3 ...当前用法
【...用法】:
- 表示上级路径,可以方便我们进行路径的回退。毕竟不光要进去,也要可以出来
【价值体现】
在Linux的整个文件目录结构是一个多叉树,是属于树状结构的,那么可以灵活地使用...返回上一级路径配合相对路径和绝对路径进行在Linux的整个文件目录下就行游走。
二、常见指令介绍
前言Linux的指令和与之对应的常用选项很多,那么下面是一些常见的使用,下列大约有二十个指令,一开始记不住,之后忘不掉,不用死背指令,见多就记住了。这里介绍途中会混合一些小指令,知道如何使用和作用即可,附加一些周边知识,接下来将正式开始。
2.1 pwd指令
【语法】:pwd
【功能】:显式用户当前所在的目录
2.2 cd指令
Linux系统中,磁盘上的文件和目录被组成一颗目录树,每个节点都是目录或文件。
【语法】:cd 目录名(不是文件名)
【功能】:改变工作目录,将当前工作目录改变到指定目录下
- 【返回上级目录】:cd ...
- 【以绝对路径跳转目录】:cd /home/litao/linux/
- 【以相对路径跳转目录】:cd .../day02/
- 【进入用户家目】:cd ~
- 【返回最近访问目录】:cd -
【cd ~ 使用介绍】
【作用】:
- 跳转到我们最近一次所处的路径下,这有助于我们是实现处理两个路径的快速切换
【cd - 使用介绍】
【作用】:
- 进入用户家目录
2.3 家目录
家目录(Home Directory)是操作系统为每个用户分配的一个专用目录,用于存储该用户的个人文件、配置文件和数据
【windows中的用户默认的家目录】
- C:\Users\用户名
【Linux下指定用户的家目录】
对于root账号:默认的家目录/root--->超级管理员账号
对于普通用户:默认的家目录/home/新建的用户名
关于以上两点,任何一个用户,首次登录所处的路径都是自己的家目录,关于这点可以使用whoami指令查看当前正在使用Linux系统的用户名
2.4 whoami指令
whoami指令查看当前正在使用Linux系统的用户名,在# 表达的时候,经常说我们在XXX路径下【"我们" -whoami】。
2.5 重新认识指令
目前阶段来说指令的本质都是程序。指令、程序、可执行程序都是一回事,并且也是文件。
2.5.1 安装和卸载行为含义
安装和卸载就是把可执行程序拷贝/删除到系统路径下
2.6 which指令
which指令要求系统打印出我所制定的指令名称在系统中所在路径位置
那么我们可以根据which指令,得到ll和ls -l指令之间存在某种关系。
2.7 alias指令
alias也是一个Linux指令,给其他命令起一个别名。
目前不建议大家使用该指令为其他指令取别名,由于目前指令接触不多,很容易导致混乱。
关于--color == auto(auto可省略)
,这里就是是否带上颜色。
2.8 ls指令
【语法】:ls [选项] [目录或文件]
【功能】:对于目录,该命令列出该目录下的所有子目录于文件。对于文件,将列出文件名以及其他信息
【常用选择 】:主要掌握-d -l -a选项,剩下有需要记[-a ]:列出目录下的所有文件,包括以 . 开头的隐含文件。
[-d ]:将目录象文件一样显示,而不是显示其下的文件。 如: ls --d 指定目录
[-i ]:输出文件的 i 节点的索引信息。 如 ls --ai 指定文件
[-k ]:以 k 字节的形式表示文件的大小。 ls --alk 指定文件
[-l] :列出文件的详细信息。
[-n] :用数字的 UID,GID 代替名称。 (介绍 UID, GID)
[-F ]:在每个文件名后附上一个字符以说明该文件的类型, "*"表示可执行的普通文件; "/"表示目录; "@"表示符号链接; "|"表示FIFOs; "="表示套接字(sockets)。(目录类型识别)
[-r ]:对目录反向排序。
[-t ]:以时间排序。
[-s] :在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
[-R ]:列出所有子目录下的文件。 (递归)
[-1 ] :一行只输出一个文件。
2.9 touch指令
【语法】:touch [选项]... 文件...
【功能】:touch命令参数可改变文档或目录的时间,包括存储时间和更改时间,或者新建一个不存在的文件
【常用选项】[有需要记]:-a 或--time=atime或--time=access或--time=use只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间
2.10 stat指令与文件ACM时间
可以使用stat
指令进行查看,文件或目录的不同时间戳
- 【Access Time (atime)】:文件最后一次被访问(读取)的时间。
- 【Modify Time (mtime)】:文件内容最后一次被修改的时间。
- 【Change Time (ctime)】:文件元数据(如权限)最后一次被修改的时间。
2.11 mkdir指令(重要)
【语法】:mkdir[选项] dirname...
【功能】:在当前目录下创建一个名为"dirname"的目录
【常用选项】:[-p (parent )] :可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后系统将自动建立好那些尚不存在的目录,**既一次性建立多个目录。**如果没有添加-p选项,就不能一次性建立多个目录。
2.12 tree指令
tree
命令用于以树状图形式显示文件和目录的层次结构
如果使用tree指令,出现报错可能就是该指令没有安装。如果以后有指令需要安装使用,可以通过百度等搜索引擎进行查找
【安装tree指令】
这里输入安装指令时,会弹出yes/no。想要一步到位,可以直接条件-y,那么安装指令yum -y install tree
,以下属于安装过程。
【tree指令使用】
2.13 rmdir指令(重要)
rmdir是一个与mkdir相对应的命令,mkdir是建立目录,而rmdir是删除指令。
- 【语法】:rmdir [-p] [dirName]
- 【适用对象】:具有当前目录操作权限的所有使用者
- 【功能】:只能删除空目录
- 【常用选项】:[-p ]当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
【非空目录不可删除】
感觉这个指令有点鸡助呀,所以我们更加喜欢下面这个指令,相对于rmdir指令来说的说
2.14 rm指令
【语法】:rm[-f-i-r-v] [dirName/dir]
【适用对象】:所用使用者
【功能】:删除文件或指令,rm指令可以同时删除文件或指令
【常用选项】:
- -f 即使文件属性为只读(即写保护),也是直接删除。强制意味
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
【使用举例】
- 如果是root账号,对于超级管理员来说,这里会温馨地提示你是否要删除。
- 如果是普通账号,那么你删除是没有提示的,因为主不在乎。
【常见使用】
rm指令通常使用-f和-r配合 ,-f是强制的、确定的意识,-r是递归式删除,组合起来就是rm -rf
强制递归删除,典型的删库跑路好指令。
【注意事项】
这里不要在根目录下随意地执行rm -rf指令 ,删除了就是删除了,系统会奔溃的,在windows相当于C盘删除了。一旦不确定的目录或文件,宁可备份,不可删除。
2.15 man指令(重要)
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man,有啥不懂可以问这个男人
【man手册安装】 (普通账号需要sudo)
- [yum -y install man]:如果手册不全, yum update更新现有和新的软件包(如果不行,就输入下面指令)
- [yum -y install man-pages]:这条命令会安装 man-pages 软件包,它包含了很多额外的手册页,覆盖了更多的命令和函数的文档。
【 语法】: man [选项] 命令【常用选项】 :
- -k 根据关键字搜索联机帮助
- num 只在第num章节找
- -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
- 可以通过↑↓键进行滑动阅读
解释一下,面手册分为8章
- [1] 是普通的命令,可执行程序
- [2 ]是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文
件)- [3 ]是C语言库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
- 5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
- 6 是给游戏留的,由各个游戏自己定义
- 7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
- 8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
这里主要知道1,2,3号手册,重要的是2号手册,在之后再提及。这里手册是通过C语言 + 汇编写的,关于C++,java,python相关的知识不能使用man手册,就算查找关于C语言相关知识也不推荐,man手册跟版本属于强相当使用手册的时候,同时注意man手册不全。
手册从第一章开搜索,找到对应章节就会停下 ,由于Linux存在printf命令,那么将在第一章就会停下来,如果需要打印出C语言库中printf函数,可以使用num选项制定章节查找man 3 printf
。这里printf和C语言中printf函数实现类似功能,但是底层是毫无关系的。
2.16 cp指令(重要)
【语法】:cp [选项] 源文件或目录(src) 目标文件或目录(dst)
【功能】:复制文件或目录
【说明】:
- cp指令用于复制文件或目录
- 【带路径的文件名 】:拷贝到指定目录,顺便进行重命名,src、dst都可以携带绝对或者相对路径进行拷贝。
- 如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的[所有文件或目录]复制到此目录中。
- 若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会有出现错误信息
【常用选项】:
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在,
- -i 或 --interactive 覆盖文件之前先询问用户
- -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
【复制目录】
cp -fr
可用于强制递归复制文件或目录,但目标目录必须存在。建议在使用之前确保目标目录已经创建。
【该路径不可重命名】
在Linux系统使用cp(复制命令)复制目录时,常出现错误cp:omitting directory "dir
(dir是需要复制的目录名称),是因为dir目录下存在其他目录或文件存在,不可只使用cp命令实现复制操作;
2.17 mv指令(重要)
mv指令是move的缩写,可以用来移动文件或者将文件改名(move(rename)files),是Linux系统下常用的命令,经常用来备份文件或者目录
【语法】:mv [选项] 源文件或目录(src) 目标文件或目录
【功能 】:视mv命令中第二个参数类型不同(是目标文件还是目标目录),mv命令将文件重命名并剪切或将其移至一个新的目录中
【三种使用场景】:
1.【在指定的目录下,对一个文件或者目录进行重命名】
- mv test.txt log.txt 将test.txt改名成为log.txt
2.【将指定目录下的文件或者目录,'剪切'到指定的目录下】
- mv /mydir .(当前目录) [mv src path/]
3.【不仅仅要剪切,我还要剪切的同时,顺便进行一下重命名】
- mv mydir /111dir [mv src path/newname]
【存在同名文件】
Linux中同一个目录下,不允许存在同名文件,那么mv同名文件时,会询问是否需要覆盖。
【常用选项】:
- -f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
2.18 *通配符
***表示一个通配符,匹配任意文件名或路径的一种特殊符号,可以用来表示多个文件或目录。**在命令中使用通配符可以方便地操作多个文件或目录,特别是在复制、移动或删除文件时非常有用。
- [h* x] :表示匹配任意数量的h,后面跟着一个 x,h可能出现零次或多次。
- [h.*x] :表示匹配以h开头,以 x 结尾
2.19 nano指令
nano指令是一个简单易用的文本编辑器。(yum -y nano
)
【如何快速地写出代码】:
- nano 源文件.c
ctrl x
退出- [y]+ [Enter回车] 确定退出
gcc code.c gcc
编译- ./a.out 在当前路径执行可执行文件中程序(打印函数
printf("Linux");
)- cat code.c #本质是显式打印文件内容
以上就是本篇文章的所有内容,在此感谢大家的观看!这里是Linux笔记,希望对你在学习Linux旅途中有所帮助!