Linux | 创建 | 删除 | 查看 | 基本命名详解

Linux | 创建 | 删除 | 查看 | 基本命名详解

文章目录

  • [Linux | 创建 | 删除 | 查看 | 基本命名详解](#Linux | 创建 | 删除 | 查看 | 基本命名详解)
    • 前言
    • 一、安装Linux
      • [1.1 方法一:云服务器方式](#1.1 方法一:云服务器方式)
      • [1.2 方法二:虚拟机方式](#1.2 方法二:虚拟机方式)
    • 二、ls
      • [2.2 ll](#2.2 ll)
    • 三、which
      • [3.1 ls -ld](#3.1 ls -ld)
    • 四、pwd
    • 五、cd
      • [5.1 cd .\.](#5.1 cd ..)
      • [5.2 ls -al](#5.2 ls -al)
      • [5.3 重新认识命令](#5.3 重新认识命令)
      • [5.4 . 和 .\.](#5.4 . 和 ..)
      • [5.5 whoami](#5.5 whoami)
    • 六、touch
      • [6.1 stat](#6.1 stat)
    • 七、mkdir指令【重要】
      • [7.1 tree](#7.1 tree)
    • [八、rmdir指令 && rm 指令(重要)](#八、rmdir指令 && rm 指令(重要))
      • [8.1 rm](#8.1 rm)
      • [8.2 rm -f](#8.2 rm -f)
      • [8.3 rmdir](#8.3 rmdir)
      • [8.4 rm -rf](#8.4 rm -rf)
    • 九、man指令【重要】
    • 十、cp指令【重要】
      • [10.1 cp -r](#10.1 cp -r)
    • 十一、mv指令【重要】
      • [11.1 mv -f](#11.1 mv -f)
      • [11.2 cat](#11.2 cat)
        • [11.2.1 cat -n](#11.2.1 cat -n)
        • [11.2.2 cat -b](#11.2.2 cat -b)
      • [11.3 tac](#11.3 tac)

前言

  • 本门课程学习Linux系统编程,你可能要问Linux从哪里来?它是怎么发展的?在这里简要介绍Linux的发展史。要说Linux,还得从UNIX说起。

下面内容来自维基百科

Linux是一种自由和开放源码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布,再加上用户空间的应用程序之后,就成为了Linux操作系统。Linux也是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。大多数Linux系统还包括像提供GUI的X Window之类的程序。除了一部分专家之外,大多数人都是直接使用Linux 发行版,而不是自己选择每一样组件或自行设置。

  • 别的概念我们就不介绍了,百度,bing都可以搜的到,感兴趣的同学可以可以自行搜索~~
  • 接下来开始我们的正题~~

一、安装Linux

1.1 方法一:云服务器方式

  • 我们可以使用云服务器购买或者白嫖,这个白嫖学生很好白嫖,我们可以打开阿里云学生权益官网进行学生认证,接下来大家懂吧~~
  • 白嫖/购买好云服务器后,我们需要安装Centos7来进行学习~~

1.2 方法二:虚拟机方式

  • 我们这里可以打开官网下载VMware Workstation 17 Pro,那秘钥大家都懂吧,网上...

  • 接下来我们安装好了就开始安装我们的虚拟机,那么问题来了,镜像在哪?

  • 这里就要打开清华大学开源软件镜像站,来找镜像了~~

  • 我们一般下载这个就可以了

  • 这里的安装方式不多赘述,网上方法众多~~

我们下面这里使用云服务进行学习,云服务比较方便嘛~~


  • 接下来就开始我们的正题!
  • 学习第一个指令~~

二、ls

语法: ls [选项][目录或文件]
功能: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:

-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 一行只输出一个文件。


  • 看到上面的那些,就很头痛,记不住怎么办?
    • 不用记!后面用多了自然就记住了,我们先来用一用几个基本的指令~~
bash 复制代码
ls
  • 我们运行后发现这里什么都没有显示,那是因为这个目录就没有文件或者文件夹,我们先来创建几个~~
  • 注意命令之间是有空格的!!!
bash 复制代码
mkdir test
touch test.txt
  • 再进行ls一下,可以看到已经有文件显示出来了~~
  • 那有的同学会说,这里的test问什么有颜色啊,是什么意思呢?
  • 我们先不管,继续往下看~~

2.2 ll

  • 接下来我们就新学一个命令ll
  • 这里命令初学的时候比较特殊,与其不能说是一个命令,它是一个ls -l的别名,也就是说给ls -l起了个名字叫ll,那么口说无凭,怎么证明呢?

三、which

  • 执行以下下命令
bash 复制代码
which ll
  • 这里的这个which命令先不用管,一会我们再详细了解~~

  • 这里的alias就是起别名的意思,ll='ls -l` 也就是ll等于ls -l~~

  • 我们再来which一下ls,可以看到也是一样的~~
  • 回到刚刚那个话题,为什么会有颜色呢?
  • 注意看,我们这里ll=ls -l --color=auto 后面的--color=auto就是带颜色的,那么又怎么证明呢?
bash 复制代码
alias ls='ls'
  • 我们这里像图片中的一样,给它起个别名,但是没有指定颜色,我一执行,它虽然也会打印出来,但是没有颜色
  • 那我又想加回这个颜色怎么办呢?
    • 很好办,直接再起别名改回去就可以了
bash 复制代码
alias ls='ls --color=auto'
  • 再次进行ls查看,就会有颜色了~~
  • 这里的ls还可以查看指定目录的文件夹,或者文件,我们来演示一下

  • 我们这里创建了一个文件a,我们就可以使用下面这个命令来查看~~


3.1 ls -ld

bash 复制代码
ls -ld a
  • 其中-l列出文件的详细信息,-d 将目录象文件一样显示,而不是显示其下的文件。
  • 我们这里就可以直接写ls -ld就可以了~~
  • 这里的mkdir -p 我们后面会详细来说,这里先不用管~~
  • 刚刚这里的which没有细讲,还有which后下面的路径也没有将,接下来我们就一一来道~~

四、pwd

语法: pwd
功能: 显示用户当前所在的目录

这个命令很简单,直接执行就可以了

bash 复制代码
pwd
  • 那么这里的显示出来的是什么呢?
    • 其实就是当前用户所在的绝对路径,那我进入到一个目录,再来看一下
  • 可以看到发生改变了,这个命令就到这里,接下来我们学cd

五、cd

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。

  • 如上图所示,我们这个linux系统就是一个树状文件系统,刚刚上面我们也使用了这个命令,cd 文件夹,就进入到了这个文件

语法: cd 目录名
功能: 改变工作目录。将当前工作目录改变到指定的目录下。

cd ... : 返回上级目录

cd /home/litao/linux/ : 绝对路径

cd .../day02/ : 相对路径

cd ~:进入用户家目

cd -:返回最近访问目录


5.1 cd ..

我们先来看第一个指令

bash 复制代码
cd ..

我们先来了解一下,每个文件夹都是有隐藏文件的,那么怎么看呢,我们可以通过ls -al,来查看一下~~


5.2 ls -al

bash 复制代码
ls -al
  • 当我们执行这个命令后,就会发现,这里的前面带.的文件也显示出来了~~

  • 那么是不是前面带,的就是隐藏文件呢?

  • 我们来验证一下

  • 我们这里创建一个文件和一个文件夹,但是前面分别带有.

  • 我们再进行ls -l一下,可以看到是打印不出来的,但是ls -al可以打印出来的,再一次印证了这个命令是显示隐藏文件的~~


我们再来看第二个命令

bash 复制代码
cd /root/a/b/
  • 这里cd后面跟着的是一个绝对路径 ,什么是绝对路径呢?
    • 也就是从根目录上写路径
  • 还有一个概念:相对路径,就是从相对位置写,那么怎么写呢?
bash 复制代码
cd c
  • 这里直接进入了c目录,这些目录我们前面都创建过了,使用mkdir -p a/b/c/d/f,我们这里不再演示
  • 这里不写/,就是默认从当前目录下找这个文件夹~~

5.3 重新认识命令

  • 接下来我们再返回头再从新认识一下这些命令,我们前面学了which命令,可以查看起别名,但是它下面有这么一行,这个是什么呢?
  • 其实这个就是一个路径,绝对路径,我们可以进入再bin目录下有这个命令我们来看一下
  • 我们来找一下这个ls命令
  • 可以看到这里是有的~~,其他命令也是有的,那它好像是一个文件啊,它其实就是一个可执行文件,我们可以直接输入这个路径进行执行
  • 这里可以看到我们执行后也会显示出来,但是没有颜色
  • 我们前面说了,这里其实是给起了个别名
  • 我们也可以加上颜色~~
bash 复制代码
/usr/bin/ls --color=auto
  • 也可以看到有颜色了,再一次证明了是起的别名~~

  • 我们回过头来看这个相对路径
  • 刚刚我们执行了ls -al命令,刚刚执行的是在一个空文件夹里,那为什么会有两个文件一个.一个..呢?
  • 其实这个.就是代表当前路径,..代表上一个路径

5.4 . 和 ..

  • 这里的.代表当前路径,我们来看下面进行演示一下
  • 这里涉及到命令的我们在后面章节会详细道来~~
  • 这里可以看到我们通过这个./来执行这个可执行文件就是从当前路径来找到这个文件来执行~~

  • 那么我进入到其他目录下能不能执行这个可执行程序呢?

    • 当然是可以的~~
bash 复制代码
cd ../a.out
  • 这个意思就是从上一级目录下找到这个a.out文件进行执行~~

  • 那么cd ..是不是就可以回到上一级目录里了,我们来验证一下~~
  • 我们可以看到已经回退了~~

  • 我们继续回退,一直退到不能退位置

  • 可以看到我们退到/位置就不能回退了,由此证明/是系统的根目录~~
  • 我们这里还要有一个概念就是用户的概念

  • 我这里目前是使用的root用户,root 用户是什么呢?>>>是超级管理员的意思~~也就是最高权限的意思

  • 既然有用户就有普通用户,普通用户就是在/home目录下

  • 这里我们切换到普通用户来看看~~

  • 这里了解一下用户的概念,后面我们会详细讲~~

那么这个cd ~是进入用户的家目录


5.5 whoami

  • 这里再教大家一个查询当前是登录的哪个用户
bash 复制代码
whoami
  • 普通用户下执行:
  • root用户下执行:
  • 当我有一次进入到了一个很深的文件夹,我想一下回退到自己的家目录,怎么办呢,可以执行这个操作~~
  • 我们进入了四次问价夹,我们就需要执行四次../
bash 复制代码
cd ../../../../
  • 那么有没有办法直接一次性回退到家目录呢?
  • 那就是执行下面这个命令
bash 复制代码
cd ~
  • 可以看到直接就到家目录了,是不是很方便~~

接下来还有一个

bash 复制代码
cd -
  • 这个是什么呢?

  • 如果我想在两个目录来回切换就需要手动敲目录,有一个好的办法来解决这个麻烦,这个其实就是直接回退到刚刚那个目录,一键回退

  • 是不是很方便~~

有关cd的命令就到这里了~~


六、touch

语法: touch [选项]... 文件...
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
常用选项:

-a 或--time=atime或--time=access或--time=use只更改存取时间。

-c 或--no-create 不建立任何文档。

-d 使用指定的日期时间,而非现在的时间。

-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

-m 或--time=mtime或--time=modify 只更改变动时间。

-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。

-t 使用指定的日期时间,而非现在的时间。

  • touch 简单来说就是创建文件,单不能创建目录,创建目录有创建目录的命令,不能搞混了~~
bash 复制代码
touch 文件名
  • 这里没有什么可说的就是简单的创建文件,但是我在这里补充一个命令,我想查看这个文件的详细属性,怎么查看呢?

6.1 stat

bash 复制代码
stat 文件名
  • 查看文件具体属性

  • 这里面的属性我们后面章节会详细道来~~

  • 好,接下来我们就开始学习下一个命令

七、mkdir指令【重要】

语法: mkdir [选项] dirname...
功能: 在当前目录下创建一个名为 "dirname"的目录
常用选项:

-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;

bash 复制代码
mkdir 目录
  • 这里前面的d是代表目录的意思,详细内容我放到后面讲~~
  • 这里我们基本要用的就是 -p 指令,就是递归建立多个目录
  • 这里再提一嘴,命令直接要有空格
bash 复制代码
mkdir -p aaa/bbb/ccc/ddd/eee
  • 这样看不好观察创建成功了没有,我们可以使用一个命令tree

7.1 tree

bash 复制代码
tree 目录
  • 有的人可能使用这个tree使用不了,它是需要安装的,执行以下命令:
bash 复制代码
yum install -y tree
  • 然后再执行
bash 复制代码
tree ./
  • 这样看是不是很方便观察~~

  • 那我要是执行一下tree /,会执行这么一长串,"根本停不下来"

  • 这个时候我们就要按下ctrl + c就可以强制停止执行了

八、rmdir指令 && rm 指令(重要)

rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法: rmdir [-p][dirName]
适用对象: 具有当前目录操作权限的所有使用者
功能: 删除空目录
常用选项:

  • -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。

rm命令可以同时删除文件或目录
语法: rm [-f-i-r-v][dirName/dir]
适用对象: 所有使用者
功能: 删除文件或目录

常用选项:

-f 即使文件属性为只读(即写保护),亦直接删除

-i 删除前逐一询问确认

-r 删除目录及其下所有文件

  • 有了新增文件和文件夹,那么就有删除~~
  • 这里也是要区分删除文件【rm】和文件夹【rmdir】

8.1 rm

bash 复制代码
rm 文件名
  • 这里删除文件的时候会提示是否要删除?这里输入n不要删除,输入y就删除了,这里的删除就是真正的删除了,没有什么windows的回收站什么的~~

8.2 rm -f

  • 那这样删除文件的话每次都要问是否要删除,是不是很麻烦,我们可以加一个选项-f,就不会提示,直接删除
  • 但是这个命令是删除不了文件夹的
  • 那么我们就要学下一个命令了

8.3 rmdir

bash 复制代码
rmdir 文件夹
  • 这里删除单个文件夹,文件夹里面是空,什么都没有那么它是可以删除的
  • 那么这个文件夹不为空,可以直接删除吗?
  • 那么怎么办呢?总不能进入文件夹一个一个删除吧,这个时候就要用到-r选项了
  • 这个-r就是递归删除
bash 复制代码
rm -r 名字
  • 但是这里删除的时候有提示是否删除,刚刚学了-f选项,可以直接再加上-f选项,直接删除~~

8.4 rm -rf

bash 复制代码
rm -r -f 名字
  • 可以看到这里就直接删除了~~
  • 这里的rm -r -f也可以写成rm -rf它们是等价的
  • 但是这里要注意的一点就是,千万不要执行rm -rf /,这会删除根目录下所有文件,系统会崩溃,所以删除命令操作谨慎!!!!!!

九、man指令【重要】

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是man
语法: man [选项] 命令

  • -k 根据关键字搜索联机帮助
    num 只在第num章节找
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。
    解释一下,面手册分为8章

1 是普通的命令

2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)

3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义

6 是给游戏留的,由各个游戏自己定义

7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8 是系统管理用的命令,这些命令只能由root使用,如ifconfig

  • 我们可以执行下面的命令
bash 复制代码
man man
  • 进入到这个界面后,按键盘上的上下键就可以上下滚动了~~
  • 退出的话在英文模式下按键盘上的q

  • 这个命令就是想查看哪个命令,就查看哪个命令,会显示出帮助文档

  • 如果说我想查看ls的帮助文档,就执行以下命令:

bash 复制代码
man ls
  • 那我想查看C语言中的函数呢?怎么查看呢?
bash 复制代码
man printf
  • 有的同学可能执行就报错了
  • 我们执行以下命令
bash 复制代码
yum install -y man-pages
  • 再次执行man printf
  • 就可以查看这个函数的用法了
  • 那我想查看这个库函数怎么查看呢?
  • 我们执行下面命令
bash 复制代码
man 3 printf
  • 那我想查看c++的呢?
  • 这里就不推荐了,推荐直接再cplusplus网站上查看~~

其他的序号就不经常用,先不说了~~


十、cp指令【重要】

语法: cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录

**说明: ** cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息
常用选项:

  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  • -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
  • 我们可以将一个文件或者目录拷贝到另一个地方,但是相同目录下不能有相同名称的文件
bash 复制代码
cp src dst
  • 那我想要将一个目录下的有多个文件也拷贝过去怎么拷贝呢?
  • 直接拷贝可以吗?
bash 复制代码
cp aaa a
  • 可以看到是不能的~~

10.1 cp -r

  • 这个时候就需要加上-r选项【递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理】
bash 复制代码
cp -r aaa a

十一、mv指令【重要】

mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
语法: mv [选项] 源文件或目录 目标文件或目录
功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将 其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至
    目标目录中。

常用选项:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • 这个和前面那个拷贝相似
bash 复制代码
mv src dst

11.1 mv -f

  • 将刚刚拷贝的文件再拷贝回来,这里我们可以使用那个-f选项强制拷贝~~
bash 复制代码
mv -f a/test.c ./

11.2 cat

语法: cat [选项][文件]
功能: 查看目标文件的内容
常用选项:

  • -b 对非空输出行编号
  • -n 对输出的所有行编号
  • -s 不输出多行空行
  • cat这个命令很简单,我们来看
bash 复制代码
cat 文件名
11.2.1 cat -n
  • 输出带行号,空行也带行号,照样输出~~
bash 复制代码
cat -n test.c
11.2.2 cat -b
  • 针对空行不进行编号,非空行进行编号~~
  • 那我想倒着输出文件里的内容怎么办呢?

11.3 tac

bash 复制代码
tac 文件名
  • 猫倒过来了,所以就倒着输出~~

本文就到这里结束了,篇幅较长,我们下一篇续写,本篇大概也就写了一些Linux的创建、删除、查看、基本命名,如果有帮助的话记得点赞,收藏加评论~~,谢谢大家!

相关推荐
热爱嵌入式的小许3 小时前
Linux基础项目开发1:量产工具——显示系统
linux·运维·服务器·韦东山量产工具
韩楚风7 小时前
【linux 多进程并发】linux进程状态与生命周期各阶段转换,进程状态查看分析,助力高性能优化
linux·服务器·性能优化·架构·gnu
陈苏同学7 小时前
4. 将pycharm本地项目同步到(Linux)服务器上——深度学习·科研实践·从0到1
linux·服务器·ide·人工智能·python·深度学习·pycharm
Ambition_LAO7 小时前
解决:进入 WSL(Windows Subsystem for Linux)以及将 PyCharm 2024 连接到 WSL
linux·pycharm
Pythonliu77 小时前
茴香豆 + Qwen-7B-Chat-Int8
linux·运维·服务器
你疯了抱抱我7 小时前
【RockyLinux 9.4】安装 NVIDIA 驱动,改变分辨率,避坑版本。(CentOS 系列也能用)
linux·运维·centos
追风赶月、7 小时前
【Linux】进程地址空间(初步了解)
linux
栎栎学编程7 小时前
Linux中环境变量
linux
我是哈哈hh8 小时前
专题十_穷举vs暴搜vs深搜vs回溯vs剪枝_二叉树的深度优先搜索_算法专题详细总结
服务器·数据结构·c++·算法·机器学习·深度优先·剪枝
郭二哈8 小时前
C++——模板进阶、继承
java·服务器·c++