zoukankan      html  css  js  c++  java
  • 『Linux基础

    这篇笔记包含以下知识点:

    1. 几个概念的理解:Linux命令,控制台,终端, 终端提示符
    2. 对文件目录的操作的相关命令: 切换目录,列出目录下的文件等
    3. 对文件的操作的相关命令: 创建,删除,复制,修改,移动, 查找
    4. 对磁盘管理,建立链接的相关命令
    5. 文本搜索,归档, 压缩,解压的相关命令
    6. 其他一些常用命令, 对操作系统的一些常用命令
    linux命令

    linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。

    控制台(console)

    控制台(console)是我们通常见到的使用字符操作界面的人机接口,例如dos。
    我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。

    终端(Terminal)

    终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等。

    • 有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。

    终端提示符

    • windows: C:Userspc-laowang>
    • linux: python@ubuntu:/opt$
      • python: 用户名
      • ubuntu: 主机名( hostname)
      • /opt: 路径
      • $ : 用户类型
        • $ :代表普通用户
        • #: 超级用户

    Linux命令

    • 在Linux中,我们可以在终端中通过命令去执行操作。
    • 近几年来,尽管 Linux 发展得非常迅速,图形界面越来越友好,但是在真正的开发过程中,Linux 命令行的应用还是占有非常重要的席位,而且许多Linux功能在命令行界面要比图形化界面下运行的快。
    • 可以说不会命令,就不算会 Linux。
    • 在职场中,大量的 服务器维护工作 都是在 远程 通过 SSH 客户端 来完成的,并没有图形界面,所有的维护工作都需要通过命令来完成。如 磁盘操作、文件存取、目录操作、进程管理、文件权限 设定等
    • Linux 发行版本的命令大概有 200 多个,这里只介绍比较重要和使用频率最多的命令

    命令的基本格式

    • 终端命令格式: command [-options] [parameter]
      • command:命令名,相应功能的英文单词或单词的缩写
      • [-options]:选项,可用来对命令进行控制,也可以省略
      • [] 代表可选
      • parameter:传给命令的参数,可以是 零个、一个 或者 多个
    • 例:详细显示 /opt目录下边的文件列表信息
      • ls -l /opt

    1. 查阅命令帮助信息

    • 通过这几个命令你可以查看其他命令的介绍,知道其他命令的介绍和用法。
    命令 说明
    man 获取Linux帮助手册
    man-f 查看所有的同名的手册(作用不同方面的),再查看特定的手册。
    info info从首页开始浏览帮助手册,也可以浏览特定命令的帮助手册
    —help 输出最简单有用的介绍。

    示例:

    示例命令 说明
    man date 看到date命令的帮助手册,里面有date命令的介绍和详细的用法。

    2.列出当前目录下的文件 ls

    • ls 是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。
    命令 说明
    ls 列出目前工作目录所含的文件及子目录
    ls -a 显示所有文件及目录(ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)。
    ls -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出。
    ls -r 将文件以相反次序显示(原定依英文字母次序)。
    ls -t 将文件依建立时间之先后次序列出
    ls -A ls -a,但不列出"."(目前目录)及".."(父目录)。
    ls -F 在列出的文件名称后加一符号;例如可执行档则加"*",目录则加“/“。
    ls -R 若目录下有文件,则其以下的文件亦皆依序列出。

    3.切换当前工作目录 cd

    • cd用于切换当前工作目录。
    • cd后面可跟绝对路径,也可以跟相对路径
      • "~"表示为home目录的意思
      • "."则是表示目前所在的目录
      • ".."则表示目前目录位置的上一层目录。
    • pwd用于显示所在的工作目录的绝对路径名称。
    命令 说明
    cd 切换到当前用户根目录,默认[/home/用户名称/]
    cd . 切换到当前目录
    cd .. 切换到上一级目录
    cd / 返回操作系统跟目录,默认:[/]
    cd direction 进入某个指定的文件目录
    cd - 可进入上次所在的目录.

    [注意]:如果路径是从根路径开始的,则路径的前面需要加上“ / ”,如 “ /mnt ”,通常进入某个目录里的文件夹,前面不用加 "/"。

    4. 操作文件的相关命令

    4.1 创建和删除文件 mkdir,touch,rm
    命令 说明
    touch 创建一个空的文件
    mkdir 用于新建文件夹
    mkdir -p 递归创建目录,当父目录存在时忽略,若不存在则建立,用此参数可建立多级文件夹。
    rmdir 删除空文件夹
    rmdir -p 删除子目录,如果子目录删除之后,父目录为空,则父目录亦删除。
    rm 删除文件或目录。
    rm -i 以进行交互式方式执行,删除前逐一询问。
    rm -f 直接强制删除,无需逐一询问(包括只读文件)。会忽略不存在的文件
    `rm -r 删除目录及目录下所有文件。递归地删除目录下的内容,删除文件夹时必须加此选型
    4.2 复制文件或目录 cp
    • cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。
    命令 说明
    cp 复制文件或目录。
    cp -a 复制目录,它保留链接、文件属性,并复制目录下的所有内容。
    cp -d 复制文件时保留链接(类似快捷方式)。
    cp -f 覆盖已经存在的目标文件而不给出提示。
    cp -i 在覆盖目标文件之前给出提示,要求用户确认是否覆盖
    cp -p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
    cp -r 若源文件为目录文件,则复制该目录下的所有子目录和文件。
    cp -l 不复制文件,只生成链接文件。
    cp -v 显示拷贝进度
    4.3 修改和移动文件或目录 mv
    • 用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。
    命令 说明
    mv 修改文件或目录名,移动文件或目录到其他位置。
    mv -i 若指定目录已有同名文件,则先询问是否覆盖旧文件。
    mv -f 覆盖某已有的目标文件时不给任何指示。
    mv -v 显示移动进度
    4.4 查看文件 cat
    • cat可以查看当前目录下的文件,也可以查看绝对路径下的文件
    • 查看内容时,在信息过长无法在一屏上显示时,使用cat命令会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。
    命令 说明
    cat 查看文件cat XXX.txt
    more 逐行显示内容按ctrl+C退出。
    more +line 从指定行号开始显示。例, more +20 从第20行开始查看
    less 上下滚动查看内容按Q退出。
    less +line 从指定行号开始显示。
    4.5 查找文件 find
    • find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件。

    常用用法:

    命令 含义
    find ./ -name '*.sh' 查找当前目录下所有后缀为.sh的文件
    find ./ -name "[A-Z]*" 查找当前目录下所有以大写字母开头的文件
    find /tmp -size 2M 查找在/tmp 目录下等于2M的文件
    find /tmp -size +2M 查找在/tmp 目录下大于2M的文件
    find /tmp -size -2M 查找在/tmp 目录下小于2M的文件
    find ./ -size +4k -size -5M 查找当前目录下大于4k,小于5M的文件
    find ./ -perm 777 查找当前目录下权限为 777 的文件或目录

    问题1:查找test目录中扩展名是py的文件
    答: find ./ -name '*.py'

    问题2:查找test目录中c或者s开头的文件
    答: find ./ -name '[cs]*'

    问题3:查找test目录大于2M的文件
    答:
    find ./ -size +2M
    ls -lh

    问题4:查找出test目录中属主用户有读写权限,同组用户及其他用户只有读权限的文件
    答: find ./ -perm 644

    问题5:查找出test目录中属主用户有读写执行权限,同组用户及其他用户只有读和执行权限的文件
    答: find ./ -perm 755

    5. 对系统的相关操作

    命令 说明
    reboot 重启系统
    poweroff 关机
    shutdown –r now 重新启动操作系统,shutdown会给别的用户提示
    shutdown -h now 立刻关机,其中now相当于时间为0的状态
    shutdown -h 20:25 系统在今天的20:25 会关机
    shutdown -h +10 系统再过十分钟后自动关机
    `ping 测试网络连通状况,会向目标机器发送数据包来测试是否连通,是否延时

    6. 其他一些常用的命令

    命令 说明
    clear 清屏. 清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + L
    alias 设置指令的别名。仅输入alias,则可列出目前所有的别名设置。
    unalias 用于删除别名。
    unalias -a 删除全部的别名
    tree 以树形的方式查看文件列表,默认ubuntu是没有安装该命令,第一次使用需要安装tree命令
    history 查看使用过的命令
    > >> Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。
    > 比如: ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
    >> 比如: ls >> test1.txt(test.txt 如果不存在,则创建,存在则追加新内容到文件尾部)
    | 管道:一个命令的输出可以通过管道做为另一个命令的输入。“| ”的左右分为两端,左端塞东西(写),右端取东西(读)。

    7. 磁盘管理的相关命令 df,du,fdisk

    • 磁盘的管理是Linux上很重要的内容,磁盘管理的好坏会影响到系统的整体性能。
    • fdisk是Linux下功能是极其强大的磁盘管理命令
    命令 说明
    df 检查文件系统的磁盘空间占用情况。
    df -h 将容量结果以易读的容量格式显示出来
    df -aT 将系统内的所有特殊文件格式及名称都列出来。
    df -h /文件夹名 将该文件夹底下的可用的磁盘容量以易读的容量格式显示。
    du 查看对文件和目录磁盘使用的空间,全部都会列出来,包括隐藏文件的目录。
    du -a 将文件的容量也列出来。
    du -sm /文件夹 检查根目录底下每个目录所占用的容量。
    fdisk 磁盘分区表操作工具

    Q: du和df的区别在哪?
    区别在于du这个命令其实会直接到文件系统内去搜寻所有的文件数据。

    8.建立链接文件:ln

    • Linux链接文件类似于Windows下的快捷方式。
    • 链接文件分为软链接和硬链接。
    • 使用格式:
      • 软连接格式: ln -s 源文件 链接文件
      • 硬链接格式: ln 源文件 链接文件
    • 提示:如果是在目标文件所在目录以外的目录创建软链接,那么软链接的目标文件路径写绝对路径

    Q:软链接与硬链接相同点与区别?

    1. 软链接与硬链接最终都是指向同一个文件的
    2. 当源文件名删除, 软链接变成无效链接,而硬链接还可以打开源文件的内容
    3. 文件详细列表显示时, 软链接的文件类型是 l,而硬链接是 -
    4. 软连接可以链接文件和目录,而硬链接只能链接文件

    Q:链接与复制的区别?
    链接与复制就好比,复印文件,复制是多了一份, 而链接,不管软还是硬,都只有一份文件

    9.文本搜索 grep

    Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

    • grep一般格式为:
      • grep [-选项] ‘搜索内容串’ 文件名
    • 在grep命令中输入字符串参数时,最好引号或双引号括起来。
      • grep 'a' 1.txt
    • grep搜索内容串可以是正则表达式。

    常用选项说明:

    选项 含义
    -v 显示不包含匹配文本的所有行(相当于求反)
    -n 显示匹配行及行号
    -i 忽略大小写

    问题1: 把家目录中的文件信息写入桌面的home.txt中, 并且查找D字符

    1. ls ~ >home.txt
    2. grep 'D' home.txt
    3. grep - i 'D' home.txt
    4. grep - in 'D' home.txt
    5. grep - inv 'D' home.txt

    问题2: 查询mysql程序是否运行(拓展)
    ps : 查看当前运行的进程 ,-aux: 以bsd的格式显示内容
    命令: ps -aux | grep 'mysql'

    10.归档管理:tar

    • 计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。
    • tar使用格式:
      • tar [选项] 打包文件名 文件
    • tar命令很特殊,其选项前面可以使用“-”,也可以不使用。
    • 除了-f需要放在选项的最后,其它选项的顺序任意。

    常用选项:

    选项 含义
    -c 生成档案文件,创建打包文件
    -v 列出归档解档的详细过程,显示进度
    -f 指定档案文件名称,f后面一定是.tar文件,所以必须放选项最后
    -t 列出档案中包含的文件
    -x 解开档案文件

    问题1: 对test目录下的所有文件打包成my.tar 文件
    答: tar -cvf my.tar *

    问题2: 对my.tar 文件进行拆包
    答: tar -xvf my.tar

    问题3: 对test目录下的所有文件打包且以gzip格式压缩 成 my.tar.gz文件
    答:tar -czvf my.tar.gz *

    问题4: 对my.tar.gz 解压及拆包
    答: tar -xzvf my.tar.gz

    问题5: 对test目录下的所有文件打包且以bzip2格式压缩 成 my.tar.bz2文件
    答: tar -cjvf my.tar.bz2 *

    问题6: 对my.tar.bz2 解压及拆包 到桌面的test2目录中
    答:
    mkdir ../test2
    tar -xjvf my.tar.bz2 -C ../test2

    11.文件压缩解压:gzip

    • tar与gzip命令结合使用实现文件打包、压缩。
    • tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。
    • gzip使用格式如下:
      • gzip [选项] 被压缩文件

    常用选项:

    选项 含义
    -d 解压
    -r 压缩所有子目录
    • tar这个命令并没有压缩的功能,它只是一个打包的命令,但是在tar命令中增加一个选项(-z)可以调用gzip实现了一个压缩的功能,实行一个先打包后压缩的过程。

    • 压缩用法:

      • tar cvzf 压缩包包名 文件1 文件2 ...
    • 示例:

      • 将当前路径下的所有文件以及文件夹打包并压缩到test.tar.gz文件中
      • tar -zcvf test.tar.gz *
    选项 含义
    -z 指定压缩包的格式为:file.tar.gz
    • 解压用法:
      • tar zxvf 压缩包包名
    • 解压示例:
      • 解压到当前路径下
      • tar -zxvf text.tar.gz
    选项 含义
    -z 指定压缩包的格式为:file.tar.gz
    -C (大写字母“C”),解压到指定目录

    12.文件压缩解压:bzip2(了解)

    • tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。
    • tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.bz2。
    • 在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。
    • 压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)
    • 解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)

    13. 文件压缩解压: zip、unzip(了解)

    • 通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。
    • 压缩文件:zip [-r] 目标文件(没有扩展名) 源文件
    • 解压文件:unzip -d 解压后目录文件 压缩文件

    14.查看命令位置:which

    • which命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。
    • which指令会在环境变量 PATH 设置的目录里查找符合条件的文件。
    • 使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
      • 示例: which Python

    问题:分别查看ls和shutdown两个命令在哪个目录中
    答:
    python@ubuntu:~/Desktop/test2$ which ls
    /bin/ls
    python@ubuntu:~/Desktop/test2$ which shutdown
    /sbin/shutdown
    python@ubuntu:~/Desktop/test2$

  • 相关阅读:
    vuex插件
    axios
    token登录验证
    mysql模糊查询
    Koa2+Mysql搭建简易博客
    正则匹配器
    编码
    Maven学习
    防止重复提交保证幂等的几种解决方案
    策略模式优化if-else
  • 原文地址:https://www.cnblogs.com/gybb/p/9952305.html
Copyright © 2011-2022 走看看