标签 linux 下的文章

常规我们多数使用 ping 命令来检查网络延时, ping 命令是基于ICMP的请求应答报文来测量网络延时情况。ICMP处在网络层协议层, 某些场景下, ICMP 容易被防火墙阻止, 这样场景下 ping 工具就无法使用了。这种场景下, 需要使用TCP/UDP协议来测试三层网络的延时状态。

我们可以使用 tcpping 来进行网络延迟的测量, tcpping 是使用TCP协议的三次握手利用半开连接技术实现.比如想远端的80端口建立连接, 会先发送一个 TCP SYN 包, 如果远端的80端口正常, 将回复 TCP ACK 包, 否则将响应 TCP RST 包。因此 tcpping 可以定时通过 发送 SYN 包, 接收 ACKRST包来计算到远程主机的访问延时(RTT)。

tcptraceroute 软件已经实现了半开连接技术,tcpping依赖该软件来实现网络延迟的测量。

- 阅读剩余部分 -

我们在 Windows/Mac OSX经常会使用到回收站,大多数删除操作将文件或目录皆是移动到回收站, 而 Linux 对大多数用户来说更了解 rm 命令, rm 命令是直接将文件或目录直接从硬盘上擦出, 这样就带来一个问题, 如果快速操作错了呢? 想后悔, 可是文件或目录已经从硬盘被擦出,想恢复只能通过一些专业的恢复工具才能完成, 即使是专业的恢复工具,也不是100%能完整恢复.因此, 在 Linux 上使用 rm 命令是个高危操作, 必须非常谨慎. 如果 Linux 上有类似回收站的功能不是就更好了? 即使操作错了,我们还是可以从回收站中快速恢复.

Linux 图形环境,直接使用对应的文件浏览器操作文件或者目录, 对应信息删除时自动会放置到回收站中.

而对于命令行环境, 有比较多的方案, 比如 trash-cli / gio trash等.

trash-cli

trash-cli 是个python实现的命令行工具,用于实现回收站功能. 官方网站是 https://github.com/andreafrancia/trash-cli

删除文件或目录

trash-put example example.txt

- 阅读剩余部分 -

lsof 含义为 list open files, 可以列出所有被进程所打开的文件列表.在Linux上,一切皆文件, 硬件设备,包括 USB 设备皆是通过文件描述, 网络 socket 也为文件,目录也被描述为特殊类型的文件.因此我们在诊断问题或者调试的过程中,找到对应打开的文件信息将对我们的工作过程很有帮助.

lsof 常用一些命令如下:

  • lsof -h 展示快捷帮助文档
  • lsof fpath 列出所有打开fpath的文件
  • lsof -i 列出所有与网络有关的被打开文件
  • lsof -u {USER} 列出所有用户下被打开的文件
  • lsof -p {PID} 列出对应进程打开的所有文件
  • lsof +d {DIR} 列出所有{DIR}下打开的文件
  • lsof +D {DIR} 递归的列出所有{DIR}下打开的文件
  • lsof -c cmd 列出 cmd 命令打开的所有文件列表

- 阅读剩余部分 -

因为 Linux 环境的命令以及文档及其丰富,我们在介绍一个工具的使用过程中, 主要是希望了解这个命令主要是干什么的, 在什么场景下使用,常用的有哪些使用方式, 更多的信息根据需要逐步上 man page 上去查阅,在查阅 man page 的过程中, 要快速找到我们的目标, 结合man page 的快捷键将极大的提升我们的效率

  • f Page Down, 向下翻一页
  • b Page Up, 向上翻一页
  • h 显示 man 命令使用帮助信息
  • q 退出
  • /{pattern} 向前搜索
  • ?{pattern} 向后搜索
  • n 跳转到下一个搜索结果
  • N 跳转到上一个搜索结果

- 阅读剩余部分 -

Linux 是个多用户操作系统,在操作系统上,有非常多用户, 同时为了便于同类用户的管理,有一系列的用户组。每个用户,都有自己的名称和ID, 称为 uid。每个用户组同样也有其名称和ID,称为 gid。每个用户至少从属于一个用户组,每个用户皆从属于一个主组。各个 Linux 发行版默认的管理账户为 root, uid0.

展示用户基本信息

id 命令用于展示用户 uidgidgroups

root@server:~# id root 
uid=0(root) gid=0(root) groups=0(root)

- 阅读剩余部分 -

最新版本的 JDk 下载地址 https://www.oracle.com/technetwork/java/javase/downloads/index.html, 才发现, JDK已经12.0.2版本了, 我们用的大多数环境还是 JDK 8.
根据自己的环境下载对应的操作系统版本, 官方同时发布的有基于arm的,Linux x86/x86_64,Mac OS X x64, Solaris SPARC, Windows x86/x86_64.我们下载基于Linux x64的版本,https://download.oracle.com/otn/java/jdk/8u221-b11/230deb18db3e4014bb8e3e8324f81b43/jdk-8u221-linux-x64.tar.gz

安装

tar xf jdk-8u221-linux-x64.tar.gz -C /opt

一般将JDK安装到 /opt 或者 /usr/local 皆可.

- 阅读剩余部分 -

本地修改了一堆文件,没有git add到暂存区时, 如果需要撤销修改, 可以参考下述操作:

单个文件/文件夹

$ git checkout -- filename

所有文件/文件夹

$ git checkout .

本地新增了一堆文件,没有git add到暂存区, 如果需要去掉新增文件:

单个文件/文件夹

$ rm filename / rm dir -rf

所有文件/文件夹

$ git clean -xdf

- 阅读剩余部分 -

有时候我们想使用下远端的Linux环境的图形工具,这时候就需要SSH的 X11 Forward功能了, 开启该功能之前需要安装相关软件.

yum -y install ssh xauth xorg

或者

apt -y install ssh xauth xorg

接下来需要配置下 ssh server 文件 /etc/ssh/sshd_config, 开启 X11Forwarding 选项.

X11Forwarding yes

- 阅读剩余部分 -