Linux常用指令和知识(1)

news2024/11/15 10:52:59

目录

ls

 cd

pwd

相对路径&绝对路径&特殊路径符

mkdir

touch-cat-more

cp-mv-rm

 which-find 

grep-wc

管道符 | 

echo 

重定向符

tail 


😶‍🌫️😘创作不易, 多多支持


前言: 我们学习的Linux命令, 其实他们的本体就是一个个由二进制代码组成的可执行程序, 和windows里面的.exe文件类似


        

ls

显示工作目录底下的所有文件/文件夹

使用命令ls, 会直接显示HOME目录下的所有文件

如果不加任何参数,那么ls指定的目录是初始的HOME目录(因为初始的工作目录为HOME目录):

 

使用ls /

会显示根目录底下的所有文件

如何查看根目录:

 

 三个参数: -a  -h  -l

  • -a 选项表示all的意思,列出全部文件(包含隐藏文件/文件夹)
    -- 对比一下ls和 ls -a, 发现ls -a指令列出来的文件/文件夹数量更多了
    -- 图中有很多点号" . "开头的文件,表示是linux系统的隐藏文件(或文件夹) ,可以自动隐藏
    -- 只有通过-a 才可以看到这些隐藏文件夹和文件 
  • -l 表示以列表的形式展示内容,并且提供更多的信息
  • -h 更加人性化的方式显示文件大小的单位
    -h需要和-l搭配使用才有效, 我们只使用的-l而不使用-h的形式如下,默单位是byte:

    此时我们加上-h:

ls 命令项的组合使用:

  •  ls -l -a
  • ls -la
  • ls -al

上面三种写法,都是一样的,表示这个ls指令同时包含-a和-l的功能项

 ls选项 + 参数的混合使用:

使用指令ls -al /, 使用列表的形式,同时显示隐藏的文件和文件夹的形式来展示根目录

 cd

        cd:切换工作目录,我们可以通过cd命令来切换当前所在的工作目录

-- cd英文全称: Change Directory

-- 语法: cd [Linux路径]

        我们需要注意以下几点:

  • 当Linux终端打开的时候,会默认以用户的HOME目录作为当前的工作目录
  • cd的指令无须选项,只有参数, 参数表示路径,表示要切换到哪个目录为工作目录
  • cd指令直接执行,不加参数的话,表示回到用户的HOME目录(切换会HOME目录为工作目录)
  • 举个例子:>
    -- 首先使用无参数选项为-l的ls指令列出HOME目录的列表形式(对于ls的使用,打开的Linux终端默认的工作目录为HOME目录, ls为列出当前工作目录的文件和文件夹)
    -- 然后使用cd指令,参数为 "/", 也就是 cd /, 表名将工作目录指定为根目录,
    -- 然后使用ls再次

pwd

pwd: 显示当前所在的工作目录

pwd为print working directory

语法: $ pwd [-p]

选项和参数: -p, 显示出确实的路劲,而非使用链接(link)路径

实例:

        单纯显示出当前的工作目录:

        进入到一个目录底下并显示:

 进入这个目录,然后使用pwd显示当前工作目录:

相对路径&绝对路径&特殊路径符

有下面两个例子:

这两种不同的路径表达方式有什么不一样呢?

-- 上面的绝对路径表达的非常的完整,长度也比相对路径长

-- 而相对路径的表达则更为精简 

特殊路径符

如图, 我们郑处于工作目录: /home/niceff/Desktop

那么现在想要回到niceff用户下面该如何操作:

  1. 可以直接使用cd指令,不加参数, 默认回退到HOME为工作目录
  2. 通过特殊的路径字符

        特殊的路径字符也是为了我们更加方便的进行文件操作和文件管理, 下面是一些常用的特殊路径符:>

  • " . ", 表示当前目录, 例如cd ./Desktop 表示切换工作目录为当前目录里面的Desktop目录, 和 cd Desktop效果一样
  • " .. ", 表示上一级目录, 例如cd .. ,可以切换到上一级目录, cd ../..可以切换到上2级目录
  • " ~ ", 表示HOME目录, 比如cd ~, 即可以切换到HOME目录为工作目录, 或者
    cd ~/Desktop,切换到HOME目录里面的Desktop目录为工作目录0

        下面再举一个案例:

对于我们的/home/niceff/Desktop目录, 我们希望将工作目录切换为niceff目录下面与Desktop同级的Music目录:

 使用指令: cd ../Music

下面是一些练习:

  • 当前工作目录内有一个test文件夹,文件夹内有一个文件hello.txt,请描述文件的相对路径: test/hello.txt
  • 在当前工作目录的上级目录有一个test文件夹,文件夹内有一个文件hello.txt,请描述文件的相对路径:  ../test/hello.txt
  • 在HOME目录内有一个test文件夹,文件夹内有一个文件hello.txt,请描述文件的路径,需要使用符号~: ~/test/hello.txt

mkdir

mkdir: 创建新目录(文件夹)

mkdir,全称make directory

指令格式: mkdir [-mp] 目录名称

选项与参数:

  • -m : 配置文件权限
  • -p : 将所需的目录(包含上一级目录)递归建立起来,也就是说说, -p可以自动创建不存在的父目录,适用于连续错层级的目录

        其中,参数是必填的

案例, 我们在当前用户的home文件夹中创建一个test文件夹:

 查看这个test文件夹:

 -p的使用:

我们知道已经存在路径~/niceff/test

然后我们创建如下:

~/niceff/test/na/nb/nc

 如果没有指定参数-p, 那么就不会创建其不存在的父目录na,nb和nc, 使用-p参数如下:

可以看到已经自动创建了其父目录

当然这些操作也可以配合特殊文件符 

创建文件夹所需要权限:

创建文件夹需要修改权限, 请确保操作均在home目录里面,不然在home目录外面的操作会涉及到权限问题, home外无法成功创建

例如上图, 我们在根目录底下创建一个a目录, 显示权限不够

(提示, 在finalShell里面,按ctrl + l可以清屏)

touch-cat-more

touch:创建文件, 无选项, 参数必填,表示要创建的文件路径(相对路径和绝对路径,还有特殊文件符都可以使用)

例如, 我们路径~/niceff/test, 我们在这个test工作目录里面创建一个testTxt.txt文件:

 注意, 这种写法是相对路径的写法

如何分辨到底是文件还是文件夹?

下面是虚拟机centOS里面的终端中查询test底下的文件夹, 可以看到,里面的文件夹都是蓝色的字体, 而文件则是默认的字体,而且还有后缀

 如果你是finalShell的话,同样如此:

 或者也可以这样子看:

cat:准备好文件之后, 就可以查看文件

语法: cat 被查看文件的路径

-- cat没有选项, 参数必填, 表示被查看的文件,相对路径,绝对路径和特殊文件符都可使用

例如我们在/home/niceff/test/testTxt.txt里面写入hello Linux

然后打开查看: cat /home/niceff/test/testTxt.txt

more: 同样可以查看文件内容,

同cat不同的是:

  • cat是直接把内容全部显示出来
  • more支持翻页, 如果文件内容过多可以一页页的显示

语法: 没有选项, 只有必填参数 , 表示被查看的路径

例如, Linux系统内置有一个文件, 路径为: /etc/services, 可以使用more命令查看:

        more /etc/services

在查看的过程中使用空格翻页, 使用q退出查看

 使用空格翻页:

使用q退出:

cp-mv-rm

cp: 拷贝文件和目录:
语法:

cp [-a]  参数1  参数2

 路径1表示被复制的文件

 路径2表示要复制去的地方

演示如下:

对于一个文本文件: /home/niceff/test/testTxt.txt

我们将其复制到/home/niceff/test目录下的a文件夹中

使用cp指令如下:

        目前现在工作目录为/home/niceff/test

         所以指令为 cp testTxt.txt a

 cp 指令有一些选项如下:

  • -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)

  • -d:若来源档为链接档的属性(link file),则复制链接档属性而非文件本身;

  • -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;

  • -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)

  • -l:进行硬式链接(hard link)的链接档创建,而非复制文件本身;

  • -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);

  • -r:递归持续复制,用於目录的复制行为;(常用)

  • -s:复制成为符号链接档 (symbolic link),亦即『捷径』文件;

  • -u:若 destination 比 source 旧才升级 destination !

我们来解释一下常用的 -r选项, -r选项为赋值文件夹, 例如:

        存在工作目录:/home/niceff/test

        这个目录里面先在有一个文件夹a, 我们将文件夹a,再赋值一份到当前工作目录里面去

 显示略过目录a

        这是因为a是一个文件夹, 不能直接使用cp来复制, 需要加上参数: -r

 发现不能将复制的文件夹粘贴到同一工作目录下

        所以我们在test目录底下创建一个目录b,将a目录复制到b目录中, 如下:

mv : 用于移动文件和文件夹, 来自英文单词move

语法如下: mv 参数1 参数2

  • Linux路径, 表示要被移动的文件和文件夹
  • Linux路径, 表示被移动文件的目的目录, 如果目标不存在, 则进行改名, 确保目标存在 

例如我们将/home/niceff/test目录下的a目录移动到home/niceff/Desktop目录下面去:

 可有看到a文件夹已经被移动到Desktop目录底下

当然也可以到终端里面使用ls指令查看

下一个案例 :

我们再test目录下面还有一个b文件夹, 此时我想将其改名为a:

mv的几个选项如下:

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • -u :若目标文件已经存在,且 source 比较新,才会升级 (update)

rm : 删除可以用来删除文件和文件夹

和cp指令一样, 其存在一个-r选项, 来选择删除文件夹

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

--  > -f 表示force, 强制删除(不会出现提示确认信息) , 普通用户删除内容不会弹出提示, 只有root管理员删除内容会有提示, 所以一般用户用不到-f选项

-- > 参数1~N 表示要删除的多个文件夹路径或者文件, 参数之间按照空格隔开

例:

  1. 删除test目录底下的testTxt.txt文件
    查看文件已经存在:

     删除:
  2. 删除Desktop目录下面的a文件夹(注意, 和cp命令一样, 需要加上-r选项)
    查看Desktop目录下的a文件

    删除:

值得注意的是, rm命令可以使用模糊匹配来批量删除:

  • 符号*表示通配符, 即任意内容(包含空)
  • test*, 表示任何以test开头的内容
  • *test, 表示任何以test结尾的内容
  • *test*, 表示任何包含test 的内容

演示:

我们在Desktop目录下面创建test1,2test,3test4这3个目录:

同时里面还包含a这个文件夹

使用通配符删除:

rm - r *test*

 

 结果只剩下a这个文件夹,可见操作正确

接下来演示一下 -f这个选项:

强制删除:

  • 可以通过su - root, 并输入自己的用户密码, 临时切换到root模式
  • 然后可以使用exit 命令来退出为普通用户

可以看到这里输入的标识符从$符号变为了#符号(此处输入密码是默认不显示的,可以不用管)

执行一个删除操作, 在/home/niceff/test目录里面创建一个文本文件test.txt:

 然后我们删除这个文件:

会提示你是否要删除这个文件, 如果输入y, 则表示确认(删除), 否则表示取消

这个时候, 如果删除的时候, 不想出现提示的话, 就这直接在使用rm命令的时候, 加入-f选项, 强制删除, 这个时候 提示操作就不会出现

退回普通用户:

注意: rm命令是非常的危险, 尤其是-f选项, 强制删除是没有任何提示的,一不小心就会走错进局子!!!

 which-find 

 which命令:查看锁使用的一系列命令的程序文件放在哪

语法: which 命令

举个例子

find - 按文件名查找文件, 搜索指定文件

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

为了确保演示顺利, 可以完成整个系统的搜索, 我们需要拥有最大权限, 可以切换到root用户下进行.

 

在/home/niceff/test中创建一个test.txt文件:

 起始路径为home目录来寻找这个test.txt文件:

 当然我们在查找的时候也可以使用通配符

切换查找文件大小的模式

语法: find 起始路径 -size + | -n[KMG]

说明

  • + / - 表示大于和小于
  • n表示大小数字
  • KMG表示大小单位, (k -> kb, M -> MB,G -> GB)

例如:

  • 查找小于10KB的文件: find / -size -10k
  • 查找大于100MB的文件: find / -size +100M
  • 查找大于1GB的文件: find / -size +1G

grep-wc

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

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

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

现在通过touch命令在home目录里面的Desktop目录里创建test.txt文件, 并通过图形化页面编辑并保存

 选择过滤出含有niceff 的行:

grep "niceff" /home/niceff/Desktop/test.txt

 选择过滤出含有you的行:

使用-n显示过滤出you 的行号:

 wc:  统计文件的行数, 单词数量

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

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

案例, 还是用Desktop下面的test.txt作为被统计的文件:

  • 统计bytes的数量:

    查看一下文件大小:

    结果正确
  • 统计字符数量:
  • 统计行数:

    这里有6行的原因是这里还有一个空行
  • 统计单词数量:

也可以直接使用wc 文件路径:

 6表示行号, 20 表示单词数量, 84代表文件的字节数

管道符 | 

 我们前面所讲到的grep命令里面的路径参数可以作为输入端

我们下面来看看管道符的用法:

前面的cat 文件路径, 可以做为后面grep参数的输入内容

除了grep, 还有很多其他的命令也可以使用管道符, 也就是这种左边的结果作为右边的输入的形式.

再例如使用wc命令:

 也可以使用ls作为输出内容:

一般这种有输出的命令都可以使用作为管道符的输入参数 

再例如我们统计/usr/bin目录下面有多少个文件:

echo 

echo: 在命令行输出指定内容

语法: echo 输出的内容

  • 无需要选项,只有一个参数, 表示要输出的内容, 复杂内容可以使用" " 包围
    例如, 在终端上显示Hello Linux:
  • 带有\等特殊字符的需要使用" "包围起来
  • 如果我们输入echo pwd来输出工作路径, 是否会成功显示:

    可以看到pwd只是被简单的作为内容输出, 而不是作为指令进行输出
  • 要想做为指令输出 , 就必须将内容带上飘号``, 也就是`pwd`(这个飘号也就是~所对应的小写,在tab键的上方):

重定向符

 重定向符有两个特殊的符号:

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

例如我们有如下的空txt文件

 结合echo命令, 将内容重定向输入到空白的文件当中去:

 如果再使用>重定向写入hello world:

可以看见hello world将原来的内容覆盖

追加写>>: 我们在hello world的基础上追加写入i love you :

 

tail 

 tail: 可以查看文件尾部的内容, 跟踪文件的最新修改,

语法如下:

tail [-f -num] Linux路径

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

本章结束!!

点个赞吧😶‍🌫️ 

 

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

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

相关文章

ctf 逆向 专题题解

本文的目标是,记录一些不具备通用性的,或者比较进阶的题目。之前的另一篇文章则用于记录一些基础知识和通用性较强的基本手法。 文章目录 跨科题目buu fungame:reverse与pwn的结合reverseweb 反跟踪Easyhook:hook例题 vm类型总结一…

我的创作纪念日——512

机缘 没想到不知不觉在CSDN创作就512天了,想到一开始就仅仅想在CSDN记笔记,到现在成为一个小博主,认识到了很多志同道合的伙伴,中间创作我也曾经懒惰过,放弃过,但我一次又一次重新进行创作,虽然…

AcWing801: 二进制中1的个数(两种方法详解)

原题引出 方法一:使用lowbit 算法的时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn),使用lowbit操作,每次操作截取一个数字的最后一个1后面的所有位,每次减去lowbit得到的数字,直到数字减到0,就得到了最终…

【MySQL】选择专题(七)

文章目录 选择题选择题 在关系R ( R # , RN , S # )和S ( S # , SN , SD )中, R 的主码是R # , S 的主码是S #,则S#在R 中称为( A )。 A 外码 B 候选码 C 主码 D 超码 设关系R和S的属性个数分别为2和3,那么等价于( B )。 A. σ1<2(RS) B. σ1<4(RS) C. σ1<2(R…

我们世界中的计算机——从大师视角诠释计算常识

计算机和通信系统&#xff0c;以及由它们所实现的许多事物遍布我们周围。其中一些在日常生活中随处可见&#xff0c;比如笔记本电脑、手机和互联网。今天&#xff0c;在任何公共场所&#xff0c;都会看到许多人在使用手机查询交通路线、购物以及和朋友聊天。与此同时&#xff0…

【大数据】大数据相关概念

文章目录 大数据&#xff1a;一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合&#xff0c;具有海量的数据规模、快速的数据流转、多样的数据类型以及价值密度四大特征。Hadoop&#xff1a;是一个能够对大量数据进行分布式处理的软件框…

15-3.自定义组件的生命周期函数

目录 1 组件自身的生命周期函数 1.1 使用lifetimes声明生命周期函数 1.2 不使用lifetimes声明生命周期函数 2 组件所在页面的生命周期函数 1 组件自身的生命周期函数 created 组件实例刚刚被创建后执行&#xff0c;可以理解为 html模板刚刚搞好attached 组件被放入节…

万物的算法日记|第六天

笔者自述&#xff1a; 一直有一个声音也一直能听到身边的大佬经常说&#xff0c;要把算法学习搞好&#xff0c;一定要重视平时的算法学习&#xff0c;虽然每天也在学算法&#xff0c;但是感觉自己一直在假装努力表面功夫骗了自己&#xff0c;没有规划好自己的算法学习和总结&am…

DJ4-2 数据报网络和虚电路网络

目录 一、连接和无连接服务 二、数据报网络 1、数据报网络的转发表 2、数据报网络的特点 三、虚电路网络 (Virtual Circuits)* 1、虚电路网络的工作方式 2、虚电路网络的特点 一、连接和无连接服务 任何网络中的网络层只会提供两种服务之一&#xff0c;不会同时提供 数…

Mysql数据库之事务(山高水远,他日江湖再见)

文章目录 一、事务的概念二、事务的ACID特点1.原子性&#xff08;Atomicity&#xff09;2.一致性&#xff08;Consistency&#xff09;3.隔离性&#xff08;lsolation&#xff09;4.持久性&#xff08;Durability) 三、并发访问表的一致性问题和事务的隔离级别1.并发访问表的一…

融合模型stacking14条经验总结和5个成功案例(互联网最全,硬核收藏)_机器学习_人工智能_模型竞赛_论文参考

我看了很多关于融合模型stacking文章&#xff0c;很多作者倾向于赞美融合模型stacking&#xff0c;对其缺点轻描淡写&#xff0c;这容易误导初学者。一叶障目就是这意思。 我的很多学员喜欢用融合模型作为论文或专利创新点&#xff0c;这是一个热门技术。 最近有个同学在论文…

设计模式之单例模式笔记

设计模式之单例模式笔记 说明Singleton(单例)目录单例模式之饿汉式-静态成员变量写法测试类 单例模式之饿汉式-静态代码块写法测试类 单例模式之懒汉式-线程不安全写法和线程安全写法测试类 单例模式之懒汉式-双重检查锁方式(推荐使用的方式)单例模式之懒汉式-静态内部类方式(推…

Mysql数据库之存储引擎(羡慕她人,不如提升自己)

一、存储引擎概念 MySQL中的数据用各种不同的技术存储在文件中&#xff0c;每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力&#xff0c;这些不同的技术以及配套的功能在MySQL中称为存储引擎。 存储引擎是MySQL将数据存储在文件系统中的存储方…

ELK日志收集系统简述

一、概述 &#xff08;一&#xff09;ELK由三个组件构成 ELK是三个开源软件的缩写&#xff0c;分别是Elasticsearch、Logstash、Kibana ELK 架构基本组成 &#xff08;二&#xff09;作用 1、日志收集 2、日志分析 3、日志可视化 &#xff08;三&#xff09;为什么使用EL…

计网之应用层

因特网协议概述 常用协议应用层HTTP&#xff08;超文本传输协议&#xff09;、FTP&#xff08;文件传输协议&#xff09;、SMTP&#xff08;简单邮件传输协议&#xff09;、DNS&#xff08;域名系统&#xff09;、DHCP&#xff08;动态主机配置协议&#xff09;、SNMP&#xff…

15-6.自定义组件的代码共享

在微信小程序中使用 behaviors 进行代码共享&#xff0c;功能类似于vue的mixins 每个behavior可以包含一组属性、数据、生命周期函数和方法 每个组件可以引用多个behavior&#xff0c;behavior也可以引用其他的behavior 目录 1 创建behavior 2 使用behavior 3 behavio…

机器学习融合模型stacking14条经验总结和5个成功案例(互联网最全,硬核收藏)

我看了很多关于融合模型stacking文章&#xff0c;很多作者倾向于赞美融合模型stacking&#xff0c;对其缺点轻描淡写&#xff0c;这容易误导初学者。一叶障目就是这意思。 我的很多学员喜欢用融合模型作为论文或专利创新点&#xff0c;这是一个热门技术。 最近有个同学在论文…

MySQL:七种 SQL JOINS 的实现(图文详解)

MySQL&#xff1a;7种SQL JOINS的实现 前言一、图示表示二、代码举例1、INNER JOIN&#xff08;内连接&#xff09;2、LEFT JOIN&#xff08;左连接&#xff09;3、RIGHT JOIN&#xff08;右连接&#xff09;4、OUTER JOIN&#xff08;全连接&#xff09;5、LEFT EXCLUDING JOI…

微信小程序入门学习02-TDesign中的自定义组件

目录 1 显示文本2 自定义组件3 变量定义4 值绑定总结 我们上一篇讲解了TDesign模板的基本用法&#xff0c;如何开始阅读模板。本篇我们讲解一下自定义组件的用法。 1 显示文本 官方模板在顶部除了显示图片外&#xff0c;还显示了一段文字介绍。文字是嵌套在容器组件里&#xf…

数据库的操作

前言 在之前的文章中&#xff0c;我们已经了解了什么是数据库&#xff0c;以及为什么有数据库&#xff0c;和数据库有什么作用&#xff0c;有了这些宏观概念之后&#xff0c;本章为大家进一步详细介绍对于数据库在Linux上如何具体操作。 1.创建数据库 1.1创建数据库语法 语法…