• Linux操作系统shell指令详解


    shell指令基本概念

    命令行提示符

    1. ubuntu:用户名
    2. @:分隔符
    3. ubuntu:主机名
    4. ~:家目录,(当前所在的路径)
    5. $:普通用户权限 root:#

    切换用户

    1. su 用户名 ----->切换到指定用户
    2. su ----->默认切换到超级用户
    3. sudo 加在指令前 ----->用超级用户的权限执行后面的指令

    修改密码

    1. passwd 用户名 ----->修改指定用户的密码
    2. 普通用户修改管理员用户的密码需要加sudo
    3. 输入的密码不会回显

    查看当前目录下的文件

    1. ls 目标路径 ------->回显指定路径下的所有文件名
    2. ls 目标文件 ------->回显文件名
    3. ls -a ---->查看所有文件,包括隐藏文件,.开头的都是隐藏文件
    4. ls -lh ---->查看文件的详细信息,给文件的大小带单位的显示
    5. ls -i ---->显示文件的inode号
    6. -rw-rw-r-- 1 ubuntu ubuntu 4549 八月 22 14:51 test.s
    7. 文件类型:7
    8. b:块设备文件 -:普通文件
    9. c:字符设备文件 l:软连接文件
    10. d:目录文件 s:套接字文件
    11. p:管道文件
    12. rw-rw-r--
    13. r:可读 w:可写 -:没有权限 x:可执行权限
    14. 八进制数表示文件权限:
    15. r:4 w:2 x:1

    修改文件权限---chmod

    1. 字母表示法:
    2. chmod 用户+/-/=权限的字母表示 文件名
    3. 八进制表示法:
    4. chmod 0三位八进制数 文件名
    5. chmod 4 1.c ------> 把1.c的其他用户权限改为4,所属组和所属用户没有权限

    cd 切换路径

    1. cd ---->默认切换到当前用户的家目录
    2. 超级用户的家目录:在根目录下 /root

    touch

    1. 创建文件 touch 文件名
    2. 1、文件本身不存在,创建该文件
    3. 2、文件已经存在,更新文件的时间戳

    cat

    1. cat 文件名
    2. 回显文件的内容

    echo

    echo 字符串 ------>回显一遍字符串

    mkdir

    mkdir /dir1/dir2/dir3 -p 实现多级目录的创建

    rm/rmdir

    1. rmdir 空目录 ----->删除空目录
    2. rm -r 非空目录 ----->删除非空目录

    在线下载软件

    1. sudo apt-get install 软件名 ---->下载软件
    2. sudo apt-get install oneko --->追鼠标的猫
    3. sudo apt-get install bastet --->俄罗斯方块
    4. 下载软件后,如何执行:
    5. 直接在终端输入软件名
    6. 以oneko为例,直接输入软件名,会在前台执行,没有办法去写其他的指令
    7. oneko& ---->让onkeo后台运行,会回显一个进程号
    8. 可以直接使用kill -9 进程号,杀死进程
    9. sudo apt-get install gnome-mines ---->下载扫雷
    10. sudo apt-get remove 软件名 --->卸载软件,不完全卸载
    11. sudo apt-get remove 软件名 --purge --->卸载软件,完全卸载
    12. sudo apt-get download 软件名 --->下载软件的安装包
    13. download指令会把安装包下载在执行指令的路径下
    14. sudo apt-get clean ---->清空默认下载位置的安装包
    15. /var/cache/apt/archives/ ---->软件包的默认下载位置
    16. sudo apt-get install make

    离线安装软件

            离线安装软件不会检查软件依赖,也不会自动下载软件依赖,对于需要软件依赖的软件进行离线安装会报错,在线安装软件,会检查软件依赖,并主动安装软件依赖

    软件安装包的命名

    1. oneko _1.2.sakura.6 -13 _amd64. deb
    2. | | | | |
    3. 软件名 主版本号 修订版本号 架构 软件包后缀
    4. 64位架构 符合Debian软件包的标准
    5. i386 ---->支持32位架构
    6. Linux下的软件包标准:
    7. Debian标准,Debian系统使用的软件,deb
    8. redhat标准,rpm

    离线安装软件的指令

    1. dpkg ----->debian package的缩写
    2. 下载:sudo dpkg -i 软件包名 (重点掌握) 注意事项:如果执行指令的路径和安装包不在同一路径下,要给安装包加上路径 卸载:sudo dpkg -r 软件名 ---->不完全卸载软件 sudo dpkg -P 软件名 ---->完全卸载软件

    文件相关的指令

    head

    1. cat 文件名 ----->查看文件中的所有内容
    2. head 文件名 ----->默认回显文件的前10行 head -n 文件名 ----->指定回显文件的前n行

    tail

    tail 文件名 ------>回显文件的后10行 tail -n 文件名 ----->回显文件的后n行 head和tail,默认显示前10行和尾10行,如果不足就全部显示, 如果超过10行,只显示10

    管道符 |

    1. 指令1 | 指令2 | 指令3 | ·····
    2. 把前一条指令的输出当作后一条指令的输入
    3. 查看1.c文件的第4行: head -4 1.c | tail -1

    find**

    1. 通常使用find查找文件,结果都是绝对路径
    2. 格式: find 要查找的路径 -name 要查找的文件名 find可以实现模糊查找,已经不记得具体的文件名,只记得部分文件名 已知文件以1开头,.c结尾,不知道具体的文件名 find 目标路径 -name 1\*.c find的使用场景: 在项目开发的过程中,多个文件中某一个文件报错,可以使用find以及文件名,快速找到文件的位置

    通配符

    1. *:可以任意通配一个或多个字符
    2. ?:通配任一个字符,如果想使用?通配多个字符,多加几个?,有几个匹配几个
    3. []:通配[]内的任一个字符
    4. [1234]:通配1234中的任一个字符
    5. [2-5]:通配2-5中的任一个字符
    6. [12347-9]:通配12347-9中的任一个字符
    7. [1234,7-9]:通配12347-9和,中的任一个字符

    file ---->查看文件

    1. a.out:文件名
    2. ELF:是一个ELF类型的文件
    3. 64-bit:支持64位操作系统
    4. LSB shared object:小端存储
    5. x86-64 ----->架构
    6. version 1 (SYSV) ---->版本
    7. dynamically linked, interpreter /lib64/l, --->链接的库
    8. for GNU/Linux 3.2.0 ---->gcc编译器的版本
    9. BuildID[sha1]=60b94b36154878cc979cc2aae1af6e92a45f044f, ---->动态ID

    wc ----->(word count)

    1. wc 文件名
    2. 回显行号,单词个数,字符个数,文件名
    3. wc -l 文件名 ---->回显文件的行数
    4. wc -w 文件名 ---->回显文件单词的个数
    5. wc -c 文件名 ---->回显文件字符的个数

    查找字符串 ---->grep

    1. grep "要查找的字符串" 要查找的路径 (参数)
    2. -n:查找的同时显示字符串所在行
    3. -i:不区分大小写
    4. -R:递归查找 ---->只用于目标路径是目录不是文件
    5. -w:按单词查找
    6. grep "ubuntu$" 文件名 ---->查找以ubuntu作为结尾的所在行
    7. grep "^ubuntu" 文件名 ---->查找以ubuntu作为开头的所在行
    8. grep "^ubuntu$" 文件名 ---->要求开头和结尾是同一个ubuntu

    cut ----->字符串裁剪

    1. cut -d "分隔" -f "要截取的域" 文件名
    2. cut -d ":" -f "1" /etc/passwd
    3. 截取/etc/passwd中,所有以":"分隔的,第一个域

    压缩和解压缩

            压缩和解压缩后源文件都不存在

    1. gz ---->压缩生成.gz后缀的文件
    2. xz ---->压缩生成.xz后缀的文件
    3. bz2 ---->压缩生成.bz2后缀的文件
    4. gzip 要压缩的文件
    5. bzip2 要压缩的文件
    6. xz 要压缩的文件
    7. 解压缩
    8. unxz 要解压缩的文件 ---->把压缩文件解压出来,压缩文件.xz会消失
    9. gunzip 要解压缩的文件
    10. bunzip2 要解压缩的文件

    三种压缩工具的压缩效率:xz > bz2 > gz

    三种压缩工具的压缩时长:xz > bz2 > gz

    xz需要时间更长,适用于对文件归档

    gz需要时间更短,适用于临时文件传输

    tar 文件归档并压缩

            归档和拆包后源文件仍然存在

    i)归档

            把多个文件打包生成一个文件

    1. tar -cvf 要生成的文件名.tar 要打包的文件
    2. -c:归档/打包的参数
    3. 把要打包的文件生成一个新的文件.tar
    4. tar指令提供的压缩参数:
    5. -j:使用bz2工具压缩
    6. -J:使用xz工具压缩
    7. -z:使用gz工具压缩
    8. tar -czf 生成的文件名.tar.gz 要打包并压缩的文件
    9. tar -cjf 生成的文件名.tar.bz2 要打包并压缩的文件
    10. tar -cJf 生成的文件名.tar.xz 要打包并压缩的文件

    ii)拆包并解压缩

    1. tar -xvf 要拆包(解压缩)的文件 ---->既可以完成拆包也可以完成解压缩
    2. 万能的拆包解压缩指令
    3. 仍然可以使用对应的压缩参数进行解压缩,-j、-J、-z

    注意:

            有万能的拆包指令,但是没有万能的归档并压缩指令

            所以在进行归档并压缩时,压缩工具和压缩生成的文件后缀必须严格一致

    文件权限相关的操作

    chgrp --->修改文件的所属组用户

    1. 由于现在都是在ubuntu用户和root用户之间转换,所以需要加sudo,如果是两个普通用户之间的转换不需要加sudo
    2. 例:有文件2.c
    3. sudo chgrp root 2.c --->把2.c文件的所属组用户改为root

    chown --->修改文件的所属用户

    1. 由于现在都是在ubuntu用户和root用户之间转换,所以需要加sudo,如果是两个普通用户之间的转换不需要加sudo
    2. sudo chown root: 1.c 修改1.c的所属用户和所属组用户为root
    3. sudo chown :root 1.c 修改1.c的文件所属组用户为root
    4. sudo chown root 1.c 修改1.c的所属用户为root
    5. sudo chown ubuntu:root 1.c 修改1.c的文件所属用户为ubuntu,所属组用户为root
  • 相关阅读:
    Android项目使用gradle配置新旧方式对比
    java基于springboot+mvc的高校网课在线学习作业管理系统 elementui
    9个python自动化脚本,PPT批量生成缩略图、添加图片、重命名
    代理模式 工厂模式 原型模式
    Java复习总结之I/O流
    消息队列(三):硬盘管理
    django的使用步骤详细
    SQL 为什么历经半个世纪却经久不衰?
    H264基本原理
    脚本之美│VBS 入门交互实战
  • 原文地址:https://blog.csdn.net/weixin_53478812/article/details/132724369