• Linux学习笔记


    一、帮助命令

    1.whatis

    whatis grep # 简要说明grep命令的作用(显示命令所处的man分类页面)
    whatis -w "gre*" #通过正则表达式匹配命令
    
    • 1
    • 2

    2.info

    info grep # grep命令的文档说明
    
    • 1

    3.whereis / which

    # 查看命令路径
    whereis grep
    which grep
    
    • 1
    • 2
    • 3

    4.man

    在man的帮助手册中,将帮助文档分为了9个类别,对于有的关键字可能存在多个类别中, 我们就需要指定特定的类别来查看;(一般我们查询bash命令,归类在1类中);man页面所属的分类标识(常用的是分类1和分类3):

    (1)、用户可以操作的命令或者是可执行文件
    (2)、系统核心可调用的函数与工具等
    (3)、一些常用的函数与数据库
    (4)、设备文件的说明
    (5)、设置文件或者某些文件的格式
    (6)、游戏
    (7)、惯例与协议等。例如Linux标准文件系统、网络协议、ASCⅡ,码等说明内容
    (8)、系统管理员可用的管理条令
    (9)、与内核有关的文件

    man -k keyword # 用于只记得命令部分关键字的情况的查询
    man grep # 用于查询grep命令的详细用法
    
    • 1
    • 2

    在这里插入图片描述

    总结:
    whatis info which whereis man

    二、文件及目录管理

    1.创建和删除

    mkdir newDir # 创建目录
    rm -r newDir # 删除目录,目录需要使用-r递归删除目录里的所有文件
    rm newfile # 删除文件
    cp -r Dir1 Dir2 # 复制目录
    cp newfile newDir # 复制newfile文件到newDir目录
    mv newfile newDir # 移动newfile文件到newDir目录
    mv oldfilename newfilename #修改文件名,相当于移动覆盖
    torch a.txt #创建一个空文本文件
    vim filename.txt #使用vim打开一个文本文件,如果不存在则创建
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    关于vim的一些简单操作:

    • 在浏览模式下按i进入插入编辑模式
    • 按ESC进入退出模式,之后在下方退出编辑框中输入
      :wq 表示保存并退出
      :w 只写入
      :q! 强制退出

    2.目录切换

    在Linux中.代表本层目录,..代表上层目录

    cd - #返回上一个工作目录
    cd  #返回home目录
    cd ~ #返回home目录
    cd path #切换到path目录
    cd .. #返回上一层目录
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.列出目录项

    ls  #列出当前目录下的目录和文件
    ls -a #列出包括.和..在内的当前目录下的文件和目录
    ls -all #列出文件的详细信息
    ls -l #列出文件详细信息,不包括.和..
    ls |cat -n #列出文件和目录,并编号
    
    • 1
    • 2
    • 3
    • 4
    • 5

    关于文件的详细信息分别对应:
    文件类型与权限 链接数 文件主 文件大小 创建或最近修改的时间 文件名
    在这里插入图片描述

    1.第一个字段中第一个字符表示文件类型,所用字符含义如下:
    -:普通文件
    d:目录
    b:快文件
    c:字符设备文件
    l:符号链接文件
    s:套接字文件(socket)
    p:命名管道文件(pipe)
    2.第一个字段的后9个字符表示文件的存取权限,各权限字符表示如下:
    9个字符分别分为三组所属权限,分别是:user,group,other
    r:读
    w:写
    x:执行。对于目录,表示可以访问该目录。
    -:表示没有设置权限。

    4.查找目录及文件

    find ./ -name "*.c" #从当前目录递归查找符合正则表达式的文件
    find ./ -name "mydir" -exec rm -r {} \; #查找mydir目录并删除
    
    • 1
    • 2

    find是实时查找,如果需要更快的查询,可试试locate;locate会为文件系统建立索引数据库,如果有文件更新,需要定期执行更新命令来更新索引库:

    locate "*.c"
    
    • 1

    5.查看文件内容

    cat cphello.c -n #查看cphello.c文件内容,-n表示给每一行编号
    more cphello.c #分页查看cphello.c文件
    ls -al | more #ls将文件详细信息展示出来,| more表示把内容分页展示
    head -5 cphello.c #展示前5行内容
    tail -5 cphello.c #展示后5行内容
    diff file1 file2 #展示两个文件不同的地方
    tail -f crawler.log #动态展示最新的日志信息
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    6. 查找文件内容

    egrep相当于grep -E

    egrep "[a-z]+[1-9]*" data1.txt data2.txt # 匹配data1.text和data2.text中符合正则的行
    -n:输出匹配行的行号;
    -c:只输出匹配的行数;
    -o:只输出匹配模式的内容;
    -v:反向匹配;
    -l:输出包括匹配行的文件;
    -L:输出不包括匹配行的文件;
    -i:忽略大小写;
    -e:指定多个模式;
    -r:递归搜索目录下的文件;
    --exclude-dir:搜索时排除指定的目录;
    --exclude:搜索时排除指定的文件;
    --include:搜索时只查找指定的文件;
    -f:从文件中读取模式,一行一个模式;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    7. 文件与目录权限修改

    chmod a+x data1.txt # 给data1.txt文件所有用户添加执行权限
    +:添加
    -:取消
    a:所有用户
    u:当前用户
    g:组用户
    other:其他用户
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    8.创建符号链接/硬链接

    连接的作用类似创建文件别名,可以通过链接直接访问原文件。
    软链接/符号链接:相当于windows创建了一个原文件的快捷方式。软链接本质上是一个文本文件,包含原文件的位置。从系统角度来看它们是两个文件,软链接和原文件iNode值不同。当原文件被删或者移动后,软链接失效。

    #创建a.text的符号链接,a_link.text被标识为索引文件;a.text索引数未增加
    ln -s a.text a_sln.text 
    
    • 1
    • 2

    硬链接:在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。硬链接文件和原文件的索引节点号相同,都指向了同一个文件。删除任何一个连接对另外的链接都不影响。当某文件的索引数为零时,文件才会被真正删除。

    #创建a.text的硬链接,a_ln.text和原文件一样被标识为普通文件;a.txt索引数增加
    ln a.text a_ln.text 
    
    • 1
    • 2

    图示:
    在这里插入图片描述

    不同点:
    1.硬链接不可以对目录进行创建,软链接可以
    2.硬链接不可以跨区跨设备进行创建,软链接可以
    3.硬链接删除原文件对连接文件无影响;软链接删除原文件,链接失效。

    效果展示:
    在这里插入图片描述

    9.管道和重定向

    • |:批处理命令连接执行
    • ;:串联
    • &&:前面成功,则执行后面一条,否则,不执行
    • ||:前面失败,则后一条执行;前面成功,后面不执行
    # 列出/proc下的文件成功则打印suss!否则打印failed
    ls /proc && echo  suss! || echo failed 
    
    • 1
    • 2
    # 上述代码也等效于串联代码
    if ls /proc; then echo suss; else echo fail; fi
    
    • 1
    • 2
    # 重定向
    ls  /proc >list #将列表内容重定向到list文件中
    :> list #情况list文件
    echo aaa >> list #将aaa重定向到list中
    
    • 1
    • 2
    • 3
    • 4

    10.综合应用

    # 先读取a.text文件
    # 对读取的文件进行查找包含AAA的部分
    # 对读取的文件进行查找不包含BBB的部分
    # 对这部分统计行数
    cat a.text|grep AAA|grep -v BBB|wc -l
    
    • 1
    • 2
    • 3
    • 4
    • 5

    三、磁盘管理

    1.查看磁盘空间

    df -h #df(disk free)查看磁盘空间,-h是human缩写,比较人性化方式展示
    
    • 1

    在这里插入图片描述

    du -h #du(disk used)对文件和目录磁盘使用的空间的查看
    du -sh path #查看路径下文件总大小
    du -h * #产看当前目录下所有文件大小
    du -sh `ls` | sort #将ls列出的路径文件大小排序展出
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    2.文件打包(非压缩)/解包

    # 将所有.jpg文件打包到all.tar中,-c产生新的包,-v显示过程,-f指定包的文件名
    tar -cf all.tar *.jpg 
    -r #新增文件
    -u #更新原来包里的某个文件
    -f #将包里新增一个文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    tar -tf all.tar #列出包里的文件-t表示列出
    tar -xf all.tar #解出包里的文件
    
    • 1
    • 2

    3.文件压缩/解压

    gzip demo.txt #压缩demo.txt,生成demo.txt.gz
    
    • 1
    gunzip demo.txt.gz #解压出demo.txt
    
    • 1

    四、进程管理

    ps -ef #查询正在运行的进程
    ps -ef | grep 关键字 #查找存在某关键字的运行进程
    ps -u root #查询某用户进程
    ps -ajx #完整展示所有的进行信息
    
    • 1
    • 2
    • 3
    • 4
    top #实时更新进程的运行情况
    
    • 1
    kill PID#终止进程好为pid的进程
    
    • 1

    五、C程序编译

    gcc -o demo demo.c #编译demo.c,生成demo可执行文件
    
    • 1
    exec ./demo #执行demo程序
    ./demo #也可以直接运行
    
    • 1
    • 2
  • 相关阅读:
    搜索引擎-在URL地址栏输入信息,不跳转
    C++之log4cpp库
    模型部署入门教程(六):实现 PyTorch-ONNX 精度对齐工具
    vscode插件开发(二)插件结构
    Kafka是什么?Rocket MQ在Spring Boot中怎么整合使用/Kafka在SpringBoot中简单配置使用
    Java ArrayList
    书生浦语训练营第2期-第4节笔记
    HTTPS详解
    软件测试之Web项目实战解析
    Oracle RAC ASM磁盘组删除、添加磁盘
  • 原文地址:https://blog.csdn.net/ha_lee/article/details/125970849