• 【Linux】常用命令


    文件

    • ls,打印当前目录下所有文件和目录; ls -l,打印每个文件的基本信息

    • pwd,查看当前目录的路径

    • 查看文件

      • cat
      • less:可以左右滚动阅读
      • more :翻页阅读
      • tail:
        • tail -f:等同于–follow=descriptor,根据文件描述符进行追踪,当文件改名或被删除,追踪停止。
        • tail -F:等同于–follow=name --retry,根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续追踪。
        • tailf:等同于tail -f -n 10(tail -f或-F默认也是打印最后10行),与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电。
    • 文件权限 chmod:

      • chmod +x 是一个Linux或Unix系统中的命令,用于修改文件或目录的权限,使其可执行。
      • chmod +x script.sh:将脚本文件 script.sh 的执行权限打开,使其可被执行。
      • chmod +x directory:将目录 directory 的执行权限打开,使用户可以进入该目录。
      • chmod +x file.txt:将文件 file.txt 的执行权限打开,这通常用于特殊类型的可执行文件。

    ● 创建目录 mkdir

    • mkdir example:在当前目录下创建单个目录
    • mkdir /home/user/example:在指定目录下创建单个目录
    • mkdir example1 example2 example3:同时创建多个目录
    • mkdir -p /home/user1/example1/example2:创建目录及其所有父目录
    • mkdir -m 755 example:改变目录权限

    解压缩

    tar包和gz包是两个不同的文件包,有三种不同后缀。.tar .gz .tar.gz
    tar包:使用tar命令,打包文件或者文件夹,只打包,不压缩
    gz包:使用gzip命令,只压缩文件,不打包,所以gz包操作不能对文件夹直接操作,如果要对文件夹下所有文件进行压缩,使用-r参数,gzip -r 文件夹路径
    tar.gz:使用tar加-z参数,tar -zcvf filename.tar.gz dir/file 打包压缩文件或者文件夹

    打包并压缩

    • c: 创建压缩文件
    • z: 使用 gzip 的方式进行文件压缩
    • j: 使用 bzip2 的方式进行文件压缩
    • v: 压缩过程中显示压缩信息,可以省略不写
    • f: 指定压缩包的名字
    tar -cvf jpg.tar *.jpg       //将目录里所有jpg文件打包成tar.jpg
    tar -czf jpg.tar.gz *.jpg   //将目录里所有jpg文件打包成jpg.tar后,再用gzip压缩,生成jpg.tar.gz
    tar -cjf jpg.tar.bz2 *.jpg  //将目录里所有jpg文件打包成jpg.tar后,再用bzip2压缩,生成jpg.tar.bz2
    tar -cZf jpg.tar.Z *.jpg    //将目录里所有jpg文件打包成jpg.tar后,再用compress压缩,生成jpg.tar.Z
    
    • 1
    • 2
    • 3
    • 4

    解包并解压

    • x: 释放压缩文件内容
    • z: 使用 gzip 的方式进行文件压缩,压缩包后缀为.tar.gz
    • j: 使用 bzip2 的方式进行文件压缩,压缩包后缀为.tar.bz2
    • v: 解压缩过程中显示解压缩信息
    • f: 指定压缩包的名字
    tar -xvf file.tar        //解压 tar包
    tar -xzvf file.tar.gz    //解压tar.gz
    tar -xjvf file.tar.bz2   //解压 tar.bz2
    tar -xZvf file.tar.Z     //解压tar.Z
    
    • 1
    • 2
    • 3
    • 4

    服务器文件互传

    scp

    #scp命令语法 
    scp -r $dir/$filename $user@$host:$dir/$filename
    # -r 递归 
    # $dir 要拷贝的文件路径
    # $filename 拷贝文件的名称 
    # $user 目的地用户
    # $host 主机地址
    # $dir  目的地路径
    # $filename 目的地文件名称
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    # 把43.91.36.229这台服务器中的 root文件夹中的jstack.txt, 复制到当前环境下的root文件夹下
    scp root@43.91.36.229:/root/jstack.txt /root/
    scp -P 11220 develop@140.143.143.151:/repo2/bot/customize/v2.5.0nongfazhan20220803/bot-stat-service-v2.5.0-nongfazhan-rc11.tar.gz ./
    • 1
    • 2

    rsync

    #rsync 实现服务器之间文件共享
    rsync -av $dir/$fname $user@$host:$dir/$fname
    #rsync 命令 
    #-av 选项参数:归档拷贝,显示复制过程 
    #$dir 要拷贝的文件路径
    #$fname 拷贝的文件名称 
    #$user 目的地用户
    #$host 目的地主机
    #$dir 目的地路径
    #$fname 目的地文件名称
    
    rsync -avuP -e "ssh -p 11220" /data/pkg_ori/bot/v2.5.0-NYFZ-20220810 [develop@10.4.1.58](mailto:develop@10.4.1.58)_:/repo2/bot/customize
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    rsync 和 scp 区别:
    用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更新。scp 是把所有文件都复制过去。

    进程

    • top/ps,查看当前进程
      • ps -ef:查看所有进程
    • pstree
    • kill 终止进程
      • SIGHUP(1):挂起,即停止进程并使其重新读取配置文件等资源。
      • SIGINT(2):中断,即向进程发送中断信号,通常是通过CTRL+C快捷键实现。
      • SIGKILL(9):强制退出,即立即终止进程而不允许其清理或保存任何数据。
      • SIGTERM(15):终止,允许进程在自己的清理和正常终止后完成操作。
      • SIGSTOP(17):暂停,即立即暂停进程并使其无法继续运行。
    • 杀死进程
      1.找到进程号: ps -ef|grep nmon
      2.通过进程号杀死进程:kill -9 xxx

    资源

    • df或 df -h,打印设备上挂载了多少个磁盘设备,以及磁盘里还有多少可用空间
      • 磁盘空间不足:列出当前系统中所有被删除但仍然处于占用状态的文件,并按照文件大小进行倒序排序: lsof -w | grep delete |sort -nrk 7|more
        • lsof:列出当前系统打开文件的工具。
        • sort -nrk 7:按第七个字段(即文件大小)以倒序方式进行排序。
    • free -h 剩余内存
      • 内存不足:sudo sh -c “echo 1 > /proc/sys/vm/drop_caches”
    • ps :显示当前控制台下属于当前用户的进程
      • ps -aux 查看一个运行中的程序, 占用了多少内存
      • ps -ef | grep 相应的进程名称
    • top:显示进程(动态)

    网络

    curl

    curl 是一种常用的命令行工具,它允许您与各种网络协议(如HTTP、FTP、SMTP等)进行交互。

    发送简单get请求

    要使用 curl 发送一个简单的 HTTP GET 请求,只需在终端窗口中输入以下命令:

    curl http://example.com
    
    • 1

    发送 POST 请求

    要发送一个 HTTP POST 请求,需要使用 -X 选项并指定请求方法。

    curl -X POST --data "name=John&age=30" http://example.com/post
    
    • 1

    其中,--data 选项指定了要发送的数据。本例中,我们将发送一个名为 name 的参数与其值 John,还有一个名为 age 的参数与其值 30。响应结果也会被输出到控制台。

    发送 JSON 数据

    使用 -H 参数可以设置 HTTP 请求头。通过设置Content-Type为application/json,可以向服务器发送JSON数据。例如:

    bash复制代码curl -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' http://example.com/user
    
    • 1

    其中 -d 参数用于设置请求数据,{“name”: “John”, “age”: 30}是一个简单的JSON格式的对象。

    保存响应到文件

    使用 -o 选项将响应保存到文件。例如,要将 http://example.com 的响应保存到 output.html 文件中,可以执行以下命令:

    curl -o output.html http://example.com
    
    • 1
  • 相关阅读:
    Java 腾讯邮箱发送邮件工具类(单人+多人)
    【论文阅读】MARS:用于自动驾驶的实例感知、模块化和现实模拟器
    数据结构 - 6(优先级队列(堆)13000字详解)
    数据结构之循环链表(C语言)
    GitHub上标星120k的Java进阶面试教程等!(建议收藏)
    亚马逊云科技的AI新引擎,如何助力企业应对“乌卡时代”?
    IMX6ULL使用NXP官方mfgtool2下载方法及错误解决
    spring service事务传播
    Python中5大模块的使用教程(collections模块、time时间模块、random模块、os模块、sys模块)
    [SQLServer]NetCore中将SQLServer数据库备份为Sql脚本
  • 原文地址:https://blog.csdn.net/smlie_A/article/details/133828704