Linux 集锦 之 最常用的几个命令

Linux最常用的几个命令

​ Linux系统中的命令那是相当地丰富,不同的版本可能还有不同的命令,不过Linux核心自带的命令大概有几百个,这个不管是什么发行版一般都是共用的。

​ 如果希望探索Linux的所有命令,可能不太实际,因为这个数字可能达到惊人的万计。

​ 不过还好的是,Linux命令的入门只要掌握不到100个命令即可,而如果相对而言行云流水的话也就200个命令足矣。

​ 而如果准备试试Linux,可能只需要下面的几个实用频率最高、功能最关键、也最常用的命令也就基本可以完成日常的工作、学习需要了。

​ 忽然想用姓氏排序的方法,不过感觉不太行,索性就大概按照使用率来统计了。

​ 仅个人习惯,会持续不间断更新和改进。

ls 列出当前目录下的文件📃和文件夹📁列表

​ 个人感觉这个命令,属于名副其实用的最多的命令,我们进入Linux的第一个命令,可能除了输入用户名密码就属它了。

​ 工欲善其事,必先利其器,你欲使用Linux,必先了解当前的文件和内容。

不加任何参数

如果不加任何参数,默认列出当前目录的内容。

$ ls /etc/sysconfig/network-scripts
ifcfg-em1
ifcfg-em2
ifcfg-em3
ifcfg-em4   
....

使用-l显示更多细节

-l 就是使用long listing format长格式,来显示更多的内容信息。

$ ls -l /etc/sysconfig/network-scripts
total 264
-rw-r--r--. 1 root root   341 Nov 30 10:56 ifcfg-em1
-rw-r--r--. 1 root root   294 May 13  2016 ifcfg-em2
-rw-r--r--. 1 root root   272 May 10  2016 ifcfg-em3
-rw-r--r--. 1 root root   272 May 10  2016 ifcfg-em4
......

使用-t按照时间排序

如果希望看到最近创建的文件,就需要用到-t参数了。

$ ls -lt /etc/sysconfig/network-scripts/
total 264
-rw-r--r--. 1 root root   341 Nov 30 10:56 ifcfg-em1
-rw-r--r--. 1 root root   294 May 13  2016 ifcfg-em2
-rw-r--r--. 1 root root   272 May 10  2016 ifcfg-em4
-rw-r--r--. 1 root root   272 May 10  2016 ifcfg-em3
...

使用-r按照时间逆序

如果希望删除很早以前的文件,看到最早创建的文件,就需要用到-r参数了。

$ ls -ltr /etc/sysconfig/network-scripts/
total 264
...
-rw-r--r--. 1 root root   272 May 10  2016 ifcfg-em3
-rw-r--r--. 1 root root   272 May 10  2016 ifcfg-em4
-rw-r--r--. 1 root root   294 May 13  2016 ifcfg-em2
-rw-r--r--. 1 root root   341 Nov 30 10:56 ifcfg-em1

使用-S根据文件大小排序

$ ls -lS /etc/sysconfig/network-scripts/
total 264
...
-rw-r--r--. 1 root root   341 Nov 30 10:56 ifcfg-em1
-rw-r--r--. 1 root root   294 May 13  2016 ifcfg-em2
-rw-r--r--. 1 root root   272 May 10  2016 ifcfg-em3
-rw-r--r--. 1 root root   272 May 10  2016 ifcfg-em4

更多内容参考:https://shaoguangleo.github.io/tags/ls/

cd 改变当前的工作目录

这个命令可能估计能排在第二,类似于Winows的双击,在不同目录件徜徉。

在各个文件夹遍历是我们的习惯和倔强的证明。

cd命令没有太多参数,但是有一些技巧所在,可以N多人从来没有用过。

cd直接使用即可,技巧是下面几个:

进入刚才的目录

想要进入刚才进入的地方(目测没有很多人再用,但是真的很好用)运行:

$ cd

快速返回家目录

需要快速地回到你的家目录,输入cd即可,这里其实不用一级一级的进入

$ cd

进入某用户的家目录

这个需要你有root权限

cd ~username

进入username的家目录。

更多内容参考:https://shaoguangleo.github.io/tags/cd/

mkdir - 创建目录

说到cd到某个目录,就需要提高创建目录,也就新建文件夹。

参数不过,处理默认什么参数也不加,会一个-p递归创建文件夹即可。

创建一个空目录

$ mkdir hello

递归创建多个目录

$ mkdir -p a/b/c/d/e/f/g

更多内容参考:https://shaoguangleo.github.io/tags/mkdir/

rm - 删除文件

rm 命令用于删除文件或者目录。

这个命令其实我不想把它归为最常用的命令,因为它也是最危险⚠️的命令之一,文件一旦通过rm命令删除❌,则无法恢复,所以必须格外一定切记小心地使用该命令。因为发生过很多欲哭无泪的故事。。。

文件如果少,可以使用-i 删除前逐一询问确认,确认时比较好用;

而下面的两个参数十分残暴,除非百分之两百确认,否则慎用:

  • -f 即使原档案属性设为唯读,也直接删除,无需逐一确认,是force的意思。
  • -r 将目录及里面的子文件逐一删除。

更多内容参考:https://shaoguangleo.github.io/tags/rm/

cp - 复制文件

cp可以实现文件和目录的复制,如果你只会cp a b,或者加上-r来递归目录,那么你还需要挖掘很多呀,比如只复制不存在或者更新的文件。

以下就是cp常用的选项如下所示:

  • i : 覆盖一个已经存在的文件前,提示用户进行确认
  • r:递归地复制目录及其内容,复制目录的时候必须使用这个参数
  • u:只复制不存在或者更新的文件
  • v:复制文件时,显示复制信息

组合rv - 可以拷贝文件或文件夹

这个在显示复制信息的时候,也可以复制目录

$ cp -rv dir1/* dir2/
‘dir1/a’ -> ‘dir2/a’
‘dir1/b’ -> ‘dir2/b’
‘dir1/c’ -> ‘dir2/c’
‘dir1/d’ -> ‘dir2/d’

拷贝时提示确认

这个参数在使用rm的时候已经记得使用,不然就像rm -rf /一样,一个公司没有了。

$ cp -i dir1/* dir2/
cp: overwrite ‘dir2/a’? y
cp: overwrite ‘dir2/b’? y
cp: overwrite ‘dir2/c’? y

这个选项在文件超级多时候,慎用!!

只拷贝不存在或更新的文件

u表示update,也就是从一个目录拷贝到另外一个目录时,只会复制那些不存在或者目标目录相应文件的更新文件。

执行下面的命令:

$ cp -u dir1/* dir2/

可以得到:

$ ll *
dir1:
total 0
-rw-rw-r-- 1 user user 0 Jul 20 21:23 a
-rw-rw-r-- 1 user user 0 Jul 20 21:23 b
-rw-rw-r-- 1 user user 0 Jul 20 21:23 c
-rw-rw-r-- 1 user user 0 Jul 20 21:23 ddir2:
total 0
-rw-rw-r-- 1 user user 0 Jul 20 21:29 a
-rw-rw-r-- 1 user user 0 Jul 20 21:25 b
-rw-rw-r-- 1 user user 0 Jul 20 21:29 c
-rw-rw-r-- 1 user user 0 Jul 20 21:25 d
-rw-rw-r-- 1 user user 0 Jul 20 21:25 e

如何用cp拷贝指定序号的文件

现在有文件夹filename,内有文档,名字是从1.txt, 2.txt, 3.txt 一直到9999.txt,10000.txt,现在希望从第N组数据即N.txt到第M组数据M.txt的文件拷贝到别的文件夹中,方法如下:

$ cp {N..M}.txt   newfilename/

这个方法可是相当的赞呀(≧▽≦)/,基本可以秒掉大多数的GUI程序了。

更多内容参考:https://shaoguangleo.github.io/tags/cp/

mv - 文件移动或者叫重命名

如果mv的命令还停留在重命名一个文件或者文件夹,那么就花3分钟看一下。

mv能做的还很多。

比如为了防止误删,mv可以提前做个备份;比如为了防止覆盖,可以考虑只有文件较新的时候才移动。

详细如下:

mv几个比较常用的选项如下:

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份,文件后缀用~表示;
  • -i或–interactive: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作,一般而言,对于不确定的时候可以用此选项,不过文件或文件夹居多时,最好不要用
  • -f或–force: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件,强制的意思force
  • -n或–no-clobber: 不要覆盖任何已存在的文件或目录。
  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

常规操作

$ ls
a.txt$ mv a.txt b.txt$ ls
b.txt

直接移动或者叫做重命名,文件夹也类似的操作。

覆盖前备份

$ ls
a.txt  a.txt~$ cp -b ../a.txt a.txt$ ls
a.txt  a.txt~

可以看到此时多了一个备份文件

增量更新

$ cp -u a b	

此时的操作为,只有a比b更新或者b不存在的时候,才会进行更新,否则失败。

这个用法多用在:当横向对比两个文价夹有无重要更新的时候才会用到。

交互提示

$ cp -i b.txt a.txt
cp:是否覆盖"a.txt"

在文件存在的时候,-i选项会进行提示,此时需要输入y才能覆盖,而输入n就会取消这个操作。

更多内容参考:https://shaoguangleo.github.io/tags/mv/

pwd - 查看目录所在的命令

pwd命令的作用是查看当前目录,没有参数,输入后回车即可显示当前绝对路径, 所以pwdPrint Working Directory第一个字的缩写。

唯二需要了解的参数如下:

  • -L, --logical:打印逻辑路径,与pwd一致
  • -P, --physical:打印物理路径,这里可以从超级链接直达原处

实例展示

此时比如我们进入一个目录,然后在打印出来,如下:

$ cd /etc/sysconfig/network-scripts/$ pwd
/etc/sysconfig/network-scripts

可以看到pwd将输出完全路径

逻辑与物理路径

比如如下:

$ pwd
/opt/test$ ls -l
总用量 1
lrwxrwxrwx  1 root root   14 Jan 15 2012 dir -> source/dir
drwxrwxrwx  1 root root   14 Jan 15 2012 source

可以看到此时的路径在/opt/test/里面有两个目录sourcedir,其中dir链接到source里面的dir。

接下来对比一下-L和-P的区别。

$ cd dir$ pwd
/opt/test/dir$ pwd -L
/opt/test/dir$ pwd -P
/opt/test/source/dir

从上面的输出可以发现,-P参数会显示文件最原始的路径;而-L则是逻辑上的路径。

更多内容参考:https://shaoguangleo.github.io/tags/pwd/

更多信息

Hi,XDJM们,更多信息欢迎移步原文或微信公众号letsProgramming.

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树莓派基本配置(2)

安装motion $sudo apt-get update $sudo apt-get install motion配置motion sudo nano /etc/default/motionsudo nano /etc/motion/motion.conf主要改这些参数 //让Motion作为守护进程运行 daemon on ... //用这个端口号来读取数据 stream_port 8081 ... //网络上其它主机…

力扣刷题-哈希表-求两个数组的交集

349 求两个数组的交集 题意&#xff1a;给定两个数组&#xff0c;编写一个函数来计算它们的交集。注意&#xff1a;输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 提示&#xff1a; 1 < nums1.length, nums2.length < 1000 0 < nums1[i], …

nodejs在pdf中绘制表格

需求 之前我已经了解过如何在pdf模板中填写字段了 nodejs根据pdf模板填入中文数据并生成新的pdf文件https://blog.csdn.net/ArmadaDK/article/details/132456324 但是当我具体使用的时候&#xff0c;我发现我的模板里面有表格&#xff0c;表格的长度是不固定的&#xff0c;所…

WPF 03

staticResource和dynamicResource的区别 首先看一个案例 MainWindow.xaml <Window x:Class"WpfDay03.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml&quo…

Springboot中slf4j日志的简单应用

1、注入依赖&#xff08;pom.xml&#xff09; <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>2.0.9</version> &…

从MVC到DDD,该如何下手重构?

作者&#xff1a;付政委 博客&#xff1a;bugstack.cn 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; 大家好&#xff0c;我是技术UP主小傅哥。多年的 DDD 应用&#xff0c;使我开了技术的眼界&#xff01; MVC 旧工程腐化严重&#xff0c;…

排序算法之【希尔排序】

&#x1f4d9;作者简介&#xff1a; 清水加冰&#xff0c;目前大二在读&#xff0c;正在学习C/C、Python、操作系统、数据库等。 &#x1f4d8;相关专栏&#xff1a;C语言初阶、C语言进阶、C语言刷题训练营、数据结构刷题训练营、有感兴趣的可以看一看。 欢迎点赞 &#x1f44d…

C++ -- 学习系列 std::deque 的原理与使用

一 deque 是什么? std::deque 是 c 一种序列式容器&#xff0c;其与 vector 类似&#xff0c;其底层内存都是连续的&#xff0c;不同的地方在于&#xff0c; vector 是一端开口&#xff0c;在一端放入数据与扩充空间&#xff0c;而 deque 是双端均开口&#xff0c;都可以放…

3D孪生场景搭建:模型区域摆放

前面介绍完了NSDT场景编辑器的线性绘制和阵列绘制&#xff0c;本章将讲述下编辑器的另一种绘制方式&#xff1a;区域绘制。 1、区域绘制功能简介 在场景中绘制资产时&#xff0c;除使用上述两个的方式外&#xff0c;NSDT 编辑器还支持使用区域绘制的方式进行绘制。先选取需要…

GEO生信数据挖掘(一)数据集下载和初步观察

检索到目标数据集后&#xff0c;开始数据挖掘&#xff0c;本文以阿尔兹海默症数据集GSE1297为例 目录 GEOquery 简介 安装并加载GEOquery包 getGEO函数获取数据&#xff08;联网下载&#xff09; 更换下载数据源 对数据集进行初步观察处理 GEOquery 简介 GEOquery是一个…

聊聊并发编程——并发容器和阻塞队列

目录 一.ConcurrentHashMap 1.为什么要使用ConcurrentHashMap&#xff1f; 2.ConcurrentHashMap的类图 3.ConcurrentHashMap的结构图 二.阻塞队列 Java中的7个阻塞队列 ArrayBlockingQueue&#xff1a;一个由数组结构组成的有界阻塞队列。 LinkedBlockingQueue&#xf…

用go实现http服务端和请求端

一、概述 本文旨在学习记录下如何用go实现建立一个http服务器&#xff0c;同时构造一个专用格式的http客户端。 二、代码实现 2.1 构造http服务端 1、http服务处理流程 基于HTTP构建的服务标准模型包括两个端&#xff0c;客户端(Client)和服务端(Server)。HTTP 请求从客户端…

PHP8的静态变量和方法-PHP8知识详解

我们在上一课程讲到了public、private、protected这3个关键字&#xff0c;今天我们来讲解static关键字&#xff0c;明天再讲解final关键字。 如果不想通过创建对象来调用变量或方法&#xff0c;则可以将该变量或方法创建为静态变量或方法&#xff0c;也就是在变量或方法的前面…

【PyTorch实战演练】使用Cifar10数据集训练LeNet5网络并实现图像分类(附代码)

文章目录 0. 前言1. Cifar10数据集1.1 Cifar10数据集下载1.2 Cifar10数据集解析 2. LeNet5网络2.1 LeNet5的网络结构2.2 基于PyTorch的LeNet5网络编码 3. LeNet5网络训练及输出验证3.1 LeNet5网络训练3.2 LeNet5网络验证 4. 完整代码4.1 训练代码4.1 验证代码 0. 前言 按照国际…

C语言文件操作与管理

一、为什么使用文件 在我们前面练习使用结构体时&#xff0c;写通讯录的程序&#xff0c;当通讯录运行起来的时候&#xff0c;可以给通讯录中增加、删除数据&#xff0c;此时数据是存放在内存中&#xff0c;当程序退出的时候&#xff0c;通讯录中的数据自然就不存在了&#xff…

Java 基于 SpringBoot 的在线学习平台

1 简介 基于SpringBoot的Java学习平台&#xff0c;通过这个系统能够满足学习信息的管理及学生和教师的学习管理功能。系统的主要功能包括首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;课程信息管理&#xff0c;类型管理&#xff0c;作业信息…

大数据Doris(一):Doris概述篇

文章目录 Doris概述篇 一、前言 二、Doris简介

队列的各个函数的实现

1.第一个结构是存放链表的数据&#xff0c;第二个结构体是存放头节点和尾节点的以方便找到尾节点&#xff0c;存放头节点的是phead&#xff0c;尾节点的是ptail typedef struct QueueNode {struct QueueNode* next;//单链表QDataType data;//放数据 }QNode;typedef struct Queu…

并查集LRUCache

文章目录 并查集1.概念2. 实现 LRUCache1. 概念2. 实现使用标准库实现自主实现 并查集 1.概念 并查集是一个类似于森林的数据结构&#xff0c;并、查、集指的是多个不相干的集合直接的合并和查找&#xff0c;并查集使用于N个集合。适用于将多个元素分成多个集合&#xff0c;在…

脉冲法和方向盘转角法计算车辆位置不同应用工况

1. 脉冲法计算车辆位置 在定义下的世界坐标系中&#xff0c;车辆运动分为右转后退、右转前进、左转后退、左转前进、直线前进、直线后退和静止七种工况&#xff0c;因此需要推倒出一组包含脉冲、车辆运动方向和车辆结构尺寸参数的综合方程式进行车辆轨迹的实时迭代计算。由于直…