程序员常用的10个Linux命令

2023-11-04

本文将为开发者分享10个有用的Linux命令,希望对你会有所帮助。

以下就是今天我们要介绍的Linux命令:

man

touch, cat and less

sort and grep

cut

sed

tar

find

diff

uniq

chmod

1、man命令

第一个你需要知道的Linux命令就是man命令,该命令可以显示指定命令的用法和描述。比如你想知道ls命令的用法和选项,可以在终端执行“man ls”:

语法: man <command name>

man ls

root@devopscube:~# man ls

LS(1)                            User Commands                           LS(1)

NAME

ls - list directory contents

SYNOPSIS

ls [OPTION]... [FILE]...

DESCRIPTION

List  information  about  the FILEs (the current directory by default).

Sort entries alphabetically if none of -cftuvSUX nor --sort  is  speciâ

fied.

Mandatory  arguments  to  long  options are mandatory for short options

too.

-a, --all

do not ignore entries starting with .

2、touch,cat和less命令

touch命令可以在Linux系统中创建大小为0的任意类型文件,作为程序开发者,当你需要在Linux服务器上创建文件时,可以使用touch命令:

语法: touch <filename>

touch demo.txt

root@devopscube:~# touch demo.txt

root@devopscube:~# ls

demo.txt

cat命令用来查看文件的内容,但是使用cat命令并不能编辑文件的内容,它仅仅是可以浏览文件内容。cat命令不支持键盘上下键翻页。

语法: cat <filename>

cat demo.txt

同样的less命令也可以让你浏览文件,less命令非常快,并且支持上下键查看文件的开头和末尾。然而more命令和它类似,只是more命令只能用enter键实现文件的向前翻页,不支持回退。

语法: less <filename>

more <filename>

less demo.txt

more demo.txt

3、sort和grep命令

sort命令用来对文件内容进行排序。创建一个名为test.txt的文件,并且把以下内容拷贝到该文件中:

1 mike level intermediate jan

10 lucy level beginer mar

45 Dave level expert dec

4 dennis start beginner jul

7 Megan employee trainee feb

58 Mathew Head CEO nov

上面的例子中,第二列是名称,所以如果你想对名称列按字母排序,就可以使用“-k”选项,并标注列号,比如“-k2”:

语法: sort
sort -k2 test.txt

排序结果

root@devopscube:~# sort -k2 test.txt

45 Dave level expert dec

4 dennis start beginner jul

10 lucy level beginer mar

58 Mathew Head CEO nov

7 Megan employee trainee feb

1 mike level intermediate jan

第一列是数字,如果你想按数字排序,可以使用“-h”选项。如果数字在不同列上,你可以在“-h”选项后使用“-k”选项:

root@devopscube:~# sort -h test.txt

1 mike level intermediate jan

4 dennis start beginner jul

7 Megan employee trainee feb

10 lucy level beginer mar

45 Dave level expert dec

58 Mathew Head CEO nov

最后一列是月份,你可以使用“-M”选项来让文件内容按月份排序:

root@devopscube:~# sort -k5 -M test.txt

1 mike level intermediate jan

7 Megan employee trainee feb

10 lucy level beginer mar

4 dennis start beginner jul

58 Mathew Head CEO nov

45 Dave level expert dec

注:如果你想消除重复的行,可以在sort命令后使用“-u”选项。

使用“-r”选项,是文件倒序排列:

root@devopscube:~# sort -h -r test.txt

58 Mathew Head CEO nov

45 Dave level expert dec

10 lucy level beginer mar

7 Megan employee trainee feb

4 dennis start beginner jul

1 mike level intermediate jan

Grep命令:

Grep命令非常强大,系统管理员经常会用到它。grep命令可以在文件中搜索指定格式的字符串,同时对其进行标准输出。

语法: grep "<search string>" <filename> 
        grep "Mathew" test.txt

root@devopscube:~# grep "dennis" test.txt

4 dennis start beginner jul

上面命令的输出结果是包含该子字符串的,如果你想检索完整的单词,你需要添加“-i”选项。同时,也可以用grep命令在多个文件中搜索字符串,命令代码如下:

while(!game_over)
{
    for each possible move:
        count_no_of_merges_for_2-tiles and 4-tiles
    choose the move with large number of merges
}
grep "dennis" test1.txt test2.txt test3.txt

当然你也可以用正则表达式来匹配字符串。

4、cut命令

cut命令可以让你用列或者分隔符提取文件中的指定部分。如果你要列出文件中某列的全部内容,可以使用“-c”选项。例如,下面将从test.txt文件中提取第1、2列的全部内容。

cut -c1-2 test.txt

root@devopscube:~# cut -c1-2 test.txt

1

10

45

4

7

58

如果你希望从文件中提取指定的字符串,那么你可以使用分隔符选项“-d”和“-f”选项选中列。例如,我们可以利用cut命令提取names列:

cut -d' ' -f2 test.txt

root@devopscube:~# cut -d' ' -f2 test.txt

mike

lucy

Dave

dennis

Megan

Mathew

下面的例子从/etc/passd file中提取users列:

cut -d':' -f1 /etc/passwd

5、sed命令

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。

如果你想通过搜索替换文件中的指定内容,你可以使用“s”选项来检索到它然后将它替换。

语法: sed 's/<old-word>/<new-word>/' test.txt

例如,在test.txt文件中用“michael”替换“mike”:

sed 's/mike/michael/' test.txt

root@devopscube:~# sed 's/mike/michael/' test.txt

1 michael level intermediate jan

10 lucy level beginer mar

45 Dave level expert dec

4 dennis start beginner jul

7 Megan employee trainee feb

58 Mathew Head CEO nov

6、tar命令

tar命令用来压缩和解压缩文件,其中经常会用到“-cf”和“-xf”选项。

语法: tar <options> <archive-name> <file/folder name>

让我们将test.txt文件打包:

tar -cf test.tar test.txt

root@devopscube:~# tar -cf test.tar test.txt

root@devopscube:~# ls

test.tar  test.txt

用“-C”选项将刚才打包好的test.tar文件解压缩至“demo”目录:

tar -xf test.tar -C /root/demo/

root@devopscube:~# tar -xf test.tar -C /root/demo/

root@devopscube:~# cd demo/

root@devopscube:~/demo# ls

test.txt

7、find命令

find命令用来检索文件,可以用“-name”选项来检索指定名称的文件:

find -name  find -name test.txt

root@devopscube:/home/ubuntu# cd ~

root@devopscube:~# find -name test.txt

./demo/test.txt

./test.txt

你也可以用“/ -name”来检索指定名称的文件夹:

find / -name passwd

root@devopscube:~# find / -name passwd

/etc/cron.daily/passwd

/etc/pam.d/passwd

/etc/passwd

/usr/share/lintian/overrides/passwd

8、diff命令

diff命令用来找出2个文件的不同点。diff命令通过分析文件内容,然后将不同的行打印出来,下面的例子可以找出两个文件test和test1的不同点:

语法: diff <filename1> <filename2>
        diff test.txt test1.txt

root@devopscube:~# diff test.txt test1.txt

7c7

< 59 sdfsd

---

> 59 sdfsd  CTO dec

9、Uniq命令

uniq命令用来过滤文件中的重复行:

语法: uniq 
uniq test.txt

root@devopscube:~# uniq test.txt

1 mike level intermediate jan

10 lucy level beginer mar

45 Dave level expert dec

4 dennis start beginner jul

7 Megan employee trainee feb

58 Mathew Head CEO nov

10、chmod命令

chmod命令用来改变文件的读/写/执行权限,权限数值如下所示:

4 - read permission

2 - write permission

1 - execute permission

0 - no permission

下面的命令可以给test.txt文件赋最高的权限:

chmod 755 test.txt
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

程序员常用的10个Linux命令 的相关文章

  • Spring Batch 多线程 - 如何使每个线程读取唯一的记录?

    这个问题在很多论坛上都被问过很多次了 但我没有看到适合我的答案 我正在尝试在我的 Spring Batch 实现中实现多线程步骤 有一个包含 100k 条记录的临时表 想要在 10 个线程中处理它 每个线程的提交间隔为 300 因此在任何时
  • 为什么 i++ 不是原子的?

    Why is i Java 中不是原子的 为了更深入地了解 Java 我尝试计算线程中循环的执行频率 所以我用了一个 private static int total 0 在主课中 我有两个线程 主题 1 打印System out prin
  • Play框架运行应用程序问题

    每当我尝试运行使用以下命令创建的新 Web 应用程序时 我都会收到以下错误Play http www playframework org Error occurred during initialization of VM Could no
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 列出jshell中所有活动的方法

    是否有任何命令可以打印当前 jshell 会话中所有新创建的方法 类似的东西 list但仅适用于方法 您正在寻找命令 methods all 它会打印所有方法 包括启动 JShell 时添加的方法 以及失败 被覆盖或删除的方法 对于您声明的
  • 路径中 File.separator 和斜杠之间的区别

    使用有什么区别File separator和一个正常的 在 Java 路径字符串中 与双反斜杠相反 平台独立性似乎不是原因 因为两个版本都可以在 Windows 和 Unix 下运行 public class SlashTest Test
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 加密 JBoss 配置中的敏感信息

    JBoss 中的标准数据源配置要求数据库用户的用户名和密码位于 xxx ds xml 文件中 如果我将数据源定义为 c3p0 mbean 我会遇到同样的问题 是否有标准方法来加密用户和密码 保存密钥的好地方是什么 这当然也与 tomcat
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 如何在控制器、服务和存储库模式中使用 DTO

    我正在遵循控制器 服务和存储库模式 我只是想知道 DTO 在哪里出现 控制器应该只接收 DTO 吗 我的理解是您不希望外界了解底层域模型 从领域模型到 DTO 的转换应该发生在控制器层还是服务层 在今天使用 Spring MVC 和交互式
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 静态变量的线程安全

    class ABC implements Runnable private static int a private static int b public void run 我有一个如上所述的 Java 类 我有这个类的多个线程 在里面r
  • Firebase 添加新节点

    如何将这些节点放入用户节点中 并创建另一个节点来存储帖子 我的数据库参考 databaseReference child user getUid setValue userInformations 您需要使用以下代码 databaseRef
  • 当我从 Netbeans 创建 Derby 数据库时,它存储在哪里?

    当我从 netbeans 创建 Derby 数据库时 它存储在哪里 如何将它与项目的其余部分合并到一个文件夹中 右键单击Databases gt JavaDB in the Service查看并选择Properties This will
  • 如何修复 JNLP 应用程序中的“缺少代码库、权限和应用程序名称清单属性”?

    随着最近的 Java 更新 许多人都遇到了缺少 Java Web Start 应用程序的问题Codebase Permissions and Application name体现属性 尽管有资源可以帮助您完成此任务 但我找不到任何资源综合的
  • java.lang.IllegalStateException:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Similiar 不回答

    尝试学习 Selenium 我打开了类似的问题 但似乎没有任何帮助 我的代码 package seleniumPractice import org openqa selenium WebDriver import org openqa s

随机推荐

  • 网络安全这玩意儿真不建议一般人学...

    前言 作为一名5年网安工程师老菜鸟来说 我实在想不通 开发岗位那么多 为什么要来学网安 在这里怕是要给准备入坑的同学泼盆冷水了 网络安全这东西真不建议一般人学 基础确实很简单 是个人稍微认点真都能懂 这就是好多人说的网络安全简单 易懂 好学
  • iostat命令详解&指标分析

    Iostat iostat命令用于监视系统CPU和I O设备负载 常用方法 iostat x 1 12 检测系统的io状态 每一秒刷新一次 一共刷新12次 x该选项显示和io相关的扩展数据 还可以使用 k或者 m选项以按照kb或MB显示单位
  • FastDFS单机版环境搭建

    1 搭建环境 ubuntu 2 gcc g 编译器 ubuntu平台在线安装指令 1 apt get install gcc 2 apt get install g 3 apt get install build essential 4 a
  • 1.阅读《疯狂Java讲义》

    从2000年至今 Java语言一直是应用最广的开发语言 并拥有最广泛的开发人群 如今 java已经不再简单地是一门语言 它更像一个完整的体系 一个系统的开发平台 更甚至 它被延伸成一种开源精神 如何学习java 程序的作用是 解决问题 如果
  • C/C++命名规范-C语言基础

    这一篇文章想要介绍的是编写代码的时候业界比较常用的一些命名规范 以及个人平时的一些命名规范 涉及 驼峰命名法 下划线命名法 帕斯卡命名法 匈牙利命名法 的介绍和见解 属于C语言基础篇 持续更新 刚刚开始学习编程的时候 我的第一个老师便强调过
  • APP UI结构-首页功能点大集锦,很干很详细

    APP UI结构的系列的文章有一段时间没有更新了 因为最近在学一些新东西和看一些新书籍 适当的给自己充电也是为了更好的输出 言归正传 今天想跟大家聊的是和首页相关的一些内容 可能有些内容最近有的小伙伴已经更新过了 相信大家也看见了 比如导航
  • fisco bcos应用开发(一) springboot报错 Error reading resource

    问题描述 解决办法 原因 因为导出的项目没有sm这个文件夹 他去找去了 肯定找不到啊 这个问题当时卡了我一天 希望兄弟们能快速的解决 解决了来给我点赞 没解决算求了
  • 数字图象处理之二维码图像提取算法(六)

    整体的框图如下所示 Hough 变换是图像空间和参数空间之间的一种变换 利用点与线的对偶性 将原始图像空间的给定曲线变为参数空间的一个点 这样直线的检测就变为参数空间中峰值的检测 接下来来了解一下霍夫变换 可以证明 直角坐标系p 0中的一条
  • 简单排序--冒泡排序(一)

    冒泡排序算法运行起来非常缓慢 但在概念上它是排序算法中最简单的 因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法 使用冒泡排序对无序数据进行排序 如下图冒泡排序的执行过程如下 从数组的最左边开始 比较0号位置和1号位置的数字 如果左
  • 图像分类之花卉图像分类(二)数据预处理代码

    经过上一节数据增强 我们来说说数据预处理吧 首先我们要知道图片进入网络训练都是要统一大小格式的 所以我们需要对训练集和验证集的图片进行裁剪 让他们大小统一 注意测试集不用裁剪 我选择裁剪成了64 64的 没改源码的裁剪大小 其实图片大些识别
  • Win10启动Celery报错解决方案 Task handler raised error: ValueError: not enough values to unpack

    一 异常现象 Windows 在开发 Celery 异步任务 通过命令celery A celery task worker l info启动 Celery 服务后正常 但在使用 delay 调用任务时会出现以下报错信息 Task hand
  • 【Windows】网线直连实现两台电脑共享文件夹

    目录 前言 1 用网线连接两台电脑 1 1 查看是否连接成功 2 设置两台电脑的 IP 网络类型和工作组 2 1 设置 Win10 的 IP 2 2 查看 Win10 的 IP 2 3 再次设置 Win10 的网关 2 4 再次查看 Win
  • physx-3.4.1官方文档

    https docs nvidia com gameworks content gameworkslibrary physx guide Manual GeometryQueries html https documentation hel
  • ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memor

    在Docker容器中利用Pytorch训练模型的时候 出现了题目中的错误 ERROR Unexpected bus error encountered in worker This might be caused by insufficie
  • 【 AMEsim的安装教程】

    AMEsim的安装教程 AMEsim2021 1安装包百度网盘链接 链接 https pan baidu com s 1WwDbD1v7TGqxu6G0Nfm9Zw pwd gyg6 提取码 gyg6 1 下载完所有压缩包后 解压第一个压缩
  • MD5碰撞

    前言 在CTF中可以说是经常碰到md5加密了 一般都是进行强比较抑或是弱比较 考法非常多 但是万变不离其中 只要我们掌握了原理 一切问题便迎刃而解了 文章首发于 我的博客 格式可能比较清晰 有兴趣了解CTF中MD5碰撞的伙伴可以移步查看 简
  • Causal Inference

    文章目录 Standardization 非参数情况 Censoring 参数模型 Time varying 静态 IP weighting 无参数 Censoring 参数模型 censoring 条件下 V Time varying G
  • 计算二叉树的深度,结点的个数。

    计算二叉树的深度 结点的个数 算法5 5 计算二叉树的深度 结点的个数 include
  • 调用外部的搜索引擎(百度和Google)

    调用的百度和Google的代码如下
  • 程序员常用的10个Linux命令

    本文将为开发者分享10个有用的Linux命令 希望对你会有所帮助 以下就是今天我们要介绍的Linux命令 man touch cat and less sort and grep cut sed tar find diff uniq chm