【Linux】开启你的Linux之旅:初学者指令指南

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属于多用户操作系统

添加普通账号的步骤(如果创建成功就会出现@)

  1. adduser 用户名
  2. passwd(密码) 用户名(输入密码时,是不显示密码的)
  3. passwd命令用于更改设置用户密码

删除普通账号的步骤 :userdel -r 用户名@

1.3 操作系统概念(OS)

操作系统是一款进行软硬件资源管理的软件 ,对于Linux是一款具体的操作系统的一个品类,而centos7 是一款具体的Linux操作系统,计算机是一个工具,被人使用的工具。

操作系统的作用】:

  1. 提供了人机交互接口,在早期计算机使用者使用计算机的时候,面对一大堆的硬件进行操作,通过硬开关进行控制,操作系统可以避免直接操作硬件带来的麻烦,这也是操作系统最大的功能
  2. 提供了计算机软硬件资源管理
  3. 对下操作系统提供了基本的管理工作,让多种硬件处于一个稳定、高效、安全的工作环境
  4. 对上(运用软件)提供了一个稳定、高效、安全的运行环境(用户的目的)

1.4 Xshell相关快捷键

  1. Alt + 回车】:全屏

  2. Ctrl + D】:退出

  3. ctrl+insert】:复制(如果不行,打开Fn配合使用)

  4. shift+insert】:粘贴

  5. 这里不支持ctrl c和ctrl v快捷键

1.5 文件

当在电脑上进行操作时,实际上是通过操作系统来控制文件和文件夹 。操作系统提供了图形用户界面(GUI)和命令行界面(CLI),让你可以方便地浏览、创建、删除、移动和修改文件和文件夹。比如我们的桌面实际上是一个文件夹,存储了在桌面上看到的所有文件和快捷方式。

桌面属于文件夹

当你登入windows进行如下操作:

  1. 确定你是谁
  2. 根据用户名,找到改用户名目录下的"桌面文件夹"
  3. 将桌面文件夹显示成为图形化界面

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. 可以表示当前路径
  2. 指定执行当前目录下的一个可执行文件,表示明确该文件在该目录下,可以直接执行该可执行文件

1.7.3 ...当前用法

【...用法】:

  1. 表示上级路径,可以方便我们进行路径的回退。毕竟不光要进去,也要可以出来

价值体现

在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指令进行查看,文件或目录的不同时间戳

  1. Access Time (atime)】:文件最后一次被访问(读取)的时间。
  2. Modify Time (mtime)】:文件内容最后一次被修改的时间。
  3. 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)

如何快速地写出代码】:

  1. nano 源文件.c
  2. ctrl x退出
  3. [y]+ [Enter回车] 确定退出
  4. gcc code.c gcc编译
  5. ./a.out 在当前路径执行可执行文件中程序(打印函数printf("Linux");)
  6. cat code.c #本质是显式打印文件内容

以上就是本篇文章的所有内容,在此感谢大家的观看!这里是Linux笔记,希望对你在学习Linux旅途中有所帮助!

相关推荐
云云3219 分钟前
搭建云手机平台的技术要求?
服务器·线性代数·安全·智能手机·矩阵
云云32112 分钟前
云手机有哪些用途?云手机选择推荐
服务器·线性代数·安全·智能手机·矩阵
cominglately31 分钟前
centos单机部署seata
linux·运维·centos
魏 无羡33 分钟前
linux CentOS系统上卸载docker
linux·kubernetes·centos
CircleMouse37 分钟前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
Karoku0661 小时前
【k8s集群应用】kubeadm1.20高可用部署(3master)
运维·docker·云原生·容器·kubernetes
木子Linux1 小时前
【Linux打怪升级记 | 问题01】安装Linux系统忘记设置时区怎么办?3个方法教你回到东八区
linux·运维·服务器·centos·云计算
mit6.8242 小时前
Ubuntu 系统下性能剖析工具: perf
linux·运维·ubuntu
鹏大师运维2 小时前
聊聊开源的虚拟化平台--PVE
linux·开源·虚拟化·虚拟机·pve·存储·nfs
watermelonoops2 小时前
Windows安装Ubuntu,Deepin三系统启动问题(XXX has invalid signature 您需要先加载内核)
linux·运维·ubuntu·deepin