• 2.基本指令


    ls指令

    语法

    ls [选项][目标或文件]

    ls -i

    ls -il

    ls -l

    ls -ln

    ls -F

    ls -Fl

    功能

    对于目录,该命令列出该目录下的所有子目录与文件。

    对于文件,将列出文件名以及其他信息

    常用选项

    选项功能
    -a列出目录下的所有文件,包括以 . 开头的隐含文件,显示Linux系统的隐藏文件
    -d将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
    -i输出文件的i节点的索引信息。 如ls –ai指定文件
    -kk字节的形式表示文件的大小。ls –alk指定文件
    -l列出文件的详细信息ls -l ls -a -l == ls -al
    -n用数字的UID、GID 代替名称
    -F在每个文件名后附上一个字符以说明该文件的类型
    "*"表示可执行的普通文件
    "/"表示目录
    "@"表示符号链接
    `"
    -r对目录反向排序
    -t以时间排序
    -sl文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
    -R列出所有子目录下的文件。(递归)
    -1一行只输出一个文件

    pwd命令

    语法

    pwd

    功能

    显示用户当前所在的目录

    cd指令

    语法

    cd 目录名 : 能够跟上任意绝对或相对路径

    Linux中的目录结构的本质是一颗多叉树:(路径具有唯一性)

    1. 每一个子节点,既可以是一个目录,也可以是一个普通文件
    2. 这颗多叉树的叶子结点,一定是一个普通文件或者空目录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-38atKRfp-1659870293973)(D:/picture/image-20220528134704778.png)]

    绝对目录:从根目录开始(容易失效) (配置环境时,推荐绝对路径)

    相对目录:从当前目录开始(日常使用,推荐相对路径)

    功能

    改变工作目录。将当前工作目录改变到指定的目录下

    路径分隔符斜杠(/)(Linux)

    路径分隔符反斜杠(\)(windows)

    .. 上级文件

    . 当前路径

    选项

    表达式说明
    cd ..回到上级目录
    cd ~当前用户的家目录
    cd /回到根目录
    cd -跳转至上一次所处的路径

    touch指令

    语法

    touch [选项]... 文件...

    最典型的用法 创建典型文件touch mytest.cpp touch file.txt

    简单的文本编辑器:nano

    • nano mytest.c
    • 写代码
    • Ctrl + x – > Y – > Enter
    • gcc mytest.c
    • ./a.out

    功能

    touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件

    选项

    选项说明
    -a
    --time=atime
    --time=access
    --time=use
    只更改存取时间
    -c
    --no-create
    不建立任何文档
    -d使用指定的日期时间,而非现在的时间
    -f此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
    -m
    --time=mtime
    --time=modify
    只更改变动时间
    -r把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同
    -t使用指定的日期时间,而非现在的时间

    mkdir指令

    语法

    mkdir [选项] dirname...

    mkdir dir 创建一个目录

    mkdir -p dir1/dir2/dir3/dir4/dir5 创建一串目录

    功能

    在当前目录下创建一个名为 dirname的目录

    选项

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

    rmdir指令

    语法

    rmdir [-p][dirName]

    rmdir dir

    功能

    只能删除空目录

    选项

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

    rm指令

    语法

    rm [-f-i-r-v][dirName/dir]

    rm mytest.c

    rm -r dir1 递归式删除 不为空也能删除

    rm -rf file.txt -f 强制删除,-r 递归删除

    功能

    删除文件或目录

    选项

    选项描述
    -f即使文件属性为只读(即写保护),亦直接删除
    -i删除前逐一询问确认
    -r删除目录及其下所有文件

    man指令

    语法

    man [选项] 命令

    yum install -y man-pages

    man printf

    man 3 printf

    man 2 fork

    man 1 printf

    man echo

    man man 查询man

    功能

    Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助

    man 手册可以查看不同的手册

    man 本身不会 可以 man man

    选项

    选项描述
    -k根据关键字搜索联机帮助
    num只在第num章节查找
    -a将所有章节的都显示出来

    cp指令

    语法

    cp [选项] 源文件或目录 目标文件或目录 copy

    cp file.txt fial-bak.txt

    cp file.txt ../file.txt-1

    cp lesson lesson-bak

    cp -rf lesson lesson-bak

    功能

    复制文件或目录

    cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。

    若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

    在拷贝的时候,要拷贝的文件,拷贝在当前路径下两个文件名称不能一样;如果不在同一路径,可以一样

    默认情况下 不允许拷贝目录的 若需要 需要携带选项 -r -f

    选项

    选项描述
    -f
    --force
    强行复制文件或目录, 不论目的文件或目录是否已经存在
    -i
    --interactive
    覆盖文件之前先询问用户
    -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
    -R
    --recursive
    递归处理,将指定目录下的文件及子目录一并处理

    mv指令

    语法

    mv [选项] 源文件或目录 目标文件或目录

    mv file.txt lesson

    mv lesson_1 lesson_2

    mv file-bak.txt file.txt

    mv dir mycode

    mv -i file.txt-bak file.txt1

    mv -f file.txt-bak file.txt

    功能

    • mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录
    • mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录
    • 第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它
      将所给的源文件或目录重命名为给定的目标文件名
    • 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个mv命令将各参数指定的源文件均移至目标目录
    • 剪切:可以剪切普通文件、可以整体剪切目录
    • 可以对普通文件、目录文件重命名

    Linux中不要轻易删除文件,因为Linux没有回收站

    linux 下手动回收站的配置
    将rm改造成mv
    
    // 1.
    vim ~/.bashrc         #修改这个文件
    // 2.
    mkdir -p ~/.trash
    alias rm=trash
    alias ur=undelfile
    undelfile() {
    mv -i ~/.trash/\$@ ./
    }
    trash() {
    mv $@ ~/.trash/
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    选项

    选项描述
    -fforce强制的意思,如果目标文件已经存在,不会询问而直接覆盖
    -i若目标文件 (destination) 已经存在时,就会询问是否覆盖!

    cat指令

    语法

    cat [选项] [文件]

    cat -n file.txt

    功能

    查看目标文件的内容 从第一行开始显示文件内容 : 比较适合查看短文本 或则代码

    tac 倒着打印文件内容 从后往前打印 不能带 -n

    选项

    选项描述
    -b对非空输出行编号
    -n对输出的所有行编号
    -s不输出多行空行

    重定向

    >: 输出重定向

    echo "hello world" > hello.txt

    本来应该显示到显示器的内容,把它写入到文件中

    会清空原始文件的内容重新写入。

    echo "hello world" >> hello.txt

    >>: 追加重定向

    添加内容到文件时,不会清空

    cat :不带文件名的情况下,会从键盘(标准输入)。

    <:输入重定向 ,把本来应该从键盘读取数据的方式,改成从指定的文件中读取

    退出任务步骤:

    1. Ctrl + c
    2. 若果按错:fg 1 – > Ctrl + c

    linux 下一切皆文件:

    • Linux认为所有的都可以当作文件 --> 可以使用同一套处理事情的方式,来解决所有的问题
    • (外设,除了cpu内存)磁盘、显示器、网卡、显卡、键盘、鼠标等所有的设备都看作文件,以同样的方式看待这些设备

    more指令

    语法

    more [选项] [文件]

    命令行操作:

    cnt=1; while [ $cnt -le 100000 ]; do echo "hello world $cnt"; let cnt++; done

    写到文件中:

    cnt=1; while [ $cnt -le 100000 ]; do echo "hello world $cnt"; let cnt++; done > file.txt

    统计行数:

    wc -l file.txt

    查看文件:

    more file.txt 按会车向下 只支持向后翻

    /可以搜索

    功能

    more命令,功能类似cat

    选项

    选项说明
    -n对输出的所有行编号
    q退出more

    less指令

    语法

    less [参数] 文件

    less file.txt less 支持前后翻动

    功能

    • lessmore类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件
    • less工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大
    • less的用法比起more更加的有弹性。在more的时候,我们并没有办法向前面翻, 只能往后面看
    • 但若使用了less时,就可以使用[pageup][pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容
    • 除此之外,在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜
    • 可以帮助我们查看文本,用来日志查看

    选项

    选项描述
    -i忽略搜索时的大小写
    -N显示每行的行号
    /字符串向下搜索字符串的功能
    ?字符串向上搜索字符串的功能
    n重复前一个搜索(与 / 或 ? 有关)
    N反向重复前一个搜索(与 / 或 ? 有关)
    qquit

    head指令

    语法

    head [参数]... [文件]...

    head -20 file.txt: 查看文本的前20行,默认为10

    打印中行部分行的方法:

    1. 先将最大的输入到文本中,然后倒着打印尾(临时文件法)

      head -30020 file.txt > temp.txt

      tail -21 temp.txt

    2. 管道

      head -30020 file.txt | tail -21

    管道:

    • 计算机资源:数据(计算机互联网的石油)

    • |(管道) :传输数据资源

    • head -30020 file.txt | tail -21 :先将前30020行写到管道中,再将最后的打印出来

    • head -30020 file.txt | tail -21 | head - 3

    • 级联多个命令,完成流水线式的数据处理工作

    功能

    • head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10
    • headtail就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head用来显示档案的开头至标准输出中,而tail想当然尔就是看档案的结尾

    选项

    选项描述
    -n<行数>显示的行数

    tail指令

    语法

    tail[必要参数][选择参数][文件]

    tail -20 file.txt 查看文本的后20行,默认为10

    功能

    • 用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件
    • tail命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容

    指令

    选项说明
    -f循环读取
    -n<行数>显示行数

    时间相关的指令

    格式& 用法

    date 指定格式显示时间:date +%Y-%m-%d

    date 用法:date [OPTION]... [+FORMAT]

    date

    date +%Y-%m

    date +%Y-%m-%d

    date +%Y-%m-%d_%H

    date +%Y-%m-%d_%H:%M

    date +%Y-%m-%d_%H:%M:%S

    date +%s: 得到时间戳 作为日志的一部分

    date -d@12 将时间戳转换为时间

    date +%Y-%m-%d_%H:%M:%S -d@132313123

    显示

    常用的标记

    符号说明
    %H小时
    %M分钟
    %S
    %X相当于%H:%M:%S
    %d
    %m月份
    %Y完整年份
    %F相当于%Y-%m-%d

    假定时间方面

    符号说明
    date -s设置当前时间,只有root权限才能设置,其他只能查看
    date -s 20080523设置成20080523,这样会把具体时间设置成空00:00:00
    date -s 01:01:01设置具体时间,不会对日期做更改
    date -s "01:01:01 2008-05-23"这样可以设置全部时间
    date -s "01:01:01 20080523" 这样可以设置全部时间
    date -s "2008-05-23 01:01:01"这样可以设置全部时间
    date -s "20080523 01:01:01"这样可以设置全部时间

    时间戳

    时间->时间戳:date +%s

    时间戳->时间:date -d@1508749502

    Unix时间戳(英文为Unix epoch, Unix time, POSIX timeUnix timestamp)是从197011日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

    cal指令

    语法

    cal [参数][月份][年份]

    cal

    cal 2022

    cal -3

    功能

    用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份

    选项

    选择描述
    -3显示系统前一个月,当前月,下一个月的日历
    -j显示在当前年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数
    -y显示当前年份的日历

    find指令

    语法

    find pathname -options

    find /usr/include/ -name stdio.h

    功能

    • 用于在文件树种查找文件,并作出相应的处理(可能访问磁盘)
    • Linuxfind命令在目录结构中搜索文件,并执行指定的操作
    • Linuxfind命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,所以它的选项也很
      多,其中大部分选项都值得我们花时间来了解一下
    • 即使系统中含有网络文件系统(NFS),find命令在该文件系统中同样有效,只你具有相应的权限
    • 在运行一个非常消耗资源的find命令时,很多人都倾向于把它放在后台执行,因为遍历一个大的文件系
      统可能会花费很长的时间(这里是指30G字节以上的文件系统)

    选项

    选项说明
    -name按照文件名查找文件

    grep指令

    语法

    grep [选项] 搜寻字符串 文件

    grep '1234' file.txt 将所有匹配到1234的内容显示出来

    grep 'c++' file.txt

    grep -i 'c++' file.txt

    grep -v 'c++' file.txt

    grep -vi 'c++' file.txt

    grep -nvi 'c++' file.txt

    功能

    • 行文本过滤工具
    • 在文件中搜索字符串,将找到的行打印出来

    选项

    选项说明
    -i忽略大小写的不同,所以大小写视为相同
    -n顺便输出行号
    -v反向选择,亦即显示出没有搜寻字符串内容的那一行

    zip/unzip指令

    语法

    zip 压缩文件.zip 目录或文件

    zip test.zip tar_package tar_package 文件名

    unzip test.zip

    zip -r test.zip tar_package

    rm -rf * 将当前目录中所有的都删除 <---- > rm -rf ./*

    默认情况下,几乎所有的解压工具,解压出来的原始数据,都会被放在当前路劲下。

    unzip test.zip -d 指明的路劲

    为什么要打包压缩?

    1. 节约空间
    2. 我们下载下来的软件是压缩包,曾经提供软件的人,上传的是压缩包!
    3. 所有的软件写好之后,不是只有一个文件的!各种部署

    所有的互联网公司后台都是Linux 系统,开发人员开发的所有软件,将来都要部署在Linux系统上的,所以所有的软件都要打包压缩,上传到Linux上,进行安装部署。

    功能

    将目录或文件压缩成zip格式

    选择

    选择描述
    -r递归处理,将指定目录下的所有文件和子目录一并处理

    tar指令

    语法

    tar [-cxtzjvf] 文件与目录 .... 参数:

    打包 - 压缩

    tar czf test.tgz tar_package c 创建 z 压缩 f 文档名 tgz(tar.gz) tar 打包 gz 压缩

    tar xzf test.tgz x 解包 z 解压 f 文件名

    tar -zcvf test.tgz tar_package 把tar_package 压缩为 test.tgz,并且显示出压缩过程

    tar vxzf test.tgz tar_package 显示解压的过程

    tar xzf test.tgz -C 指定路径 解压到指定的路径

    tar xzvf test.tgz -C 指定路径 解压到指定路径, 显示过程

    1. Linux 下是否几乎支持所有种类的压缩包

      是的

    2. 为什么Linux下会支持

      Linux面对的平台非常多

    3. 遇到不懂的压缩包,怎么办

      test.XXX 网上搜索 centos .XXX 后缀如何解法

    功能

    打包/解包,不打开它,直接看内容

    选择

    选择描述
    -c建立一个压缩文件的参数指令(create 的意思)
    -x解开一个压缩文件的参数指令!
    -t查看tarfile里面的文件!
    -z是否同时具有gzip的属性?亦即是否需要用gzip压缩?
    -j是否同时具有bzip2的属性?亦即是否需要用bzip2压缩?
    -v压缩的过程中显示文件这个常用,但不建议用在背景执行过程!
    -f使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!
    -C解压到指定目录

    bc指令

    bc命令可以很方便的进行浮点运算

    Linux 下的计算器

    echo "1 + 2 + 3 + 4" | bc

    uname -r 指令

    语法

    uname [选项]

    uname -r

    3.10.0-1160.11.1.el7.x86_64 x86 因特尔 x86_64 64位的 x86_32 简写 x86 x86_64简写 x_64

    功能

    uname用来获取电脑和操作系统的相关信息。

    uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息

    选择

    选择说明
    -a
    -all
    详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

    热键

    说明
    [Tab]具有『命令补全』和『档案补齐』的功能 一下不行按两个 命令的自动补齐
    [Ctrl]-c让当前的程序『停掉』 终止失控程序
    [Ctrl]-d通常代表着:『键盘输入结束(End Of File, EOFEnd OfInput)』的意思;另外,他也可以用来取代exit

    Ctrl + r 搜索历史命令

    history 查看历史记录

    关机

    语法

    shutdown [选项] ** 常见选项:**

    云服务器是 不需要关机的 永远不关机

    选择

    选择说明
    -h将系统的服务停掉后,立即关机
    -r在将系统的服务停掉之后就重新启动
    -t sec-t后面加秒数,亦即『过几秒后关机』的意思

    扩展命令

    • 安装和登录命令:loginshutdownhaltrebootinstallmountumountchshexitlast
    • 文件处理命令:filemkdirgrepddfindmvlsdiffcatln
    • 系统管理相关命令:dftopfreequotaatlpaddusergroupaddkillcrontab
    • 网络操作命令:ifconfigippingnetstattelnetftprouterloginrcpfingermail nslookup
    • 系统安全相关命令:passwdsuumaskchgrpchmodchownchattrsudo pswho
    • 其他命令:tarunzipgunzipunarjmtoolsmanunendcodeuudecode

    shell命令以及运行原理

    Linux严格意义上说的是一个操作系统,我们称之为核心(kernel) ,但我们一般用户,不能直接使用kernel
    而是通过kernel的"外壳"程序(shell),来与kernel沟通。

    如何理解?为什么不能直接使用kernel

    • 从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
      • 将使用者的命令翻译给核心(kernel)处理
      • 同时,将核心的处理结果翻译给使用者
    • shell 对于Linux,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户

    shell 外壳程序

    我们centos 7 常用的命令行解释器(shell) 叫bash
    catln`

    • 系统管理相关命令:dftopfreequotaatlpaddusergroupaddkillcrontab
    • 网络操作命令:ifconfigippingnetstattelnetftprouterloginrcpfingermail nslookup
    • 系统安全相关命令:passwdsuumaskchgrpchmodchownchattrsudo pswho
    • 其他命令:tarunzipgunzipunarjmtoolsmanunendcodeuudecode

    shell命令以及运行原理

    Linux严格意义上说的是一个操作系统,我们称之为核心(kernel) ,但我们一般用户,不能直接使用kernel
    而是通过kernel的"外壳"程序(shell),来与kernel沟通。

    如何理解?为什么不能直接使用kernel

    • 从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
      • 将使用者的命令翻译给核心(kernel)处理
      • 同时,将核心的处理结果翻译给使用者
    • shell 对于Linux,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户

    shell 外壳程序

    我们centos 7 常用的命令行解释器(shell) 叫bash

  • 相关阅读:
    前端静态页面部署到服务器-Nginx
    OpenCV(二十二):均值滤波、方框滤波和高斯滤波
    通过Go实现AES加密和解密工具
    【毕业设计】基于STM32的空气质量检测仪 - 环境检测盒子 - 单片机 物联网
    【vue会员管理系统】篇六之退出系统功能
    java计算机毕业设计瀚绅睿茨二人二轮车租赁管理源码+mysql数据库+系统+lw文档+部署
    Java的自动装箱与拆箱详细分析
    Echarts柱状图渐变色问题变通
    5、垃圾收集器
    【c++ 封装、继承、多态】
  • 原文地址:https://blog.csdn.net/m0_62513305/article/details/126215550