【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旅途中有所帮助!

相关推荐
黎明晓月10 分钟前
‌CentOS 7.9 安装 Docker 步骤
linux·docker·centos
菜鸟xy..19 分钟前
winhex软件简单讲解,虚拟磁盘分区介绍
linux·运维·服务器
网硕互联的小客服22 分钟前
如何排查服务器内存泄漏问题
linux·运维·服务器·安全·ssh
驰驰的老爸25 分钟前
elk单机版安装
运维·jenkins
Evoxt 益沃斯31 分钟前
How to enable Qemu Guest Agent for Virtual Machines
linux·运维·服务器·qemu
钟离墨笺1 小时前
【Linux】【网络】UDP打洞-->不同子网下的客户端和服务器通信(未成功版)
linux·服务器·网络
llkk星期五1 小时前
ubuntu 22.04附加驱动安装NVIDIA显卡驱动重启后无WiFi蓝牙等问题
linux·ubuntu
CVer儿1 小时前
ubuntu挂载固态硬盘
linux·运维·ubuntu
music&movie1 小时前
Win11安装VMware和Ubuntu并使用ssh访问部署模型
linux·ubuntu·ssh
J.Pei1 小时前
Linux(ubuntu)环境下部署The Fuck项目的方法(保姆级教程)
linux·ubuntu