Linux笔记

Posted dovienson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux笔记相关的知识,希望对你有一定的参考价值。

一。基础思想

  1. 一切皆文件。

  2. 两条权限原则:

    • 权限分组原则
    • 权限最小原则
  3. su是切换用户,而sudo则是用root权限执行某操作( 普通用户+sudo=安全)

  4. Linux目录

    • 系统只存在一颗文件树、从==/==开始,所有的文件都挂载在这个节点上。 ( 树型目录
    • Windows系统存在多颗文件树,以盘开始。如==C:\\==D:\\
    • 注意:两者斜杆不一样,正反斜杆。Linix正斜杆,Windows反斜杠。
  5. 没有返回值就是成功:执行Linux命令,无返回值即成功,有反回值有可能成功也有可能失败。

  6. 关机前需要先同步数据

    • 虽然如今Linux系统已默认执行sync。但是为了避免数据丢失,实现手动sync是好习惯。
    sync						#同步数据 
    shutdown -h now #立即关机
    shutdown -h 1		#1分钟之后关闭计算机 
    reboot					#立即重启
    
  7. 在众多Shell中,Linux系统中的文件系统因为不同的类别,颜色都是不一样的。

    d:目录 -:文件 l:链接

  8. r4、w2、x1:读写执行分别对应二进制111

  9. 记住、用户目录 /etc/passwd

  10. 只有当要修改文件时才需要vim,其余时cat即可、或者headless

  11. 可执行文件是绿色的。
  12. ping百度检查设备是否联网

    ping baidu.com
    
  13. tab提示很好用,单机或者双击的规则我已领悟。

  14. -h在Linux中是非常重要的一个参数,其在绝大多数情况下都表示显示计量单位,即可以以人可以读懂的方式去显示。如:

    ls -lh
    df -h		#查看磁盘使用情况
    du -h		#查看指定的目录(默认是当前目录)下的文件占用空间情况
    
  15. 清空或者截断文件

    > a.txt
    
    或者
    
    echo "" > a.txt
    
  16. 日常使用which来查询指令出处。

  17. 第三方软件安装应所在位置:/opt


二。基础操作

  1. ls指令

    ls -alh		#隐藏文件、长列表、方便阅读
    ls -R 	#递归子目录
    ls -r		#反序显示
    ls -S		#Size,以文件大小顺序输出
    ls -t		#按修改时间
    
    '注意
    -r:reverse
    -R:Recursive,常用于连续递归子目录
    

    • 第2列:硬链接数或者子目录数
    • 3/4:文件属主与属组
    • 5:文件大小(单位:字节),如果是文件夹则显示4096字节,文件则显示其内容的实际大小。
    • 6/7/8:最后修改日期
    • 9:文件名
  2. mkdir递归创建目录

    mkdir -p demo/1..100
    
  3. rmdir:仅能删除非空的目录。

  4. rm详解

    '技巧'
    rm -rf /tmp			#删除这个目录
    rm -rf /tmp/*		#删除这个目录下的所有文件,但不包括这个文件本身
    
  5. 文件查看汇总

    	cat		#	第一行开始查看文件
      tac		#	倒序
      nl		#	显示行号(相当cat -n)
      more	#
      less	#一页一页的显示,比more更好
      head	-5	#头
      tail	-10	#尾
    
  6. cat、tac详解

    • 优势:不会修改文件内容,安全。
    cat -n txt						'显示行号'
    cat a1 a2 a3 ...			'拼接文本'
    cat > a.txt						'等待输入,并且重定向至新文本'
    
    tac #反序cat
    
  7. head与tail

    head -5 txt
    tail -5 txt
    tail -f txt		'实时查看文件末尾'
    
  8. less指令

    • 优势:**动态加载。**more的升级版,less在显示文件内容时并不会整个加载,而是会根据显示需要加载动态加载,在打开大文件时具备无可比拟的优势。
    'less中查找文本'
    /abd		"向下查找
    ?abc		"向上查找
    n	下一条		N 上一条
    
  9. sort与uniq

    • uniq只能作用于连续且重复的行。
    ls -l | sort
    ls -l | sort -r 	#倒序
    
    sort a.txt | uniq -c				'-c为--count,统计重复行数
    
    uniq -d		#只输出重复行
    uniq -i		#忽略大小写
    
  10. cut详解

"参数:-f输出字段,-c输出范围字符"
ls -lh | cut -d " " -f 1 | cut -c 2-10
  1. awk详解
  • 代替cut(cut功能受限),但是远没有cut来的方便。
  • awk实际上是三位创始人的名字首字母。
  • awk只能使用单引号,支持C/C++的写法
'awk分割:以空格为分隔符( 连续空格都能算作一个 ),然后写awk表达式(支持C语言)

ls -lh | awk -F ' ' 'print $5,$9'
#或者
ls -lh | awk -F ' ' 'printf("%s\\t%s\\n",$5,$9)'
  1. dfdu磁盘查看

    df -h				'df查看整个系统'
    df -hl			'-l,将列表限制为本地文件系统
    
    du -a -h		'du查看当前文件夹、局部'
    du -h /home	'指定目录'
    
  2. free内存使用情况查看

    free -h			'-h人性化
    
  3. tree文件树显示

    yum -y istall tree
    tree /tmp
    
  4. ==\\==指令

    • 允许命令换行,人性化操作。
    ls -l \\
    -a
    
  5. cp复制

    • -u只更新、不复制重复的且同时间的项目,加快大文件复制
    cp 1.txt 2.txt
    -i		#交互,防止直接覆盖掉原有文件夹
    -u		#只更新,不复制重复的且同时间的项目--->加快大文件复制
    -r		#递归
    
  6. ln软、硬链接

    ln a b
    ln -s a b
    
  7. history

    history				#显示全部历史记录
    history 10		#只显示10条
    !2022					#执行第2022条记录
    !!						#执行上一条指令
    
  8. datecal

    date														#显示当前时间
    date "+%Y-%m-%d-%H-%M%-%S"			#显示指定时间
    date -s "9999-10-20"						#修改系统时间
    
    cal					#正常显示日历
    cal 2022		#显示年日历
    cal 10 2000	#月份在前
    
  9. which指令

    which ls
    
  10. findlocate(获取路径)

    • 区别:

      • find:基于硬盘查找,会从指定的目录向下递归遍历所有子目录,速度慢。

      • locate:基于数据库索引查找,需要事先执行数据库建立索引语句,速度较快。

    • 简单使用:

      find /home -name hello.txt		#正常查找
      find /home -name *.txt				#递归查找
      find /home -user thinkstu			#查找用户
      find /home -size +100M				#小于100MB
      find /home -size -100M				#大于100MB
      
      yum -y install mlocate
      updatedb
      locate xxx
      
    • 范例:

      find /etc -type d  	# 文件
      find /etc -type f 	# 文件夹
      find /etc -type l 	"但是其实grep确实也能实现这一点,方法多样"
      
      find / -type f -name "*.jpg" -size +1M |wc -l
      
      'find指令扩展:直接删除搜索出来的文件
      find find / -type f -name "*.jpg" -delete
      
      
    
    
  11. grep

    • 前景说明:常用来和cat进行管道的组合使用

    • 参数含义:

      -n		'结果显示行号
      -i		'忽略大小写
      -R 		'递归的在目录中查找
      -v		'只匹配不相符合的行
      
    • 范例:

      cat /tmp/1.txt | grep -in "yes"
      grep -in "yes" /tmp/1.txt
      
  12. alias别名、unalias取消别名

    alias								 #显示系统所有的别名
    alias custom='ls -l'
    
    • 持久化: /etc/profile
    • 常与type一起使用,查看具体的命令别名而不是全部的
  13. 立即关机

    sudo shutdown -h now
    
  14. wc统计

    • 输出文件中的行数、单词数、字节数
    cat 1.txt | sort | uniq | wc -l
    -l	#行数
    -w	#单词数
    -c	#字节数
    
  15. file确定文件类型

    file 具体文件			#事实上怕记也可以使用ls -l查看
    
  16. type显示指令类别

    • 如:shell内置的、还是alias别名定制的
    type ls
    
    [t@VM-4-3-centos man-pages-zh-CN-1.5.2]$ type ls
    ls is aliased to `ls --color=auto'
    
    [t@VM-4-3-centos man-pages-zh-CN-1.5.2]$ type man
    man is hashed (/bin/man)
    
    [t@VM-4-3-centos man-pages-zh-CN-1.5.2]$ type type
    type is a shell builtin
    
  17. uname显示系统信息

    uname -a		# 显示所有信息
    uname -r		# 显示系统内核版本
    
    [root@VM-4-3-centos]~# uname -r
    3.10.0-1160.59.1.el7.x86_64
    
  18. stat指令

    • 显示当前文件的所有信息和属性
    [root@VM-4-3-centos ~]$ stat index.html 
      File: ‘index.html’
      Size: 730             Blocks: 8          IO Block: 4096   regular file
    Device: fd01h/64769d    Inode: 397149      Links: 1
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2022-03-29 11:58:49.895527049 +0800
    Modify: 2022-03-29 11:58:49.062502555 +0800
    Change: 2022-03-29 11:58:49.062502555 +0800
     Birth: -
    
  19. netstat指令在网络配置中详解

  20. mount挂载、unmount卸载

mount 		#不加任何参数
'显示所有的挂载情况,包括硬盘、网卡、音箱等设备
'格式:device    on    mount_point    type   filesystem_type
  1. lsblk查看系统挂载情况
[root@004 ~]$ lsblk			'lsblk即:list block
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 159.1M  0 rom  
vda    253:0    0    80G  0 disk 
└─vda1 253:1    0    80G  0 part /
  1. fstab文件查看存储设备情况

    cat /etc/fstab
    
  2. top网络配置章节详细介绍。

  3. iotop查看io读写情况

    • 说明:io读写也是瓶颈,观察哪些用户正在疯狂的io,从而禁掉。

    • 动态显示( 默认未安装,故yum )

      yum -y install iotop
      
      iotop
      


三。基础概念

  1. 配置信息全部在/etc里

    • /etc/passwd 用户信息,密码用X代替;
    • /etc/shadow 用户密码所在地(加密了,可以破解,root用户才有权限访问)
    • /etc/group 用户组信息
  2. /boot与**/root**:注意区分这两个目录,它们不一样!

  3. Bash说明

    • GNU项目的产物,Shell程序。
    • 几乎所有的Linux发行版本均存在bash。
    • bash表示其是sh的加强版,而sh是最初编写的UNIX Shell程序。
  4. wildcard通配符

1. *:几乎全部,只不能匹配隐藏文件。
2. ?:单个字符
3. '匹配隐藏文件:.[!.]*
  1. 单引号、双引号规则:在单引号中,所有的转义字符会失效。

  2. /dev/null垃圾桶

    • 可以将不需要的输出全部重定向至这个文件中,神秘消失~
    • 俗称:bit bucket 位桶,Unix古老概念
    ls / &> /dev/null 
    
  3. Linux自带英文字典

    • locate:/usr/share/dict/words文件
    • 大小:4.8MB。
    "里面有47万个单词,一行一个。可用grep搜索"
    [root@VM-4-3-centos dict]$ cat words | wc -l
    479828
    
    "填字游戏"
    [root@VM-4-3-centos dict]$ cat words | grep '^..j.r$'
    Major
    major
    
  4. 系统字符集查看

    "查看字符集的两种方法"
    1. locale
    2. echo $LANG
    
    • locale的字面意思就是语言环境:字符集。
  5. 重定向标准错误

    • 前置知识:Linux的Shell中有三个文件描述符
    • 0、1、2:标准输入、输出、错误输出。
    #仅标准输出,两种写法
    ls /aaa > a.txt		
    ls /aaa 1> a.txt
    
    #仅重定向错误
    ls sasa 2> a.txt
    
    #同时输出,两种写法
    ls sasa > a.txt 2>&1
    ls sasa &> a.txt
    
  6. 系统版本信息查看

[root@VM-4-3-centos]~# cat /etc/os-release

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

四。安装软件

  1. centOS:三种方式

    • 解压缩( 模式:解压即安装 )
    • rpm手动安装
    • yum在线安装
  2. 前景说明:

    • yum是高层工具,rpm是低层工具。
    • yum与rpm都可以删除已安装的软件,效果一样
    • yum的帮助文档,直接yum --help或者yum -h
  3. rpm详解

    • 全称:redhat package management,行业标准而不只是redhat的专用;

      • 基本格式:bt-mysql56-5.6.50-1.el7.x86_64
        • 名称:bt-mysql56
        • 版本:5.6.50
        • 适用操作系统:1.el7.x86_64( 表示支持centos7.x的Intel—X86架构64位操作系统 ),如果是i386表示32位系统,noarch表示通用。
      • 安装说明:不会帮你自动下载并配置默认环境。

      • 参数说明:

        rpm -qa						"查询所有已安装软件
        rpm -q  gcc				'查询本地是否安装gcc。不比grep好用、容易导致误解、出错'
        #比 yum -info gcc 详细,更好
        rpm -qi	gcc				'查询软件包的具体信息,包括安装时间等
        rpm -ql	gcc				'查询软件包中的文件
        rpm -qf 文件路径		'查询该份文件隶属于哪一个软件
        
        #-e普通卸载,可能会被Linux阻止。卸载失败
        #--nodeps强制卸载
        rpm -e --nodeps gcc
        
        #-i_install安装,-v_verbose显示信息,-h_hash进度条
        rpm -ivh	rpm包
        
      • 范例:

        #安装JDK1.8
        1. '检查系统中是否存在jdk1.8,两种方式'
        rpm -qa | grep jdk
        
        1-1.	'存在即强制卸载'
        rpm -e --nodeps jdk名称		#强制卸载
        
        2. '前提:已经拿到jdk的rpm包、并且存储在系统里'
        rpm -ivh rpm包
        
    1. yum详解

      • 全称:Yellow dog Updater, Modified

      • 安装说明:会帮你自动下载并配置好所有的默认环境,省心安装。

      • 参数说明:

        yum makecache fast	'生成目录缓存,方便日后检索。每日系统自动更新一次'
        
        yum -y install gcc	'安装
        yum list | grep jdk	'列出所有可以安装的软件'
        yum check-update		'检查是否有'
        yum remove gcc			'卸载'
        yum update					'更新所有软件'
        yum update gcc			'更新gcc'
        # 不如 rpm -qi gcc 详细,没有安装日期等等
        yum info gcc				'查看具体信息'
        
      • 范例:

        yum -y install java-1.8.0-openjdk.x86_64
        

五。解压缩文件

  1. 常用tar,记住即可

    tar -zxvf file		#解压
    tar -zcvf	file		#压缩
    
  2. 其他指令

    1. gzip压缩、gunzip解压

      gzip 1.txt
      gunzip 1.txt.gz
      
    2. zip与unzip

      • 注意看其表达形式,不可改变!易错。
      • Linux有时没有为我们安装此,自行安装即可
      #安装unzip
      yum install -y unzip
      
      #压缩
      zip -r a.zip /home/think 
      压缩	递归压缩目录	压缩后的文件名	将要压缩的目录
      
      #解压
      unzip -d ./usr a.zip
      解压 指定解压到的文件目录 压缩包文件
      
    3. tar详解

      • tape archive,原本功能:磁带存档。

      • 前景说明:只提供打包、解包,没有解压缩功能。

      • 通过调用gzip实现解压缩功能。

      • 后缀:.tar.gz见名思意,先借助tar打包、然后利用gzip进行压缩。

      • 打包和压缩区分:

        • 打包是指将一大堆文件或目录变成一个总的文件;
        • 压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
      • 与其他指令的区别:其他指令只能针对某一文件进行解压缩,而不能同时针对不同地方的多份文件进行压缩。

      • 参数说明:

        tar -zxvf a.tar.gz
        
        -x		'解压文件,extract
        -c		'压缩文件,compress
        
        -z		#支持gzip解压文件
        -v		#显示操作过程,verbose
        -f		#指定压缩文件(理解:指定要解压的压缩文件名)
        

六。用户与用户组

  1. 查看用户信息

    id
    id 用户名
    
  2. 创建用户、删除用户

    useradd -m	-G 设置用户组				#-m自动创建用户的家目录
    
    userdel -r					#删除用户并且删除家文件  
    
  3. 修改用户密码

    passwd							#回车设置密码(普通用户权限)
    passwd 用户名				#回车设置用户密码(root权限)
    passwd -l 用户名			#lock,冻结某用户、暂时无法登陆。应用:离职期间
    
  4. 用户切换

    su 用户名
    
  5. 退出登录

    '退出账号'
    exit
    
    '退出Shell端'
    logout
    
  6. 创建、删除用户组(group的操作与useradd这系列的操作类似一样

    groupadd thinkstu
    groupdel thinkstu
    
  7. 修改用户所在组

    usermod -g 组 用户名		#修改用户所在组
    
  8. 直接修改文件或者目录属组

    chgrp think组 1.txt
    
  9. 为用户赋予新的家目录

    '只能用root用户设置,因为在设置的时候该用户不能登录
    usermod -d 目录名 用户名
    
  10. 思想:

  • Linux中,所有的用户都必须存在于一个组中,用户不能独立于组而存在。
  • 某文件在创建时所归属于的组—>取决于创建者所在的组
  1. 修改文件所有者

    chown thinkstu 1.txt
    
  2. rwx权限详解

    1. 权限排序:文件所有者、文件所在组、其他人。

    2. 作用在文件

      • r :可读取该文件

      • w :可修改该文件,但是并不能删除该文件。

           删除该文件的前提是对该文件所在的目录拥有w写的权限。
        
      • x :可执行该程序

    3. 作用在目录

      • r : 可读,可以使用ls查看该目录结构
      • w :可以对目录里的内容进行修改。—>如:创建、删除、重命名该目录或其他目录内的文件
      • x :可执行,表示可以进入该目录。
    4. Summary

      • 如果想要对目录内的文件进行操作,那么首先要有针对目录的相应权限才行!
      • 目录的只读访问不允许使用cd进入目录,必须要有执行的权限才能进入。
      • 只有执行权限只能进入目录,不能 ls 看到目录下的内容,要想看到目录下的文件名和目录名,需要可读权限。
      • 一个文件能不能被删除,主要看该文件所在的目录对用户是否具有写权限,如果目录对用户没有写权限,则该目录下的所有文件都不能被删除,文件所有者除外
      • 目录的w位不设置,即使你拥有目录中某文件的w权限也不能写该文件

七。环境配置

  1. 检查环境配置

    1. set:显示Shell变量+环境变量

    2. printenv:只显示环境变量

    3. alias:别名( 以上两者均无法查看别名,只有它可以

      set					#全部
      printenv		#全部
      alias				#全部
      
  2. 常见变量

    echo $PATH
    echo $PS1
    echo $LANG		'输出服务器字符集'
    
  3. 前提说明:Shell程序在启动时会自动加载并读取一系列配置文件(用户登录操作并不会)。

  4. 配置文件读取规则

    • **登录Shell会话:**非图形界面登录。

      "全局变量"
      /etc/profile
      as
      "用户变量"
      123 为只要前面一个存在,则后面的就不会被读取;
      ~/.bash_profile		1
      ~/.bash_login			2
      ~/.profile				3
      
    • **非登录Shell会话:**利用图形界面进行登录。

      "全局变量"
      /etc/bash.bashrc
      
      "用户变量"
      ~/.bashrc
      
    • 特例:~/.bashrc文件,无论启动方式如何,总会被执行( 但其只是用户自定义变量 )。

  5. export命令含义:告诉Shell,该环境变量的内容可用于Shell的子进程。

    export PATH=$PATH:~/bin
    
  6. 二月指示:以前我总是修改/etc/profile文件,直到我进去该文件中注意到这句话:

     System wide environment and startup programs, for login setup
     Functions and aliases go in /etc/bashrc
    
     It's NOT a good idea to change this file unless you know what you
     are doing. It's much better to create a custom.sh shell script in
     /etc/profile.d/ to make custom changes to your environment, as this
     will prevent the need for merging in future updates.
     
    ---------------------------'代码部分'---------------------------------
     i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
        if [ -r "$i" ]; then
            if [ "$-#*i" != "$-" ]; then
                . "$i"
            else
                . "$i" >/dev/null
            fi
        fi
    done
    
    • 意思即:官方更加推荐在==/etc/profile.d/目录下新建.sh==脚本。
    • 步骤:在/etc/profile.d/下新建shell脚本,然后刷新==/etc/profile==文件( 无需给定脚本执行权限 )
  7. 总结( 修改全局变量与用户变量 ):

    全局变量:

    • 优先:往/etc/profild.d目录下添加脚本文件.sh, 方便日后管理 。

    • 其次:修改/etc/profile文件本身。

    用户变量:

    • 优先:~/.bashrc文件,因为修改这不会导致一系列的文件优先权问题(但在mac下可能每次都需要 source手动更新,所以 mac推荐/.bash_profile)。
    • 其次:/.bash_profile(想要一定会生效的话),但这可能会导致/.bash_login、/.profile失效(如果存在的话)

    最后记得,都要刷新配置文件~


八。网络

  1. ip指令详解

    "过时:已不再维护"
    ifconfig
    
    "现代"
    1   ip a
    2		ip addr
    3		ip -c a
    
    • ip指令取代ifconfig。

    • ip指令的正确使用方式

    "全部在《man ip》手册里,具体要配什么怎么配注意查看即可,真就还不如学会如何看手册,比这方便"
    
    ip a	#a是addr的缩写,所以可以直接用a
    -------------------------------------
    SYNOPSIS
           ip [ OPTIONS ] OBJECT  COMMAND | help 
           OBJECT :=  link | address | addrlabel | route | rule | neigh | ntable | tunnel | tuntap | mad‐dress | mroute | mrule | monitor | xfrm | netns | l2tp | tcp_metrics | token | macsec 
           OPTIONS :=  -V[ersion] | -h[uman-readable] | -s[tatistics] | -d[etails] | -r[esolve] | -iec |-f[amily]  inet | inet6 | ipx | dnet | link  | -4 | -6 | -I | -D | -B | -0 | -l[oops] maximum-addr-flush-attempts  | -o[neline] | -rc[vbuf] [size] | -t[imestamp] | -ts[hort] |-n[etns] name | -a[ll] | -c[olor] 
    
  2. ping指令详解

    • 作用:

      • ping百度:检查网络连通性

      • 检测双方网络的通畅性。

    • 使用说明:

      • 默认1秒发送一次包,Linux平台默认持续 ping,win平台一般 ping 4次即结束。

      • 在按下ctrl+c快捷键中断继续发送的请求之后,命令行会返回本次网络请求的统计信息。

      [root@VM-4-3-centos test]]$ping thinkstu.com
      PING thinkstu.com (39.107.99.33) 56(84) bytes of data.
      64 bytes from 39.107.99.33 : icmp_seq=3 ttl=51 time=37.6 ms
      64 bytes from 39.107.99.33 : icmp_seq=4 ttl=51 time=37.7 ms
      ^C
      
      --- thinkstu.com ping statistics ---
      2 packets transmitted, 2 received, 0% packet loss, time 3001ms
      rtt min/avg/max/mdev = 37.679/37.793/38.090/0.219 ms
      
      • ttl(Time To Live)的含义:该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。当 ttl = 0 时,该数据包就会被路由器丢弃,这样就防止了幽灵数据在网络中一直循环(浪费互联网资源)的情况。

        1. 查看初始值:ping本身 ip地址,一般 Linux是64,win是128。
        ping localhost
        
        64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.082 ms
        
        1. 查看其他网站
        ping thinkstu.com
        64 bytes from 39.107.99.33: icmp_seq=0 ttl=48 time=64.576 ms
        
        # 此处表明经过了 64 - 48 =16 层网关。
        
  3. traceroutetracepath追逐网络请求链条( 抓包 )

    #范例,两者差不多
    traceroute baidu.com
    tracepath baidu.com
    
  4. netstat指令详解

    • 全称:network statistic网络统计,检查网络设置和统计网络信息。用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

    • 应用:

      '输出有点长'
      netstat	| less
      netstat -an		#按照一定顺序输出
      netstat -p		#附加显示进程号
      netstat -pan
      
    • 案例

      #查找80端口
      netstat -pan | grep :80
      
      #我之前使用过另外一种方法
      lsof -i :80
      
    • 额外说明:Linux以上两种方案均可,但是Mac中 isof 或许是最佳方案!

  5. ftp指令