Linux 常用命令(持续更新中...)

news2025/1/18 14:46:09

1. ls 查看文件列表命令

语法: ls [-a -l -h]  [Linux路径]

  • -a -l -h 是可选的选项   (-h需配合-l命令一起使用)
  • Linux路径是此命令可选的参数
ls         #查看当前目录所有非隐藏文件(平铺方式显示)
ls -a      #查看当前目录下所有文件   -a=> all
ls -l      #查看当前目录所有非隐藏文件(列表方式显示) -l => list
ls -lh     #查看当前目录以可读方式显示  -h => human-readable 
ls -alh    #查看所有人间以可读方式显示
ls -l /root #查看/root下的文件列表 

2. cd 切换工作目录

来源: Change Directory

语法: cd [Linux路径]

  • cd命令无选项,只有参数,表示切换到哪个目录下
  • cd命令直接执行,不写参数,表示回到用户的Home目录

3. pwd 查看当前工作目录

来源: Print Work Directory

语法:pwd

  • pwd命令,无现象,无参数,直接输入pwd即可

4. mkdir创建文件夹命令

来源: Make Directory

语法: mkdir [-p] linux路径

  • 参数必填,表示Linux路径
  • -p 选项可选,表示自动创建不存在的父目录  。来源parents

5. touch、cat、more、cp、mv、rm 文件操作命令

5.1 touch 创建文件

语法:touch linux路径

  • touch命令无选项,参数必填,表示要创建的文件路径,相对、绝对、特殊路径均可使用

5.2 cat查看文件

语法:cat linux路径

  • cat命令无选项,参数必填,表示要查看的文件路径,相对、绝对、特殊路径均可使用

5.3 more查看文件,可翻页

语法:more linux路径

  • more命令参数必填,表示要查看文件的路径,相对、绝对、特殊路径符都可以使用
  • 使用空格进行翻页,b查看上一页,使用q退出查看

5.4 cp 复制文件/文件夹

来源:copy

语法:cp [-r] 参数1  参数2

  • -r选项,可选,用于复制文件夹使用,表示递归,来源:recursive 
  • 参数1,linux路径,表示被复制的文件或文件夹
  • 参数2,linux路径,表示要复制去的地方

5.5 mv 移动文件/文件夹

来源: move

语法:mv 参数1 参数2

参数1,linux路径,表示被移动的文件或文件夹

参数2,linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在

5.6 rm 删除文件、文件夹

来源:remove

语法:rm [-r -f] 参数1 参数2 ... 参数N

  • -r选项,可选,用于递归删除文件夹使用,来源:recursive
  • -f选项,强制删除 (不会弹出提示确认消息)
    • 普通用户删除内容不会弹出提示,root管理员删除内容会有提示
    • 所以一般用户用不到-f选项
  • 参数1、参数2、....、参数N表示要删除的文件或文件夹路径,按照空格隔开

6. which 命令程序文件查找

语法:which 要查找的命令

我们可以通过which命令查看所使用的一系列命令的程序文件存放在哪里

7. find命令查找文件

7.1 find按文件名查找文件

语法: find 起始路径 -name "被查找文件名"

[root@master ~]# find / -name java*   #在根目录查查找以java开头的文件
find: ‘/proc/40515’: 没有那个文件或目录
find: ‘/proc/40525’: 没有那个文件或目录
/etc/pki/ca-trust/extracted/java
/etc/pki/java
/etc/java
/etc/java/java.conf
/etc/bash_completion.d/javaws.bash
/etc/alternatives/java
/etc/alternatives/java.1.gz
/etc/alternatives/javaws
/etc/alternatives/javaws.1.gz
/var/lib/alternatives/java
/var/lib/docker/overlay2/c03734f930fcd52491fceb7e388db90242d56a11f4b83474c04a45bc746ed9f8/diff/usr/share/java
/var/cache/yum/x86_64/7/updates/packages/java-1.8.0-openjdk-headless-1.8.0.332.b09-1.el7_9.x86_64.rpm
/var/cache/yum/x86_64/7/updates/packages/java-1.8.0-openjdk-1.8.0.332.b09-1.el7_9.x86_64.rpm
/var/cache/yum/x86_64/7/updates/packages/java-1.8.0-openjdk-headless-1.8.0.402.b06-1.el7_9.x86_64.rpm
/var/cache/yum/x86_64/7/updates/packages/java-1.8.0-openjdk-1.8.0.402.b06-1.el7_9.x86_64.rpm
/usr/bin/java
....

7.2 find按文件大小查找文件

语法:find 起始路径 -size +/-n[kMG]

  • +、- 表示大于和小于
  • n表示大小数字
  • 看MG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB

示例:

  • 查找小于10KB的文件:  find / -size -10k
  • 查找大于100MB的文件:find / -size +100M
  • 查找大于1GB的文件:    find / -size +1G
[root@master ~]# find /proc/ -size +10k
/proc/kcore

8. grep命令

可以通过grep命令,从文件中通过关键字过滤文件行。

语法: grep [-n] 关键字 文件路径

  • 选项-n,可选,表示在结果中显示匹配的行的行号
  • 参数,关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用“ ” 将关键字包围起来
  • 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口号

9. wc数量统计命令

可以通过wc命令行统计文件的行数、单词数量等

语法: wc [-c -m -l -w] 文件路径

  • 选项,-c,统计bytes数量
  • 选项,-m,统计字符数量
  • 选项,-l,统计行数
  • 选项,-w,统计单词数量
  • 参数,文件路径,被统计的文件,可作为内容输入端口

10. | 管道符

将管道附件左边命令的结果作为右边命令的输入

11. echo 命令

可以使用echo命令在命令行内输出指定内容

语法:echo 输出的内容

  • 无需选项,只有一个参数,表示要输出的内容,复杂内容可以用“ ”包围

在终端上显示:Hello Linux

  • 带有空格或\等特符号,建议使用双引号包围。因为不包围的话,空格后很容易被识别为参数2,尽管echo不受影响,要养成好习惯

12、反引号 ` 

在控制台要用echo输出命令行的结果,可以用反引号配合使用,在编写shell脚本时会用的比较多

13、重定向符 >和>>

  • >,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
  • >>,将左侧命令行的结果,追加到符号右侧指定的文件中

演示:

  •  echo "hello dolphin" >  a.txt

  • echo "hello dolphin1" > a.txt 再次执行覆盖内容

  • echo "hello dolphin2" >> a.txt 执行命令行,追加新内容


 

命令行的执行结果写入指定文件中

  • ls -l >a.txt,   ls -l命令行的结果覆盖到a.txt
  • ls >>a.txt,ls命令行的结果追加到a.txt 

14. tail命令

使用tail命令,可以查看文件尾部内容,跟踪文件的最新更改

语法:tail [ -f -num ] Linux路径

  • 参数,linux路径,表示被跟踪的文件路径
  • 选项,-f,表示持续跟踪
  • 选项,-num,表示,查看尾部多少行,不填默认10行

15. su 和 exit 命令

su命令,用于账户切换到系统命令

来源:Switch User

语法:su [ - ] [ 用户名 ]

  • - 符号是可选的,表示是否在切换用户后加载环境变量,建议带上
  • 参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root
  • 切换用户后,可以通过exit命令返回上一个用户,也可以使用快捷键:ctrl + d

  • 使用普通用户,切换到其他用户需要输入密码,如切换到root用户
  • 使用root用户切换到其它用户,无需密码,可以直接切换

16. sudo 命令

        在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。但是我们不建议长期使用root用户,避免带来系统损坏。

我们可以使用sudo命令,为普通的命令授权临时以root身份执行

语法:sudo  其它命令

  • 在其他命令之前,带上sudo,即可为这一条命令临时赋予root授权
  • 但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证

案例:

这里新建一个用户sudo mkdir /test-demo 创建文件夹提示 :

dolphin 不在 sudoers 文件中。此事将被报告。

# 创建用户并设置密码
[root@master ~]# useradd dolphin
[root@master ~]# passwd dolphin
更改用户 dolphin 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

# 切换dolphin用户
[root@master ~]# su - dolphin

# 普通命令在根目录创建文件夹test-demo
[dolphin@master ~]$ mkdir /test-demo
mkdir: 无法创建目录"/test-demo": 权限不够

# sudo 命令+ 命令行创建文件夹
[dolphin@master ~]$ sudo mkdir /test-demo

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

    #1) 尊重别人的隐私。
    #2) 输入前要先考虑(后果和风险)。
    #3) 权力越大,责任越大。

[sudo] dolphin 的密码:
dolphin 不在 sudoers 文件中。此事将被报告。


visudo 为普通用户配置sudo认证

  • 切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
  • 在文件的最后添加:
dolphin ALL=(ALL)   NOPASSWD: ALL

         其中最后的NOPASSWD: ALL 表示使用sudo命令,无需输入密码

下边这种写法表示使用sudo命令,需要输入密码

dolphin ALL=(ALL)   ALL
  • 最后通过wq保存
  • 切换普通用户
  • 执行的普通命令,均以root运行

17. 用户组管理命令

  • groupadd  创建用户组

        语法:groupadd 用户组名

  • groupdel  删除用户组

        语法:groupdel 用户组名

  • getent group 查看有哪些用户组
     

        语法:gentent group

        同 cat /etc/group 一样

        

        包含3份信息,组名称:组认证(显示未x):组ID

18. 用户管理命令

  • useradd   创建用户

        语法:useradd [-g -d] 用户名

  • 选项:-g 指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
  • 选项:-d 指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
  • userdel    删除用户

        语法:userdel [ -r ] 用户名

  • 选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
  • id             查看用户所属组

        语法: id [用户名]

  • 参数:用户名,被查看的用户,如果不提供则查看自身
  • usermod 修改用户所属组

        语法:usermode-aG 用户组 用户名,将指定用户加入指定用户组

[root@master ~]# id test
uid=1006(test) gid=1006(test) 组=1006(test)
[root@master ~]# getent group | tail -3
chendaoxin:x:1004:
testgroup:x:1005:
test:x:1006:
[root@master ~]# usermod -aG testgroup test
[root@master ~]# id test
uid=1006(test) gid=1006(test) 组=1006(test),1005(testgroup)

  •  getent passwd  查看有哪些用户

        语法:getent passwd

        同cat /etc/passwd 一样

      

        共有7分信息,分别是:

        用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)

        

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1572187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web 后台项目,权限如何定义、设置、使用:菜单权限、按钮权限 ts element-ui-Plus

Web 后台项目,权限如何定义、设置、使用:菜单权限、按钮权限 ts element-ui-Plus 做一个后台管理项目,里面需要用到权限管理。这里说一下权限定义的大概,代码不多,主要讲原理和如何实现它。 一、权限管理的原理 权限…

Polardb MySQL 产品架构及特性

一、产品概述; 1、产品族 参考:https://edu.aliyun.com/course/3121700/lesson/341900000?spma2cwt.28120015.3121700.6.166d71c1wwp2px 2、polardb mysql架构优势 1)大容量高弹性:最大支持存储100T,最高超1000核CPU&#xff0…

55、美国德克萨斯大学奥斯汀分校、钱德拉家族电气与计算机工程系:通过迁移学习解决BCI个体差异性[不得不说,看技术还得是老美]

2024年2月5日跨被试最新文章: 德州州立大学奥斯汀分校研究团队最近的一项研究成果,通过非侵入式的脑机接口,可以让被试不需要任何校准就可以使用脑机接口设备,这意味着脑机接口具备了大规模被使用的潜力。 一般来说,…

哈希-字母异位词分组

字母异位词&#xff0c;词频一样&#xff0c;但是顺序不一样&#xff0c;可以进行排序&#xff0c;获取一个key&#xff0c;放在map中即可。 class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String, List<String>> ma…

彩虹聚合DNS管理系统v1.0全新发布

聚合DNS管理系统&#xff08;https://github.com/netcccyun/dnsmgr&#xff09;可以实现在一个网站内管理多个平台的域名解析&#xff0c;目前已支持的域名平台有&#xff1a;阿里云、腾讯云、华为云、西部数码、CloudFlare。本系统支持多用户&#xff0c;每个用户可分配不同的…

STM32CubeIDE基础学习-舵机控制实验

STM32CubeIDE基础学习-舵机控制实验 文章目录 STM32CubeIDE基础学习-舵机控制实验前言第1章 硬件介绍第2章 工程配置2.1 基础工程配置部分2.2 生成工程代码部分 第3章 代码编写第4章 实验现象总结 前言 SG90、MG996舵机在机器人领域用得非常多&#xff0c;因为舵机有内置控制电…

利用nginx-http-flv-module实现三种直播

目录 一、说明 二、目标 三、实现 四、直播地址 一、说明 此文在《流媒体服务器的搭建(支持hls)》《搭建nginx-http-flv-module直播系统》之后编写,很多详细内容需要参考它。 流媒体服务器的搭建(支持hls)

【面经】interrupt()、interrupted()和isInterrupted()的区别与使用

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;面经 ⛺️稳中求进&#xff0c;晒太阳 interrupt方法 如果打断线程正在sleep&#xff0c;wait&#xff0c;join会导致被打断的线程抛出InterruptedException&#xff0c;并清除打断标记。如…

商标“五分法”,如何起名显著性更强通过率更高!

1976年在Abercrombie一案美国判例中提出的商标五分法&#xff0c; 基本上在全球范围内得到认可和共识&#xff0c;普推知产老杨平常检索时&#xff0c;我国一些专家相关的论文及专著和判例中也会经常涉及到。 商标五分法主要是把商标分成个五种类型&#xff0c; 通用的&#xf…

Linux:数据链路层

文章目录 路由表数据链路层分片mac帧报头ARP协议ARP的周边话题 路由表 当主机a想要发送消息到主机b&#xff0c;这一整个过程中&#xff0c;数据报文在进行传输的过程实际上是一跳一跳的过去的&#xff0c;而报文可能会经过公网进行传递&#xff0c;本质上这些网络都是靠对应的…

【Arthas案例】某应用依赖两个GAV-classifier不同的snakeyaml.jar,引起NoSuchMethodError

多个不同的GAV-classifier依赖冲突&#xff0c;引起NoSuchMethodError Maven依赖的三坐标体系GAV(G-groupId&#xff0c;A-artifactId&#xff0c;V-version) classifier通常用于区分从同一POM构建的具有不同内容的构件物&#xff08;artifact&#xff09;。它是可选的&#xf…

美食分享|基于Springboot和vue的地方美食分享网站系统设计与实现(源码+数据库+文档)

地方美食分享网站系统 目录 基于Springboot和vue的地方美食分享网站系统设计与实现 一、前言 二、系统设计 三、系统功能设计 1、前台&#xff1a; 2、后台 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介…

四信AI智能视频边缘分析盒+传感云平台,开启食品安全智慧监管新模式

方案背景 民以食为天&#xff0c;食品是人类生存必备的物质之一&#xff0c;食品生产安全关乎每个人的生命健康与社会可持续发展。在食品生产过程中&#xff0c;如何实现安全、健康生产是监管机构首要考虑因素&#xff0c;也是当今社会必须共同关注与努力的方向。 监管机构必…

数据库性能优化入门:数据库分片初探

数据库分片是一种用于提升数据库性能的架构模式&#xff0c;选择正确的分片策略和实施方式对于提高数据库性能和应对大规模数据挑战至关重要。 本文介绍了数据库分片的定义、原理和实施方法。文章解释了数据库分片是如何通过将数据切分、分散存储在多个服务器上来提升性能&…

【Kotlin】委托模式

1 委托模式简介 委托模式的类图结构如下。 对应的 Kotlin 代码如下。 fun main() {var baseImpl BaseImpl()var baseWrapper BaseWrapper(baseImpl)baseWrapper.myFun1() // 打印: BaseImpl, myFun1baseWrapper.myFun2() // 打印: BaseImpl, myFun2 }interface Base {fun my…

C语言第四十弹---预处理(下)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】 预处理 1、#和## 1.1 #运算符 1.2、##运算符 2、命名约定 3、#undef 4、命令行定义 5、条件编译 6、头文件的包含 6.1、头文件被包含的方式 6.1.1、本地…

docker从入门到熟悉

一、什么是docker&#xff1f; Docker是一个用于开发&#xff0c;交付和运行应用程序的开放平台。Docker使您能够将应用程序与基础架构分开&#xff0c;从而可以快速交付软件。借助Docker&#xff0c;您可以以与管理应用程序相同的方式来管理基础架构。通过利用Docker的快速交付…

【数据结构】考研真题攻克与重点知识点剖析 - 第 4 篇:串

前言 本文基础知识部分来自于b站&#xff1a;分享笔记的好人儿的思维导图与王道考研课程&#xff0c;感谢大佬的开源精神&#xff0c;习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析&#xff0c;本人技术…

Pnpm + Turbo 搭建 Web Component Monorepo 组件库

技术选型 使用 Pnpm Turbo 搭建 Web Component Monorepo项目 stencil-component-ui 组件库 pnpm 作为包管理器Turborepo 作为构建系统Vitepress 管理文档 pnpm 技术 什么是 pnpm? 它有哪些优势&#xff1f; pnpm 跟 npm、yarn一样&#xff0c;都是用于管理Node包依赖的管…

硬件-1、体系架构

cpu 处理器 arm处理器的七种工作模式 arm寄存器 两张图是一样的&#xff0c;r0---r12是通用寄存器。其他寄存器可参考图一&#xff0c;cpu架构。 程序状态寄存器psr&#xff08;cpsr/spsr&#xff09; 程序异常处理 理解示例 当使用swi&#xff08;软中断指令&#xff09;指令…