linux 基础(1) 快速查询指令的用法

--help

几乎所有的指令,都可以使用--help选项进行查询。给命令使用--help选项,就会直接出现一段说明命令的文字。

> date --help
用法:date [选项]... [+格式]
 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
以给定<格式>字符串的形式显示当前时间,或者设置系统日期。

必选参数对长短选项同时适用。
  -d, --date=字符串          显示给定<字符串>描述的时间,而非“当前时间”
      --debug                对解析的日期添加注释,
                              对不规范的使用方式进行警告,并输出警告信息到
                              标准错误
  ……

给定的格式FORMAT 控制着输出,解释序列如下:

  %%    一个文字的 %
  %a    当前locale 的星期名缩写(例如: 日,代表星期日)
  ……

示例:
将 epoch(1970-01-01 UTC)以来的秒数转换为日期
  $ date --date='@2147483647'

  ……

GNU coreutils 在线帮助:<http://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告任何翻译错误
完整文档 <http://www.gnu.org/software/coreutils/date>
或者在本地使用:info '(coreutils) date invocation'

help 一般会给出用法(Usage)、选项说明和用法(Examples)等。

man

help 给出的用法往往不够全面,man 命令(取自单词 manual)可以给出更详细的说明。

输入man date,终端立刻进入了一个详细文档的浏览界面。

image

其中,界面下方显示了阅读进度。按下h显示快捷键提示,q退出 man 界面。Page UpPage Down可以快速翻页。

标题中的DATE(1)标注的命令的类型,不同数字对应如下:

数字 意义
1 普通指令
2 系统核心可调用的函数与工具
3 可调用的函数和函数库
4 设备文件
5 某些配置文件
6 游戏
7 惯例与协定的说明
8 系统管理员指令
9 kernel文件

在 man 界面里还可以便捷的进行字符串匹配查询。按下/在输入单词,就可以查找匹配的单词。按下n向下一个匹配的单词跳转。

man -f 和 whatis

man -f可以快速查询一个命令,得到一个命令和他的简介。whatisman -f是等效的。如man -f man

> man -f man
man (1)              - 系统参考手册的接口
man (7)              - macros to format man pages

这里有两个类型不同的 man,所以出现了两行。

man -k 和 apropos

man -kapropos是等效的,可以也用于查询有哪些命令。不过并不要求命令名完全匹配,也会从命令简介里搜取,所以在不记得命令全称时很好用。

info

info的性质和man相近,也用于查询命令手册。不同的是,这个命令将文档划分成多个部分,构成一个知识树,你可以在不同的节点之间跳转。输入info info
image

页面顶部的 Next 和 Up 表示上一页和下一页,输入n跳转到下一页,p跳转到上一页。将光标移动到 Menu 下方的链接处,按下enter进入子页面,输入u回到父节点。所有的节点构成一颗知识树,可以方便的跳转。

image

/usr/share/doc/

每一个做软件的人一定会做一份文档,但不一定会做官方的“线上说明文档”。本机上的软件还可以到/usr/share/doc/寻找丰富的文档。

本文转载于网络 如有侵权请联系删除

相关文章

  • 云存储硬核技术内幕——(16) 一蓑烟雨任平生,明月千里共婵娟

    上期说到,子虚发现,块存储虽然存取效率非常高,但有着难以规避的弱点:1、对部署环境要求高,需要网络时延在1ms以内;2、由于1,难以实现数据跨AZ甚至跨Region同步;3、难以实现数据的有效的版本管理;4、成本高;5、传输对加密的支持有缺陷;子虚好不容易等到方老师跪舔完客户,回到深南大道10000号,赶紧跑到方老师的座位……方老师正在看《云原生服务网格ISTIO》,笑着对子虚说:去读苏轼的词……宋代大文学家苏轼最有美感的两首词,一首是《定风波·莫听穿林打叶声》竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。另一首是《水调歌头·明月几时有》:“……人有悲欢离合,月有阴晴圆缺,此事古难全。但愿人长久,千里共婵娟。”子虚反复品味了这几句词,突然领悟了!对于静态网页元素、视频和图片等海量非结构化数据,用户的存储和访问需求为: 1、IP可达即可访问,对网络时延和抖动没有特别苛刻的要求;2、支持异地(跨Region)数据同步;3、支持文件的版本管理,对同一文件的不同版本可以进行归并;4、降低成本;5、支持加密传输;6、可以从文件的任意位置开始读写;也就是说,这种存储的访问,可以用苏轼的两句词形容:一蓑烟雨

  • linux之pkill命令

    可以按照进程名杀死进程,pkill命令可以按照进程名杀死进程。pkill和killall应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill来杀掉。命令语法pkill[选项][参数]命令选项-o:仅向找到的最小(起始)进程号发送信号;-n:仅向找到的最大(结束)进程号发送信号;-P:指定父进程号发送信号;-g:指定进程组;-t:指定开启进程的终端。命令参数进程名称:指定要查找的进程名称,同时也支持类似grep指令中的匹配模式。最常被使用的信号是:使用kill-l命令列出所有可用的信号。1(HUP):重新加载进程9(KILL):杀死进程15(TERM):完美地停止一个进程信号可以通过三种不同的方式来指定:使用一个信号序号(例如:-1)使用“SIG”前缀(例如:-SIGHUP)不使用“SIG”前缀(例如:-HUP)重新加载Nginx进程,你需要运行:>pkill-HUPnginx复制pkill使用正则表达式来匹配进程名称。这是一个好办法,在发送信号之前,先使用pgrep命令来打印匹配进程。例如,列出所有名称中包含ssh的进程:1039sshd 2257ssh-

  • 程序猿开发软件插件推荐

    程序猿开发软件插件推荐编程软件 JetBrains全家桶 JetBarins的全家桶操作都很类似,所以习惯其中一个之后熟悉起来soeasy,妈妈再也不用单心的学习了! 之后是我比较常用的:PyCharm,IntelliJIDEA,PhpStrom,WebStorm,Rider,Clion,GoLand. 我特别谢欢其中的代码重构的快捷键,还有就是自定义好的很多的常用前缀缩写,写代码不用太顺畅! 还有超多的操作被压缩在Alt+Enter里面,免去记忆特别多快捷键的烦恼,同时她的Alt+Enter里面的目录会很贴心的把你想要的放在前几个选项里面,十分方便操作. 同时比如说检查类型出错、参数是否为空之类的,不是完成代码功能的必要,所以平时自己携带的时候很容易忽略,但是JetBrains的全家桶在这类功能上提供了很方便的操作,甚至现在我在写这些语言的时候养成检查为空的习惯。(重点是免费的服务) VSCode 一个牛逼的编辑器,配上很多好用的插件可以当成一个多语言的IDE使用。好看又好用! 当然,插件类软件就避免不了需要好的插件才能获得更好的体验:前端类1、HTMLSnippets 这个极快的

  • 不要再用main方法测试代码性能了,用这款JDK自带工具

    作为软件开发人员,我们通常会写一些测试程序用来对比不同算法、不同工具的性能问题。而最常见的做法是写一个main方法,构造模拟场景进行并发测试。如果细心的朋友可能已经发现,每次测试结果误差很大,有时候测试出的结果甚至与事实相反。当然,这不排除是因为软硬件环境因素导致,但更多的可能是因为所使用测试方法自身有问题。比如,不同需要性能比较方法放到一个虚拟机里调用,有可能会互相影响,缺少预热的过程等。本文给大家推荐一款JDK9及以后自带的一款可用于软件基准测试的工具JMH(JavaMicrobenchmarkHarness)。JMH简介JMH是用于代码微基准测试的工具套件,主要是基于方法层面的基准测试,精度可以达到纳秒级。何谓MicroBenchmark呢?简单的来说就是基于方法层面的基准测试,精度可以达到微秒级。当你定位到热点方法,希望进一步优化方法性能的时候,就可以使用JMH对优化的结果进行量化的分析。这款工具是由Oracle内部实现JIT的作者所写。我们知道JIT(Java即时编译器)是将JVM优化的所有高效手段和技术都使用上的地方。可想而知,开发者比任何人都更加了解JVM和JIT对基准测

  • 还在重复写空指针检查代码?考虑使用 Optional 吧!

    一、前言如果要给Java所有异常弄个榜单,我会选择将NullPointerException放在榜首。这个异常潜伏在代码中,就像个遥控炸弹,不知道什么时候这个按钮会被突然按下(传入null对象)。还记得刚入行程序员的时候,三天两头碰到空指针异常引发的Bug,解决完一个,又在另一处碰到。那时候师兄就教我,不要相信任何『对象』,特别是别人给你的,这些地方都加上判断。于是代码通常为会变成下面这样:if(obj!=null){ //dosomething }复制有了这个防御之后,虽然不用再担心空指针异常,但是过多的判断语句使得代码变得臃肿。假设我们存在如下对象关系原本为了获取图中的name属性,原本一句代码就可以轻松完成。Staffstaff=..; staff.getDepartment().getCompany().getName();复制但是很不幸,为了代码的安全性,我们不得不加入空指针判断代码。Staffstaff=..; if(staff!=null){ Departmentdepartment=staff.getDepartment(); if(department!=null){

  • macOS上实现Qt应用程序做文件关联打开

    一、背景介绍用Qt开发的应用程序要实现文件关联,双击时用默认关联的程序打开文件,在Windows上这个功能非常容易实现。Windows应用程序在安装的时候可以在注册表中写入相关的键值对。打开文件的时候,WindowsExplorer会将文件完整的路径作为参数传递给关联的应用程序。这样就可以在启动程序后将这个文件作为目标进行处理。如上述代码所示,接着我们就可以在main函数的argv中获取到文件路径,完成文件的关联打开。但是在macOS上却不是这么做的。首先macOS上没有类似Windows注册表,不会写入这些信息;其次,macOS上常见的安装包格式pkg也不提供这些功能。那么,在macOS上我们应该怎么来实现这样的功能呢?我们马上来看看。首先,要实现双击用关联程序打开文件这个功能,要分两个步骤:(1)通过某种方式来声明我们的应用程序支持哪些文档类型;(2)要接收从窗口管理系统传递过来的文件路径。满足了这两点,才能正常实现目标功能。(1)文件格式关联声明在macOS上,每个应用程序里面都会包含一个info.plist文件。这个文件以XML格式来组织一些键值对。每个键值对都包含声明了一个特

  • 第二章:快速入门

    绝对值abs输出>>>myString='HelloWorld!' >>>printmyString HelloWorld! >>>myString 'HelloWorld!'复制_输出最后一个变量输入raw_input()>>>user=raw_input('Enterloginname:') Enterloginname:root >>>print'Yourloginis:’,user Yourloginis:root >>>num=raw_input('Nowenteranumber:') Nowenteranumber:2014 >>>print'Doublingyournumber:%d'%(int(num)*2) Doublingyournumber:4028复制帮助信息help()注释#运算符加减乘除(传统除法)浮点除法(四舍五入)乘方+

  • STM32学习笔记——USART

    STM32的USART组件支持异步、同步、单线半双工、多处理器、IrDA、LIN、SmartCard等模式,本文介绍的是异步即UART模式。 总线通信有三种模型:轮询、中断和DMA。DMA对我来说是陌生的内容,以后单独开篇细讲。 HAL HAL把寄存器组组织成组件,组件包含外设的各个寄存器。在USART这里,寄存器不足以描述外设的所有状态,HAL用handle来包装组件。一个handle包含指向组件的指针、初始化参数、状态、与其他组件的链接(如DMA)和内部状态等。 图源ST官方MOOC,打开之前注意调低音量。 USART的初始化除了USART本身的寄存器以外,还要设置GPIO的复用功能,这两项任务分别在stm32f4xx_hal_uart.c中的HAL_UART_Init和stm32f4xx_hal_msp.c的HAL_UART_MspInit中完成(MSP意为“MCUSpecificPackage”)。stm32f4xx_hal_uart.c中也定义了HAL_UART_MspInit,添加了weak属性(提供实现,允许被覆写)。 轮询 轮询是与中断相对的。对于发送,轮询是指写一

  • 技术团队:提升团队效能,从不做3件事开始

    团队的本质是杠杆。因为一个高效的团队,才会产生1+1>2的价值。 高效的团队,是每一个组织都期望拥有的,而提升团队的效能,各有各的不同,要根据具体的情况,来逐步的构建和探索合适的方式,一步步的才能达到一个理想的状态。 而损害一个团队的效能,则可能容易的多,几个不合适的行为,就可能将团队的效能拉到水平线之下,陷入低效的忙碌之中。 下面是3个常见的提升团队效能的行为,希望对你有启发哦。 不拉大群 数字化时代,各个组织办公都离不开钉钉,企微等IM系统,非常的方便及时。 当IM系统如果使用不当时,也会给团队效能带来负面的影响,譬如十分方便的拉群来说吧。 工作中无论什么事,大事还是小事,都先拉个群再说吧。 经常性的情况是这样的: 不知道为什么,你就被拉进了一个群中; 不知道为什么,某个群中有人在@你呢; IM上各种群的消息不断的闪现,你是看呢,还是不看呢? 不知道为什么,一个群中的人是越拉越多了呢? 特别是凡事一上来就拉大群的问题,是一个严重影响团队效能的现象,为什么这么说呢? 首先,事儿还没有眉目时,拉大群只会增加噪音,也会让事变的复杂起来; 第二,大群中的产生的大量信息,会影响进

  • CSS成长之路----知识点篇

    一,ul--li列表水平排列,切居中对齐   主要是利用Li标签中的display属性。设置为display:inline,使li纵向排布,且能够使用text-align:center;使其居中显示   HTML结构: 1<!DOCTYPEhtml> 2<htmllang="en"> 3<head> 4<metacharset="UTF-8"> 5<title>练习</title> 6</head> 7<body> 8<divid="bNav"class="bNav"> 9<ul> 10<li><ahref="index.aspx"title="Home">Home</a></li> 11<li>|</li> 12<li><ahref="info.aspx?info_id=8"title="AboutUs">AboutUs</a></li> 13&

  • uni动态更改原生导航栏按钮名称

    做的项目是多语言的,需要根据语言设置动态修改按钮名称。具体实现如下 //#ifdefAPP-PLUS letpages=getCurrentPages(); letpage=pages[pages.length-1]; letcurrentWebview=page.$getAppWebview(); lettitle=currentWebview.getStyle().titleNView; title.buttons[0].text='动态文本'; title.buttons[0].type='none'; title.buttons[0].onclick=()=>{ console.log("动态修改导航按钮文本");//注意,动态修改标题后原有的onNavigationBarButtonTap事件会失效,如要点击事件则在这 }; currentWebview.setStyle({ titleNView:title }); //#endif复制  

  • 关于nfs共享目录的使用技巧

    nfs客户端的使用 1.查看nfs服务器信息挂载信息 1)在客户端,要查看nfs服务器上有哪些共享目录 #showmount-enfs服务器ip 在客户端,要查看nfs服务器上有哪些客户端的目录被挂载 #showmount-anfs服务器ip 在客户端,查看客户端连接的所有共享目录 #showmount-dnfs服务器ip 2)在nfs端 直接输入命令即可 #showmount-e #showmount-a #showmount-d 如果出现报错信息,首先查看服务器nfs和portmap服务是否启动。再看是否被防火墙屏蔽掉了。 2.挂载nfs服务器上的共享目录 #mount-tnfs192.168.0.11:/home/test/mnt/ -t:指定挂载设备的文件类型(nfs是网络文件系统) 192.168.0.11:nfs服务器ip地址 /home/test:nfs服务器的共享目录 /mnt/:本地需要挂载的目录 如需卸载只需将mount改为umount即可. 3.启动时自动连接nfs服务器 如果想要在启动时自动连接nfs服务器上的共享目录,要编辑/etc/fstab文件。在文件中加

  • 2017.11.7总结

    今天的题很水,但是我还是挂了。 T1: 随便暴力, 线筛出所有质数,枚举两个质数预处理前缀和超过10^7就break。 T2: 分层spfa, 以每种拥有钥匙的情况分层, 每一次spfa一下,将状态穿上去。 比赛上我把层数和队列的数组开小了,只有95分。 T3: RP好,样例把我所有漏掉的情况都找出来了, 我以为可以水过,居然没有去改。 总分:100+95+80=275 心得: 一、检查数组是否开够,同时注意不用爆空间。

  • back键的几种使用方法

    主要的目的是按back键的时候,让程序能够退出。 实现思路: 1.捕获后退键被按了这个事件。         Java代码  @Override           public boolean onKeyDown(int keyCode, KeyEvent event)  {               if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {  

  • 【翻译】HOG, Histogram of Oriented Gradients / 方向梯度直方图 介绍

      本文翻译自 SATYAMALLICK 的"HistogramofOrientedGradients" 原文链接: https://www.learnopencv.com/histogram-of-oriented-gradients/ 翻译:coneypo   在这篇文章中,我们将会学习HOG(HistogramofOrientedGradients,方向梯度直方图)特征描述子 的详细内容。 我们将学习HOG算法是如何实现的,以及在OpenCv/MATLAB或者其他工具里面如何计算特征子。 这篇文章是我正在写的,关于ImageRecognition/图像识别和ObjectDetection/目标检测系列文章中的一部分。   很多事情看起来困难又神秘,但是你一旦花时间去了解,揭开神秘面纱,你就会发现神奇之处。 如果你是一个初学者,觉得计算机视觉又难又神秘,请记住一句话: 问:如何吃掉一个大象? 答:一口一口吃   什么是FeatureDesciptor/特征描述子 FeatureDesciptor/特

  • python+selenium自动化软件测试(第7章):Page Object模式

    什么是PageObjectModel模式PageObjects是selenium的一种测试设计模式,主要将每个页面看作是一个class。class的内容主要包括属性和方法,属性不难理解,就是这个页面中的元素对象,比如输入用户名的输入框,输入登陆密码的输入框,登陆按钮,这个页面的url等,而方法,主要是指这个页面可以提供的具体功能。为什么选择POM?我们先看一段简单的代码如下: fromseleniumimportwebdriver importtime driver=webdriver.Firefox() driver.implicitly_wait(30) #启动浏览器,访问百度 driver.get("http://www.baidu.com") #定位百度搜索框,并输入selenium driver.find_element_by_id("kw").send_keys("selenium") #定位百度一下按钮并单击进行搜索 driver.find_element_by_id("su").click() time.sleep(5) driver.quit()复制 这

  • Python简单应用--爬虫

    python爬虫获取QQ音乐和豆瓣的最新电影音乐名字 先上代码开源大家一起学习,代码如下: #!python2 #coding:utf-8 __author__='OldHarry' importurllib2 importos importre importjson importxlsxwriter importsys defaultencoding='utf-8' ifsys.getdefaultencoding()!=defaultencoding: reload(sys) sys.setdefaultencoding(defaultencoding) defgetHtml(url): send_headers={ 'User-Agent':'Mozilla/5.0(WindowsNT6.2;rv:16.0)Gecko/20100101Firefox/16.0', 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Connection':'keep-alive' } ur

  • QT-QMainWindow的菜单、工具栏、状态栏、浮动窗口、中心部件

     main.cpp #include"mainwindow.h" #include<QApplication> intmain(intargc,char*argv[]) { QApplicationa(argc,argv); MainWindoww; w.show(); returna.exec(); } 复制  mainwindow.h #ifndefMAINWINDOW_H #defineMAINWINDOW_H #include<QMainWindow> classMainWindow:publicQMainWindow { Q_OBJECT public: MainWindow(QWidget*parent=0); ~MainWindow(); }; #endif//MAINWINDOW_H 复制    mainwindow.cpp #include"mainwindow.h" #include<QMenuBar> #include<QToolBar> #in

  • Koa2学习(二)async/await

    Koa2学习(二)async/await koa2中用到了大量的async/await语法,要学习koa2框架,首先要好好理解async/await语法。 async/await顾名思义是一个异步等待的语法,是es7中为了实现用同步的方式写异步方法的一种新式语法。 async 我们再来看看async到底是一个什么语法: 普通的方法: functionsyncF(){ return'Iamasyncresult' } letsync_result=syncF() console.log(sync_result) 复制 结果: Iamasyncresult 复制 同步方法立即返回结果,大家都懂,就不解释了。 async的方法: async语法是一个加持在函数定义时的声明: asyncfunctionasyncF(){ return'Iamaasyncresult' } letasync_result=asyncF() console.log(async_result) 复制 结果: Promise{'IamaasyncSyncresult'} 复制 我们看到执行async的函数时,

  • Windows下Flume的安装

    flume(日志收集系统) Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。   1、安装JDK并配置环境变量2、下载Flume并解压到F盘3、进入到conf目录下4、重命名文件  把flume-conf.properties.template文件重命名为flume.conf5、复制一下代码到flume.conf中覆盖 #Namethecomponentsonthisagent a1.sources=r1 a1.sinks=k1 a1.channels=c1 #source a1.sources.r1.type=netcat a1.sources.r1.bind=localhost a1.sources.r1.port=44444 #sink a1.sinks.k1.type=logger #channel a1.channels.c1.type=memory a1.chan

  • 《Java多线程编程核心技术》笔记

    同步自https://gitee.com/Corvey/note 第一章Java多线程技能 使用多线程时,代码的运行结果于代码执行顺序或调用顺序无关。 interrupted()为Thread的静态方法,用于测试当前线程(即执行该方法的线程)是否已经是中断状态,执行后将清除中断状态的标志。 isInterrupted()为非静态方法,用于测试线程对象是否已经是中断状态,但不清楚状态标志。 线程在sleep状态下interrupt的话,会在run()中抛出InterruptedException,并且清除中断状态标志。 线程在interrupt后sleep的话,会在run()中抛出InterruptedException,并且清除中断状态标志。 yield()方法的作用是放弃当前的CPU资源,将它让给其他的任务去占用CPU执行时间。 线程的优先级是继承的。 当最后一个非守护线程结束时,守护线程才随着JVM一同结束工作。 第二章对象及变量的并发访问 synchronized声明方法时,获得的是对象锁,即相当于synchronized(this)。 synchronized(this)

相关推荐

推荐阅读