当前位置: 首页 > web >正文

Linux常用命令

目录

1 快捷键

1.1 Tab

1.2 Ctrl+l

1.3 Ctrl+c

1.4 上下方向键

2 命令使用

2.1 目录操作

2.1.1 ls

2.1.2 cd

2.1.3 pwd

2.1.4 mkdir

2.1.5 rm

2.2 文件操作

2.2.1 touch

2.2.2 echo

2.2.3 cat

2.2.4 vim

2.3 复制剪贴粘贴

2.3.1 mv

2.3.2 cp

2.4 其他常用命令

2.4.1 man

2.4.2 grep

2.4.3 ps

2.4.4 netstat

2.4.5 date

2.4.6 head

2.4.7 tail


1 快捷键

1.1 Tab

        敲某个命令时,使用快捷键Tab可以快速补全命令。快速按两下Tab,可以把符合补全的所有选项列出来。

1.2 Ctrl+l

        命令行清屏。

1.3 Ctrl+c

        如果命令或者目录敲错了,可以ctrl+c取消当前的命令。

1.4 上下方向键

        查找输入过的命令的历史记录。

2 命令使用

2.1 目录操作

        在命令行的起始,root表示当前用户(root是超级管理员,拥有最高权限)。@是分隔符,cg是当前主机名。:以后则是当前的工作路径。

        注意1:一个主机可以有多个用户,放在home文件夹下管理不同用户空间。~则表示处于当前用户的空间。而root用户是超级用户,其用户空间在根目录/下的root文件夹表示。

        注意2:root用户的输入用#表示,普通用户的输入用$表示。如果要切换用户,使用su [用户名]的方式切换。

        注意3:在Linux下密码的输入不会再屏幕显示,但是实际上已经输入进去了。

2.1.1 ls

        ls [选项] [目录或文件]:列出目录下的所有文件(文件夹)或文件的详细信息。

常见选项:

        -a:列出目录下的所有文件,包括以 . 开头的隐含文件。

        -d:将目录象文件一样显示,而不是显示其下的文件。如:ls –d 指定目录。

        -k:以k字节的形式表示文件的大小。ls –alk 指定文件

        -l:列出文件的详细信息。

        -r:对目录反向排序。

        -t:以时间排序。

        -R:列出所有子目录下的文件。(递归)

        只输入ls表示列出当前所处目录(~/Desktop)下的文件:

        列出根目录(此电脑)下的所有文件:

        以列表的形式显示根目录下的所有文件:

        注意:ls -l这个命令有一个缩写形式ll,但是在CentOS支持,在Ubunto系统却不支持。

2.1.2 cd

        cd 目录:切换当前工作目录(当前所处的路径)。

        切换到根目录下:

        切换到上级目录:

        以./开头的相对路径的切换:

        注意:cd命令可以跳转绝对路径和相对路径,也可以跳转多级目录。相对路径基于工作目录跳转,以.(.又称为当前目录)开头,..是当前目录的上级目录;绝对路径以/(/又称为根目录)开头。

2.1.3 pwd

        pwd:显示当前所处的目录(绝对路径)。

2.1.4 mkdir

        mkdir [选项] 目录名:在当前目录下创建目录。-p选项可以一次性创建多级目录。

        创建testdir目录:

        创建testdir/testa/testb目录:

2.1.5 rm

        rm [选项] [文件或目录]:删除文件或目录。

常见选项:

        -f:即使文件属性为只读(即写保护),亦直接删除,不会询问。

        -i:删除前逐一询问确认。

        -r:删除目录及其下所有文件。

        -v:显示删除的文件和目录的信息。

        删除文件:

        使用通配符*(表示一个或多个字符)删除所有后缀为.txt的文件:

        递归删除目录:

        注意:Linux没有回收站,一旦删除无法找回。即rm -rf /命令(递归删除根目录)和rm -rf /*(递归删除根目录下所有文件和目录,只保留根目录)命令谨慎使用,尤其是在公司的生产服务器上。

        两种不是故意删除的情况:1.rm -rf / test/a,即输入的路径根目录后有空格,则Linux认为是要删除两部分/根目录和test/a目录,也会误删。2.rm -rf /${var},在shell脚本(批量执行命令的文件)中,可以定义变量,加入var变量未定义,不会报错,而进行根目录的删除。

2.2 文件操作

2.2.1 touch

        touch [选项] 文件:创建一个空文件。如果有选项,则可以更改文档或目录的日期时间,包括存取时间和更改时间。

        创建空文件test.txt:

2.2.2 echo

        echo [“内容”] > [文件]:把内容写入文件。其中>表示重定向,表示把内容重定向到文件中。

        echo默认功能是把内容显示到控制台,即echo hello:

        向test.txt写入hello world:

        注意:在Linux中’’和””是有区别的。’’表示内容全是字符串,””会解析内容中的一些特殊命令,包括变量等等。

2.2.3 cat

        cat [选项] [文件]:查看目标文件的内容。常用选项:-n 对输出的所有行编号。

        查看test.txt文件的内容:

2.2.4 vim

        vim [文件名]:创建/打开文件。既是一个命令,又是一个文本编辑器。vim包含大量的编辑快捷键,这里介绍几个常用的。

        创建/打开文件:

        进入文本编辑器,默认是普通模式,此时不能操作文件内容,只能输入一些快捷键。

        在普通模式下,按:,可以进入底行模式(last line mode),此时可以在最后一行输入一些控制命令。

        编辑文件,在普通模式下按i进入编辑模式,此时就可以编辑文件内容(左下角有INSERT标识):

        按esc可以退出编辑模式,进入普通模式:

        保存/退出文件,在普通模式下,输入:w,保存文件。输入:q,退出文件。输入:wq,保存并退出文件(记得敲回车)。

        其他常用的快捷键:普通模式下输入:set number或:set nu可以显示行号,输入:set nonumber或:set nonu可以不显示行号,输入:数字可以直接将光标跳转到对应行(记得敲回车)。

2.3 复制剪贴粘贴

2.3.1 mv

        mv [选项] 源文件或目录 目标文件或目录:剪贴,也可以用来文件重命名。如果第二个参数是文件,则进行重命名;如果第二个参数是目录,则进行剪贴。

常见选项:

        -f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖。

        -i:若目标文件(destination)已经存在时,就会询问是否覆盖。

        剪贴文件:

        剪贴目录:

        剪贴+重命名文件:

2.3.2 cp

        cp [选项] 源文件或目录 目标文件或目录:复制+粘贴,用法和mv类似,区别就是源文件仍保留在原地。

        注意:如果同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。如果目的地已经存在源文件同名的文件,则会进行覆盖。

常用选项:

        -f 或 --force:强行复制文件或目录,不论目的文件或目录是否已经存在。

        -i 或 --interactive:覆盖文件之前先询问用户。

        -r :递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理。

        -R 或 --recursive:递归处理,将指定目录下的文件及子目录一并处理。

        复制粘贴文件:

        复制粘贴目录,和mv有区别,必须加上-r选项:

        复制粘贴文件+重命名:

        注意:cp和mv的区别。1.cp源文件不会消失,只是复制了一份粘贴到其他目录;mv源文件会被移动到其他目录。2.cp处理速度可能慢(递归),mv处理速度快。

2.4 其他常用命令

2.4.1 man

        man [选项] 命令:查看某个命令的具体用法和选项。按q退出查看。

常用选项:

        -k:根据关键字搜索联机帮助。

        num:只在第num章节找。

        man:man能够看到man手册中的若干个章节及其含义。

        查询ls命令:

2.4.2 grep

        grep [选项] [查找内容] [文件]:查找文件是否包含指定字符串,并显示对应行。

常用选项:

        -n:显示的行数。

        -w:全字匹配,要求整个单词都完全相同的结果才能匹配出来,而不仅仅是一个单词的一部分。

        -r:递归查找,可以搜索多级目录下的所有文件。

        --color:高亮查找到的结果。

        --include:指定查找某些文件。

        --exclude:指定排除某些文件。

        查找wor字符串是否包含在文件中:

2.4.3 ps

        ps [选项]:查看进程。默认只显示当前用户空间的进程。

常见选项:

        a:显示一个终端的所有进程。

        u:以用户为主的格式来显示程序状况。

        x:显示所有程序,不以终端机来区分。

        查看当前用户的进程:

        查看当前系统的所有进程:

        查询当前系统下包含.sh后缀的进程:

        使用ps命令可以搭配其他命令一起使用,比如ps搭配grep,这里使用到|,是Linux的管道(把前一个命令的输出作为后一个命令的输入)。因此,可以利用管道使用简单的命令组合完成复杂的任务。

        注意:在开发中还可能使用jps命令,jps类似linux的ps命令,不同的是ps是用来显示所有的进程,而jps只显示java相关的进程。

2.4.4 netstat

        netstat [选项]:查看网络状态,用法和ps类似,也可以使用管道|组合grep命令进行筛选。

常用选项:

        -a:显示所有正在或不在侦听的套接字。

        -n:显示数字形式地址而不是去解析主机、端口或用户名。

        -p:显示套接字所属进程的PID和名称。

        查看当前网络状态:

2.4.5 date

(1)格式化显示

        date +"%Y-%m-%d %H:%M:%S":按照年月日时分秒显示时间。

格式化字符串含义:

        %H:小时(00..23)

        %M:分钟(00..59)

        %S:秒(00..61)

        %X:相当于%H:%M:%S

        %d:日(01..31)

        %m:月份(01..12)

        %Y:完整年份(0000..9999)

        %F:相当于%Y-%m-%d

(2)时间戳

        显示当前时间戳(Unix时间戳从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒):

显示时间戳对应的时间:

2.4.6 head

        head [选项] [文件]:显示文件的开头,默认显示前10行。

常用选项:

        -n<行数>:显示的行数。比如-n1,显示第一行。

        显示文件前10行:

        显示文件第1行:

2.4.7 tail

        tail [必要选项] [选择选项] [文件]:用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理,常用查看日志文件。

常用选项:

        -f:循环读取

        -n<行数>:显示行数

        查看文件最后一行:

        可以搭配管道一起使用,比如查看文件中间行有两种方式,假设文件有100行,即查看第50行:

        方式1:head -n50 test > tmp先把test文件的内容读取前50行重定向到tmp临时文件中,再使用tail -n1 tmp查看最后一行(也就是第50行内容)。

        方式2:head -n50 test | tail -n1。

下篇文章:

http://www.xdnf.cn/news/1089.html

相关文章:

  • [创业之路-381]:企业法务 - 企业经营者,有哪些生产安全风险,哪些人承担责任?承担哪些责任?如何防范?
  • Java从入门到“放弃”(精通)之旅——抽象类和接口⑨
  • conda和pip的区别
  • C# 实现TCP/IP通信协议——Message结构设计
  • C# AppContext.BaseDirectory 应用程序的启动目录
  • Smart AI:在AI浪潮中崛起的智能NFT生态革命者
  • 【高并发内存池】从零到一的项目之高并发内存池整体框架设计及thread cache设计
  • 晶振详解:原理、作用、种类、应用与选型要点
  • Scribe: 一个非常方便的操作文档编写工具
  • 爬虫(requests库,logging库)
  • Linux ssh免密登陆设置
  • 【ECharts】ECharts曲线图节点点击事件实现
  • React18+ 项目搭建-从初始化、技术选型到开发部署的全流程规划
  • ProxySQL 性能调优实战案例
  • npm的基本使用安装所有包,安装删除指定版本的包,配置命名别名
  • 遨游通讯发布国产化旗舰三防手机AORO AU1:以自主可控重塑工业安全
  • 基于 Vue 的Tiptap 富文本编辑器使用指南
  • 【MCP Node.js SDK 全栈进阶指南】中级篇(4):MCP错误处理与日志系统
  • 【MCP Node.js SDK 全栈进阶指南】初级篇(3):MCP资源开发基础
  • TextCNN 模型文本分类实战:深度学习在自然语言处理中的应用
  • 宏碁笔记本电脑怎样开启/关闭触摸板
  • 高并发抢券系统设计与落地实现详解
  • 【git】subtree拆分大的git库到多个独立git库
  • @Configuration注解对应实现implements WebMvcConfigurer的配置不生效问题。
  • Java实例化对象都有几种方式
  • React 单一职责原则:优化组件设计与提高可维护性
  • 马浩棋:产通链CT-Chain 破局不动产 RWA,引领数智金融新变革
  • 程序生成随机数
  • 什么是API
  • 数智读书笔记系列030《曲折的职业道路:在终身工作时代找准定位》与《做自己的教练:战胜工作挑战掌控职业生涯》