这里是**IF’MAXUE ** ,欢迎各位佬互三,互关 ! ! ! ! ! !
文章目录
一、知识铺垫
1.1登入账号
首先在xshell8的界面输入ssh 用户名@公网ip,跳出SSH用户验证界面,输入密码即可进入
(SSH是一种网络协议,通过加密和认证机制实现安全访问和文件传输)
1.2 创建和删除普通账号
Linux属于多用户操作系统
添加普通用户的操作步骤
- adduser 用户名
- passwd(密码)用户(输入密码时,是不显示密码的)
- passwd命令用于更改设置用户密码
删除普通账号的步骤 userdel -r 用户名@
1.3 操作系统概念
操作系统是一款进行软硬件资源管理的软件,对于Linux是一款具体的操作系统的一个品类,而centos7是一款集体的Linux操作系统,计算机是一个工具,被人使用的工具
【操作系统的作用】:
- 提供人机交互接口,早期计算机的操作需要通过硬开关进行控制,操作系统最大的功能可以避免直接操作硬件带来的麻烦
- 提供了计算机软硬件资源管理
- 对下层操作系统提供了基本的管理工作,让多种硬件处于一个稳定、高效、安全的巩固走环境
- 对上层操作系统提供了一个稳定、高效、安全的运行环境
1.4 Xshell相关快捷键
- Alt+Enter:全屏
- Ctrl+D:退出
- Ctrl+insert:复制
- Shift+insert:粘贴
- 这里不支持ctrl c和ctrl v快捷键
1.5 文件
当在电脑上进行操作,实际上是通过操作系统来控制文件和文件夹。操作系统提供图形用户界面(GUI)和命令行界面(CLI),让你方便浏览、创建、删除、移动和修改文件和文件夹。
桌面属于文件夹
登入windows进行如下操作
- 确定你的用户名
- 根据用户名,找到该用户名下的桌面文件夹
- 将桌面文件夹显示成为图形化界面
文件占用内存
文件占用内存=文件属性+文件内容
文件虽然显示大小是0kb,但是同样会占用内存。由于【文件=文件属性+文件内容】,这里显示的所有属性都是数据,在内存中都是要保存的
1.6 路径
windows下路径显示方式
D:\softword\java\Thread\src
Linux下路径显示方式
[root@hcss-ecs-5726 yhy]# pwd
/root/yhy`
路径由文件夹+末尾文件夹或者文件夹+普通文件组成
(这里的文件夹通常叫做目录,但是一个目录中可以有文件,也可以有目录)
仔细观察:
- windows路径分隔符:\
- Linux路径分隔符:/
绝对路径和相对路径
绝对路径:以根目录为中心,找到目标文件的经过的所有路径
相对路径:以当前目录中心,找到目标文件的经过的所有路径(用.和…)
1.7 .和…的用法
隐藏文件
无论是Linux还是在Windows下,都有隐藏文件的存在
在Linux操作系统下,我们用ls -a指令显示隐藏文件
关于查找Linux的隐藏文件,我们需要用到ls-la或者ll指令查看。该指令的作用是显示所有的子目录音系和文件信息。而ls -la是列出目录下的所有文件,包括以 . 开头的隐含文件。任何目录下,都会默认具有两个隐藏目录.和
.的当前用法
【.两种用法】:
- 可以表示当前路径
- 指定执行当前目录下的一个可执行文件,表示明确该文件在该目录下,可以直接执行该可执行文件
…的当前用法
【用法】:
- 表示上级路径,可以方便我们进行路径的回退。毕竟不光要进去,也要可以出来
二、常见指令介绍
2.1 pwd指令
【语法】:pwd
【功能】::显式用户当前所在的目录
2.2 cd指令
【语法】: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.4whoami指令
【语法】:whoami
【功能】::查看当前正在使用Linux系统的用户名
2.5重新认识指令
目前阶段来说指令的本质都是程序。指令、程序、可执行程序都是一回事,并且也是文件。
2.6which指令
【语法】:which
【功能】::要求系统打印出我所制定的指令名称在系统中所在路径位置
2.7alias指令
【语法】:alias
【功能】::给其他命令起一个别名。
–color== 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.10stat指令和文件ACM时间
【语法】:stat +文件
【功能】::进行查看,文件或目录的不同时间戳
- 【Access Time (atime)】:文件最后一次被访问(读取)的时间。
- 【Modify Time (mtime)】:文件内容最后一次被修改的时间。
- 【Change Time (ctime)】:文件元数据(如权限)最后一次被修改的时间。
2.11mkdir(重要)
【语法】:mkdir[选项] dirname…
【功能】::在当前目录下创建一个名为"dirname"的目录
【常用选项】:
- [-p (parent )] :可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后系统将自动建立好那些尚不存在的目录,**既一次性建立多个目录。**如果没有添加-p选项,就不能一次性建立多个目录。
2.12tree指令
【语法】:tree
【功能】:用于以树状图形式显示文件和目录的层次结构
如果使用tree指令,出现报错可能就是该指令没有安装。如果以后有指令需要安装使用,可以通过百度等搜索引擎进行查找
- 如果你的Linux系统是Ubuntu版的,输入下面命令安装即可
sudo apt-get install tree
- 如果你的Linux系统是cent os 版的,输入下面命令安装即可
yum -y install tree
2.13rmdir指令
【语法】:rmdir
【功能】::删除指令。
- 【语法】:rmdir [-p] [dirName]
- 【适用对象】:具有当前目录操作权限的所有使用者
- 【功能】:只能删除空目录
- 【常用选项】:[-p ]当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
2.14rm指令
【语法】:rm[-f-i-r-v] [dirName/dir]
【功能】:删除文件或指令,rm指令可以同时删除文件或指令
【常用选项】:
-f 即使文件属性为只读(即写保护),也是直接删除。强制意味
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
- 如果是root账号,对于超级管理员来说,这里会温馨地提示你是否要删除。
- 如果是普通账号,那么你删除是没有提示的,因为主不在乎。
2.15man指令(重要)
Linux的命令有很多参数,我们可以通过联机手册查看
【语法】:man 【选项】命令
【功能】::通过联机手册查看命令参数
【安装命令】:yum -y install 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.16mv指令
【语法】:mv [选项] 源文件或目录(src) 目标文件或目录
【功能】::用来移动文件或者将文件改名
【三种使用场景】
- 【在指定的目录下,对一个文件或者目录进行重命名】
- mv test.txt log.txt 将test.txt改名成为log.txt
- 【将指定目录下的文件或者目录,‘剪切’到指定的目录下】
-
- mv /mydir .(当前目录) [mv src path/]
-
- 【不仅仅要剪切,我还要剪切的同时,顺便进行一下重命名】
- mv mydir /111dir [mv src path/newname]
【存在同名文件】
Linux中同一个目录下,不允许存在同名文件,那么mv同名文件时,会询问是否需要覆盖。
- -f : force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
2.17* 通配符指令
*** 表示一个通配符,匹配任意文件名或路径的一种特殊符号,可以用来表示多个文件或目录。**在命令中使用通配符可以方便地操作多个文件或目录,特别是在复制、移动或删除文件时非常有用。
- [h* x] :表示匹配任意数量的h,后面跟着一个 x,h可能出现零次或多次。
- [h.* x] :表示匹配以h开头,以 x 结尾
2.18nano指令
【语法】:nano
【功能】:简单的文本编辑器
在Linux下写出代码的步骤:
- nano 源文件.c
ctrl x
退出- [y]+ [Enter回车] 确定退出
gcc code.c gcc
编译- ./a.out 在当前路径执行可执行文件中程序(打印函数
printf("Linux");
)- cat code.c #本质是显式打印文件内容
![[Pasted image 20250601162915.png]]
2.19cp指令
【语法】::cp [选项] 源文件或目录(src) 目标文件或目录(dst)
【功能】::复制文件或目录
说明
- cp指令用于复制文件或目录
- 【带路径的文件名】:拷贝到指定目录,顺便进行重命名,src、dst都可以携带绝对或者相对路径进行拷贝。
- 如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的[所有文件或目录]复制到此目录中。
- 若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会有出现错误信息
【常用选项】:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在,
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
cp -fr
可用于强制递归复制文件或目录,但目标目录必须存在。建议在使用之前确保目标目录已经创建。