Juntao Tan的个人博客

争取为中文互联网留下点什么。


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

Linux 学习记录:history 查看历史命令列表

发表于 2020-07-14 | 更新于: 2020-07-14 | 分类于 Linux
字数统计: 776 | 阅读时长 ≈ 3

history 命令能够查询到我们之前在 bash 里面输入的指令历史,这些指令一般存放在 HOME 目录下的 .bash_history 文件里,这个文件里面存放多少条指令记录,与环境变量 $HISTSIZE 有关,一般在 Ubuntu 等发行版中,这个值是 1000 。

history 命令的工作方式是这样的:当我们登录到 Linux 主机后,bash 首先会读取 .bash_history 文件,将里面的存放的所有命令历史(一般为 1000 条)读入到内存当中,这样,我们就能输入 history 查看这次登录以前所输入的所有命令。

我们在本次登录下所输入的所有命令,在我们退出之前是不会被写入到 .bash_history 文件的,也就是说,只有我们推出本次登录,这次登录里所输入的所有指令才会被写入到该文件。在我们没退出登录之前,.bash_history 文件的内容是不会变动的。

但是,我们在登录过程中所输入的所有指令,使用 history 命令是能够查看到的,因为这些命令都存在内存当中,而不是从文件中读取到的。

下面举个例子具体说明下。

阅读全文 »

Linux 学习记录:grep 命令使用方法

发表于 2020-05-29 | 更新于: 2020-06-05 | 分类于 Linux
字数统计: 1.1k | 阅读时长 ≈ 4

这篇文章总结下 grep 命令的常用方法。

1. 需求背景

平时在使用 Linux 过程中,总会遇到需要搜索某个字符串的场景:

  • 搜索某个字符串是否出现在指定文件中;
  • 利用管道重定向,搜索 ls 、cat 等命令的输出中是否包含某个字符串;
  • 递归搜索某个工程目录下的所有文件中,是否包含某个字符串。

grep 无疑是很好用且功能强大的工具之一。

2. 使用方法

grep 的搜索是按行进行的,即:每次扫描一行,如果该行中包含指定的字符串,那么该行会被输出。

阅读全文 »

Linux 学习记录:统计文件和目录的个数

发表于 2020-05-26 | 更新于: 2020-05-26 | 分类于 Linux
字数统计: 841 | 阅读时长 ≈ 3

这篇文章总结下 Linux 下如何统计某个目录下面总共有多少个文件或文件夹。

1. 背景

平时在 Linux 下工作,我们可能经常会碰到这种场景,即需要统计某个目录下总共有多少个文件,或者多少个子文件夹。这时候,熟练的使用一些命令将会有助于你开展工作。

注:下问的命令需要有足够权限执行,否则碰到有些文件不能读取(权限不足)的情况,将会造成统计出错。

2. 使用 ls 和 wc 命令

ls 命令有一个参数是 -l ,表示列举出文件的详细信息:

阅读全文 »

Linux 学习记录:jq 处理 json

发表于 2020-05-25 | 更新于: 2020-05-25 | 分类于 Linux
字数统计: 2k | 阅读时长 ≈ 8

这篇文章总结下 Linux 下如何在 shell 中利用 jq 处理 json 数据。

1. 背景

最近项目上需要利用政府数据做些分析,但是深圳市政府提供的 API,请求的数据都是分页的,通过 curl 每次只能请求一部分数据,但是我们的应用需要利用所有的数据,所以得将每次请求的 分片数据 整合起来。

又因为 API 返回的数据是 json 格式的,所以得需要在 shell 中处理 json。

于是想起了之前在 Github 上遇到的项目:the art of command line,里面介绍到了一个工具 jq,专门用来在 shell 里面处理 json 数据。于是专门学习了下其使用方法,在这篇文章中作个总结。

2. jq 的使用方法

2.1 准备工作

阅读全文 »

Linux 学习记录:su 和 sudo

发表于 2020-05-23 | 更新于: 2020-05-24 | 分类于 Linux
字数统计: 3.3k | 阅读时长 ≈ 13

之前一直对 su 和 sudo 这两个命令犯迷糊,最近专门搜了这方面的资料,总算是把两者的关系以及用法搞清楚了,这篇文章来系统总结一下。

1. 准备工作

因为本篇博客中涉及到用户切换,所以我需要提前准备好几个测试用户,方便后续切换。

Linux 中新建用户的命令是 useradd ,一般系统中这个命令对应的路径都在 PATH 环境变量里,如果直接输入 useradd 不管用的话,就用绝对路径名的方式:/usr/sbin/useradd 。

useradd 新建用户命令只有 root 用户才能执行,我们先从普通用户 ubuntu 切换到 root 用户(如何切换后文会介绍):

阅读全文 »

Linux 学习记录:tree 显示树形目录结构

发表于 2020-05-13 | 更新于: 2020-05-14 | 分类于 Linux
字数统计: 676 | 阅读时长 ≈ 2

这篇文章总结下 Linux 和 Windows 中 tree 命令的常用使用方法。

1. 背景

有时候在进行工程项目展示时,需要提供目录结构,这时候最方便的一种展示形式是 树形结构 ,tree 命令就是帮助我们实现这个功能的。

2. 使用方法

2.1 在 Windows 上使用

Windows 上 tree 命令的参数很少,使用起来较为简单。

主要有两个参数(大小写不敏感),注意不是 -f / -a 的格式:

  • /f : 显示当前目录下所有的文件,包括目录名和文件名;
  • /a : 只显示当前目录下的所有目录名,即:当前目录的子目录、子目录的子目录…….,不会显示任何一个目录中的文件名。注:这里的 /a 参数不是 /all 的意思。

下面来看具体的例子。

阅读全文 »

version 大全

发表于 2020-05-07 | 更新于: 2020-08-22 | 分类于 杂
字数统计: 637 | 阅读时长 ≈ 3

这篇文章总结下一些常用的 系统 或者 软件 如何查看其版本号,方便后续查阅。

注:如果没有特殊说明,输入的命令在 Windows 下和 Linux 下都有效。

Windows 系统版本

在 CMD 中输入:

1
ver

我的笔记本是 win10 系统,输出为:

1
2
3
C:\Users\tanjuntao>ver

Microsoft Windows [版本 10.0.18363.778]
阅读全文 »

P/NP/NP-Complete/NP-Hard 问题的理解

发表于 2020-04-30 | 更新于: 2020-07-05 | 分类于 算法
字数统计: 406 | 阅读时长 ≈ 1

几种问题的定义如下:

问题类型 多项式时间可解 多项式时间可验证解的正确性
P YES YES
NP uncertain YES
NP-Complete uncertain YES
NP-Hard uncertain or NO YES or NO

咋一看觉得 NP 问题和 NP-Complete 问题是一样的,两者的共同点都是:

  • 依据目前的研究进展,还无法断定这两类问题能否在多项式时间内可解;
  • 都可以在多项式时间内验证一个解是否正确。

其实,从集合的角度看,NP-Complete 类问题是 NP 类问题的一个子集,即:所有 NP-Complete 的问题都是 NP 问题,但不是所有的 NP 问题都是 NP-Complete 的。

NP-Complete 问题的完整定义是:所有的 NP 类问题都可以在 多项式时间 内 归约 到这个问题,那么这个问题就是 NP-Complete 的。

======待续======

下面一张 韦恩图 表示了上面几种问题之间的关系:

注意 YouTube 视频下面一个搞笑的段子

一定需要说明清楚:NP 问题面对的都是 decision problems,但是 NP-Hard 问题面对的可能不是简单的 decision problems,所以说 NP-hard 问题一般会更难。

只要 NPC 中的任何一个问题被解决了,那么所有的 NP 问题都将在多项式时间内解决掉。

NP 问题是包含 P 类问题的。

NP 问题中还要一些问题,不知道它们能不能在多项式时间内得到 solution,但是 NP 问题一定能在多项式时间内去 verify 这个 solution 是不是正确的。

Google 高级搜索

发表于 2020-04-10 | 更新于: 2020-04-14 | 分类于 杂
字数统计: 1.4k | 阅读时长 ≈ 5

这篇文章总结下 Google 一些高级搜索方法。

1. 背景需求

因女朋友做翻译训练,有时候需要知道一些词组如何搭配,普通的搜索满足不了需求,需要用到 Google 高级搜索,于是向我求助。我也借这个机会学习了下如何使用 Google 的高级搜索,发现有些功能确实很实用也很方便使用。所以打算单独写一篇文章总结下,方便后续查阅。

2. 高级搜索技巧

2.1 site

site 命令后面跟某一个具体的网站地址,表示只单独查找这个网站的内容,使用很简单。

举个例子:我需要在 time.com 上查找 coronavirus 相关的报道,可以这样做:

1
coronavirus site:time.com

site 命令在搜索关键字 coronavirus 的前面还是后面不影响搜索结果。

也就是说:

1
site:time.com coronavirus

的效果一样。

搜索结果:

阅读全文 »

Linux学习记录:ps命令以及和grep配合使用

发表于 2020-03-29 | 更新于: 2020-03-30 | 分类于 Linux
字数统计: 1.5k | 阅读时长 ≈ 6

这篇文章来总结下 Linux 中 ps 命令的常见使用方法,以及如何配合 grep 命令来查找特定的进程。

1. 需求背景

在多人共用 GPU 的服务器上,我们经常使用 nvidia-smi 命令来查看当前 GPU 的占用情况,该命令会列出在哪块 GPU 上有进程在运行,以及该进程的 PID 。下面是一个例子:

1
2
3
4
5
6
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 1 22244 C python3 7719MiB |
+-----------------------------------------------------------------------------+

光知道进程的 PID 还不够,有时候我们还想知道这个进程相关的 user 、start time 、CMD 等相关信息,这时候就需要用到 ps 命令和 grep 命令了。

阅读全文 »
123…6
Juntao Tan

Juntao Tan

记录一些重要的技术点,方便自己查阅,也希望能够帮助到大家。

60 日志
6 分类
87 标签
GitHub LinkedIn Zhihu Douban E-Mail
0%
© 2019 — 2022 Juntao Tan, all rights reserved. | Site words total count: 50.9k
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4
本站总访问量 次 | 有 人看过我的博客
Hosted by GitHub Pages