• Linux之管道、环境变量与常用命令


    ### Linux是学ACWing网课学来的,如有侵权问题,立刻删除 

    目录

    1.管道

    2.环境变量

    3.常用命令


     

    1.管道

    概念
    管道类似于文件重定向,可以将前一个命令的stdout重定向到下一个命令的stdin。

    要点

    1. 管道命令仅处理stdout,会忽略stderr。
    2. 管道右边的命令必须能接受stdin。
    3. 多个管道命令可以串联。

    与文件重定向的区别

    1. 文件重定向左边为命令,右边为文件。
    2. 管道左右两边均为命令,左边有stdout,右边有stdin。

    举例
    统计当前目录下所有python文件的总行数,其中find、xargs、wc等命令可以参考常用命令这一节内容。

    find . -name '*.py' | xargs cat | wc -l

    2.环境变量

    概念
    Linux系统中会用很多环境变量来记录配置信息。
    环境变量类似于全局变量,可以被各个进程访问到。我们可以通过修改环境变量来方便地修改系统配置。

    查看
    列出当前环境下的所有环境变量:

    1. env # 显示当前用户的变量
    2. set # 显示当前shell的变量,包括当前用户的变量;
    3. export # 显示当前导出成用户变量的shell变量

    输出某个环境变量的值:

    echo $PATH

    修改
    环境变量的定义、修改、删除操作可以参考3. shell语法——变量这一节的内容。

    为了将对环境变量的修改应用到未来所有环境下,可以将修改命令放到~/.bashrc文件中。
    修改完~/.bashrc文件后,记得执行source ~/.bashrc,来将修改应用到当前的bash环境下。

    为何将修改命令放到~/.bashrc,就可以确保修改会影响未来所有的环境呢?

    1. 每次启动bash,都会先执行~/.bashrc。
    2. 每次ssh登陆远程服务器,都会启动一个bash命令行给我们。
    3. 每次tmux新开一个pane,都会启动一个bash命令行给我们。
    4. 所以未来所有新开的环境都会加载我们修改的内容。

    常见环境变量

    1. HOME:用户的家目录。
    2. PATH:可执行文件(命令)的存储路径。路径与路径之间用:分隔。当某个可执行文件同时出现在多个路径中时,会选择从左到右数第一个路径中的执行。下列所有存储路径的环境变量,均采用从左到右的优先顺序。
    3. LD_LIBRARY_PATH:用于指定动态链接库(.so文件)的路径,其内容是以冒号分隔的路径列表。
    4. C_INCLUDE_PATH:C语言的头文件路径,内容是以冒号分隔的路径列表。
    5. CPLUS_INCLUDE_PATH:CPP的头文件路径,内容是以冒号分隔的路径列表。
    6. PYTHONPATH:Python导入包的路径,内容是以冒号分隔的路径列表。
    7. JAVA_HOME:jdk的安装目录。
    8. CLASSPATH:存放Java导入类的路径,内容是以冒号分隔的路径列表。

    3.常用命令

    Linux命令非常多,本节讲解几个常用命令。其他命令依赖于大家根据实际操作环境,边用边查。

    系统状况

    1. top:查看所有进程的信息(Linux的任务管理器)
    2. 打开后,输入M:按使用内存排序
    3. 打开后,输入P:按使用CPU排序
    4. 打开后,输入q:退出
    5. df -h:查看硬盘使用情况
    6. free -h:查看内存使用情况
    7. du -sh:查看当前目录占用的硬盘空间
    8. ps aux:查看所有进程
    9. kill -9 pid:杀死编号为pid的进程
    10. 传递某个具体的信号:kill -s SIGTERM pid
    11. netstat -nt:查看所有网络连接
    12. w:列出当前登陆的用户
    13. ping www.baidu.com:检查是否连网

    文件权限

    1. chmod:修改文件权限
    2. chmod +x xxx:给xxx添加可执行权限
    3. chmod -x xxx:去掉xxx的可执行权限
    4. chmod 777 xxx:将xxx的权限改成777
    5. chmod 777 xxx -R:递归修改整个文件夹的权限

    文件检索

    1. find /path/to/directory/ -name '*.py':搜索某个文件路径下的所有*.py文件
    2. grep xxx:从stdin中读入若干行数据,如果某行中包含xxx,则输出该行;否则忽略该行。
    3. wc:统计行数、单词数、字节数
    4. 既可以从stdin中直接读入内容;也可以在命令行参数中传入文件名列表;
    5. wc -l:统计行数
    6. wc -w:统计单词数
    7. wc -c:统计字节数
    8. tree:展示当前目录的文件结构
    9. tree /path/to/directory/:展示某个目录的文件结构
    10. tree -a:展示隐藏文件
    11. ag xxx:搜索当前目录下的所有文件,检索xxx字符串
    12. cut:分割一行内容
    13. 从stdin中读入多行数据
    14. echo $PATH | cut -d ':' -f 3,5:输出PATH用:分割后第3、5列数据
    15. echo $PATH | cut -d ':' -f 3-5:输出PATH用:分割后第3-5列数据
    16. echo $PATH | cut -c 3,5:输出PATH的第3、5个字符
    17. echo $PATH | cut -c 3-5:输出PATH的第3-5个字符
    18. sort:将每行内容按字典序排序
    19. 可以从stdin中读取多行数据
    20. 可以从命令行参数中读取文件名列表
    21. xargs:将stdin中的数据用空格或回车分割成命令行参数
    22. find . -name '*.py' | xargs cat | wc -l:统计当前目录下所有python文件的总行数

    查看文件内容

    1. more:浏览文件内容
    2. 回车:下一行
    3. 空格:下一页
    4. b:上一页
    5. q:退出
    6. less:与more类似,功能更全
    7. 回车:下一行
    8. y:上一行
    9. Page Down:下一页
    10. Page Up:上一页
    11. q:退出
    12. head -3 xxx:展示xxx的前3行内容
    13. 同时支持从stdin读入内容
    14. tail -3 xxx:展示xxx末尾3行内容
    15. 同时支持从stdin读入内容

    用户相关

    history:展示当前用户的历史操作。内容存放在~/.bash_history中

    工具

    1. md5sum:计算md5哈希值
    2. 可以从stdin读入内容
    3. 也可以在命令行参数中传入文件名列表;
    4. time command:统计command命令的执行时间
    5. ipython3:交互式python3环境。可以当做计算器,或者批量管理文件。
    6. ! echo "Hello World":!表示执行shell脚本
    7. watch -n 0.1 command:每0.1秒执行一次command命令
    8. tar:压缩文件
    9. tar -zcvf xxx.tar.gz /path/to/file/*:压缩
    10. tar -zxvf xxx.tar.gz:解压缩
    11. diff xxx yyy:查找文件xxx与yyy的不同点

    安装软件

    1. sudo command:以root身份执行command命令
    2. apt-get install xxx:安装软件
    3. pip install xxx --user --upgrade:安装python包

  • 相关阅读:
    Python多线程爬取数据代码模版
    csmall-passport(Day14)
    2023 年 亚太赛 APMCM ABC题 国际大学生数学建模挑战赛 |数学建模完整代码+建模过程全解全析
    在IEEE754标准规定的64位浮点数格式中,符号位为1位,阶码为11位,尾数为52位。。的题解
    学会Spring MVC文件上传、下载和JRebel的使用
    CSDN竞赛第四期季军 解题思路及参赛经历分享
    数组的API
    Java——聊聊JUC中的锁(synchronized & Lock & ReentrantLock)
    golang 函数式编程库samber/mo使用: Result
    shell_42.Linux移动参数
  • 原文地址:https://blog.csdn.net/m0_63729880/article/details/126401974