• [Linux初阶]常见的指令


    我们学Linux指令,其实就是和学windows一样,学习Linux的操作

    一、Linux下基本指令

    ls 指令

    语法 ls [ 选项 ] [ 目录或文件 ]
    功能 :对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
    常用选项:(并不全,只是常用的)
    1. -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
    2. -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
    3. -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
    4. -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
    5. -l 列出文件的详细信息。
    6. -t 以时间排序。
    7. -R 列出所有子目录下的文件。(递归)

    上面的我可能不会全部讲完,大家可以自己尝试一下。

    但是在说这个之前我们先来讲一个小指令,pwd。

    pwd

    pwd会展示当前路径。

    我们来试一试:

    我们输入pwd加【回车】我们可以我们现在我们处于root路径。

    这时我们输入ls【空格】-a【回车】,来看看root路径下有什么文件(ls和选项这将一般为一个空格但也可以是多个

    我们发现有蓝色的和白色的,还有“.”".."这两个也是蓝色的,这个是什么,我们向不说,但是根据我们的学习windows类比,我们可以猜测这个可能是目录或者文件夹。

    再来测试ls -l

    -l 列出文件的详细信息。

    那么我们思考一下能不能ls -l -a来显示所有问价你的详细信息呢?

    答案是可以的

    而且我们发现ls -a -l的结果也一样

    也可以这样写

    所以我们可以得出这个结论:

    ls指令的选项可以依次传递多个,可以拼接在一起,顺序可以随意。

    隐藏文件

    关于-a:

            再Linux中,以.开头的文件,我们称之为隐藏文件。

    现在我们来举个例子:

    首先我们要知道一个指令:mkdir

    mkdir指令(重要)

    语法:mkdir [选项] dirname...
    功能:在当前目录下创建一个名为 “dirname”的目录
    常用选项
    -p, --parents  可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
    例:
    mkdir –p test/test1 : 递归建立多个目录
    现在我们来验证隐藏文件:
    我们输入以下指令:
    然后我们输入
    然后输出的结果是:
    我们发现没有.seeme目录,这时我们输入
    我们在这里我们可以看见
    .seeme 目录
    当然,我们输入ls -a也可以看到
    这里证明了
            在Linux中,以.开头的文件,叫做隐藏文件。
    这样我们也能够知道问什么我们开始输入 ls -l 什么都没有,因为开始里面都只有隐藏文件,因此"."和".."我们一开始也看不到。
    当然对于隐藏文件,我们可以来类比一下Windows
    这是我们的文件夹
    我们一般是看不到隐藏的文件的。
    在Windows中,如果我们要看到隐藏的文件,我可以这样子:
    选上隐藏的项目,这样我们就能看到当前路径下的隐藏文件了。
    这里的.git就是Windows环境下的隐藏文件。
     

    touch指令

    上面我们讲了这些,那么我们该怎么新疆一个普通文件呢?这里我们得提到了touch指令

    语法 :touch [ 选项 ]...  文件 ...
    功能 touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
    常用选项
    -a   或--time=atime或--time=access或--time=use只更改存取时间。
    -d  使用指定的日期时间,而非现在的时间。
    -f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。

    -m   或--time=mtime或--time=modify  只更改变动时间。
    -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
    -t  使用指定的日期时间,而非现在的时间。
    例:
    可见我们创建了一个新的普通文件。
    我们来类比Windows下新建文件,
    这里我们就新建一个文本文件。
    那么现在问题来了,这里显示大小是0KB,那么我们新建的这个文件是否在磁盘上占用空间呢?
    当然是占用的。
    因为我们新建一个文件的时候我们不只要新建文件的名称,还要有文件的修改时间,文件的类型。
    文件名+文件修改时间+文件类型=文件属性
    同时我们还要知道:
    文件=文件内容+文件属性
    在Linux下我们也有描述文件属性的地方
    上图里我们要区分蓝色和白色的文件的差别,我们说过蓝色的是目录,白色的是普通文件夹。
    而开头的drwxr-xr-x的我们称之为目录类型。
    我们用touch创建过普通文件,那么我们能拿来创建隐藏文件吗?
    答案是可以的

    pwd命令

    语法 : pwd
    功能 :显示用户当前所在的目录
    在Windows中我们的当前的目录是这个:
    在Windows中’\‘是路径分隔符
    在Linux中’/‘是路径分隔符
    用文件夹(目录)和路径分隔符====一条路径----->找到文件
    那么问题来了,我们可以把路径和ls指令结合吗?
    答案是肯定的
    在Linux中我们一般把第一个’/‘叫做根目录

    cd命令

    Linux 系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
    语法 :cd 目录名
    功能 :改变工作目录。将当前工作目录改变到指定的目录下。
    cd .. : 返回上级目录
    cd /home/litao/linux/ : 绝对路径
    cd ../day02/ : 相对路径
    cd ~ :进入用户家目
    cd - :返回最近访问目录
    例:
    既然讲到这里,我来讲讲前面的
    所以我们cd ..会返回上一级:
    此时我们就处于根目录
    如果我们这时候像看dir1目录呢?
    有人可能会这么写:
    我们会发现我们打印的是dir1目录下的内容,如果我们只是想打印dir1这个目录呢?
    我们可以使用 -d
    而且我们可以这样打印更详细的信息:
    因此我们也可以查看根目录:
    这时候问题来了根目录下能放普通文件吗?可以放目录吗?
    当然是可以的,这里我就不写了。

    Linux的目录结构

    我们知道根目录里面的目录也可放普通文件和目录,所以我们可以推断出:
    Linux的目录结构---> 整体是一颗多叉树的形状。
    那么我们该如何证明呢?
    这里我们补充一条命令
    tree [空格] [目录]
    但是有些人运行了,结果却是这样的:
    主要因为大家的Linux里没有安装
    我们可以输入:
    yum install -y tree
    然后运行:
    这样你的系统里就安装好了!
    我们可以尝试一下:
    我这里文件比较少不大明显,大家甚至可以试试
    tree /
    由此我们就可以得知是多叉树的形状
    通过观察我们可以得到如下结论:
    1. 这个多叉树的叶子节点,一定是空目录或者普通文件
    2. 任何一个父节点,可能存在多个子节点
    3. 任何一个子节点,一定只有一个父节点

    绝对路径与相对路径

    所以我们前面可以通过/root/dir1找到这个目录,因为路径具有唯一性。

    而上面这种从根目录到指定文件的路径我们称为:绝对路径。

    我们可以通过绝对路径创建文件

    我们也可以通过绝对路径找到文件

    我们知道root目录下有以下文件:
    如果我们现在在dir1路径内:
    我们可以通过访问上级路径去寻找me文件
    而这个路径,我们称之为 相对路径。
    那么这个路径是相对与什么的呢?
    它相对的是我们当前路径,按照上面写的,整体应该是:
    因为我们当前处于/root/dir1的文件夹下
    绝对路径与相对路径的比较:
    1. 一般命令行操作时,比较喜欢用相对路径
    2. 绝对路径,在任何路径下,都能找到指定的文件 —— 配置文件中使用

    我们可以把路径和上面的指令结合

    回到cd命令,我们观察这些目录下,我们能得出什么?

    通过观察我们可以得到如下结论:

    Linux下,任何一个目录,都存在..和.,新建的空目录也一样。

    我们接着来

    cd -跳转到最近的上一次路径

    cd ~ 跳转到的都是root目录,这个是root用户的家目录

    类比的话

    这个就是Windows下的用户的家目录。

    Linux用户登录,默认所处的路径,就是自己的家目录

    上面我们说了root用户的根目录就是/root

    如果我们是普通用户呢?(这里我就不做演示了)

    那么普通用户的家目录也可以用 cd ~

    来看,一般就是/home/xxx(xxx为用户名)

    这个叫做普通用户的家目录

    下面是一些知识点:

    1. Linux用户登录,默认所处的路径,就是自己的家目录

    通过上面的路径知识和指令我们可以通过mkdir -p创建一整段路径:
    例:

    mkdir -p   可以创建一串路径,而且支持对已有路径创建新的路径

    rmdir指令 && rm 指令(重要):

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

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

    rm 命令可以同时删除文件或目录
    语法 rm [-f-i-r-v] [dirName/dir]
    适用对象 :所有使用者
    功能 :删除文件或目录
    常用选项
    1. -f 即使文件属性为只读(即写保护),亦直接删除
    2. -i 删除前逐一询问确认
    3. -r 删除目录及其下所有文件

    我们可以通过rmdir删除空目录

    例子:

    此处由于我是root用户所以会有再次确定。我们可以通过rm删除文件或目录

    我们还可以通过rm -r 来递归式删除非空目录

    例:

    那么这个递归式有点麻烦了,我们可以改吗?
    我们可以通过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

    例:

    可以通过方向键翻页,按“Q”退出

    man的手册,可以通过man man查看

    我们也可以用man 查C语言之类的但是我们要安装一些东西

    我们输入:

    yum install -y man-pages

    安装好后,我们就可以用这个查C语言函数

    cp指令(重要):

    语法 cp [ 选项 ] 源文件或目录 目标文件或目录
    功能 : 复制文件或目录
    说明 : cp 指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则
    它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的
    目录,则会出现错误信息
    常用选项
    -f --force  强行复制文件或目录, 不论目的文件或目录是否已经存在
    -i --interactive 覆盖文件之前先询问用户
    -r 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,
    则一律视为普通文件处理
    -R --recursive 递归处理,将指定目录下的文件及子目录一并处理

    在Linux我们可以用nano函数类似写记事本(注意这个也要安装)

    yum install -y nano

    例:

    然后ctrl+x回车保存

    我们也可以运行

    gcc test.c -o xxxx

    把代码编译成可执行程序,然后运行

    这里我们再来讲cp指令

    我们就把mytest拷贝如dir目录里了

    cp指令整体类似rm我们可以通过cp -r把目录递归式拷贝入另一个目录。

    但是cp -rf在root用户下也仍需要确认,大家可以自己试一试。

    二、Linux的一些热键(方便大家尝试今天所学)

    1.Tab键(快速按两次)

    1.会自动展示当前字符开头的指令,自动补齐

    2.展示当前目录下的路径,自动补齐

    2.ctrl+c

    失控的状态,直接ctrl+c终止

  • 相关阅读:
    【Linux】CentOS-6.8超详细安装教程
    【华为校招】【校招】【Java】污染水域(DFS)
    猿创征文|——C++|vecotor
    「设计模式」六大原则之单一职责小结
    算法金 | 再见!!!KNN
    【JavaEE重点知识归纳】第7节:类和对象
    BI财务分析 – 反映盈利水平利润占比的指标如何分析(上)
    企业级git工作流程
    springboot及swagger整合报错:documentationPluginsBootstrapper
    Flink系列之Flink之Time和WaterMark深入剖析
  • 原文地址:https://blog.csdn.net/2301_80017277/article/details/138154480