Linux常用命令/查找/搜索命令/压缩/解压命令网络命令

article/2025/9/23 22:33:12

在线课堂:https://www.100ask.net/index(课程观看)
论  坛:http://bbs.100ask.net/(学术答疑)
开 发 板:https://100ask.taobao.com/ (淘宝)
     https://weidongshan.tmall.com/(天猫)
交流群一:QQ群:869222007(鸿蒙开发/Linux/嵌入式/驱动/资料下载)
交流群二:QQ群:536785813(单片机-嵌入式)
公 众 号:百问科技


版本日期作者说明
V12020韦东山技术文档

Linux常用命令

1.pwd

在这里插入图片描述

2.cd

在这里插入图片描述
cd命令有些缩略用法:

$ cd  -   // 进入上次目录, 比如先进入a目录再进入b目录,执行此命令后即回到a目录
$ cd  ~   // 进入家目录

3.mkdir

在这里插入图片描述

4.rmdir

在这里插入图片描述

5.ls

在这里插入图片描述
使用示例:
在这里插入图片描述
在这里插入图片描述

6.cp

在这里插入图片描述
在这里插入图片描述
复制目录时,常用如下命令:

$ cp  -rfd  dir_a  dir_b

r:recursive,递归地,即复制所有文件
f:force,强制覆盖
d:如果源文件为链接文件,也只是把它作为链接文件复制过去,而不是复制实际文件

7.rm

在这里插入图片描述
删除目录时,常用如下命令:

$ rm  -rf  dir_a

r:recursive,递归地,即复制所有文件
f:force,强制删除

8.cat

在这里插入图片描述

9. touch

在这里插入图片描述

改变文件的权限和属性

chgrp:改变文件所属用户组
chown:改变文件所有者
chmod:改变文件的权限

1. chgrp

改变文件所属用户组

chgrp 【-R】 dirname/filename  ...

-R : 进行递归的持续更改,也连同子目录下的所有文件、目录都更新成为这个用户组之意。常常用在更改某一目录内所有文件的情况。
范例:

chgrp  hy  install.log

将install.log文件的用户组改为hy用户组。注意hy用户组必须要在/etc/group 文件内存在才可以。

2. chown

改变文件的所有者

chown [-R]  账号名  文件或目录
chown [-R] 账号名:组名  文件或目录

-R:也是递归子目录。
范例:

chown bin install.log
chown  book:book  install.log

改变文件所有者和用户组的这两个命令的应用场景:复制文件,由于复制行为会复制执行者的属性和权限,因此复制后需要改变文件所属用户、用户组等。

3. chmod

改变文件的权限
文件权限有两种设置方法:数字类型改变权限和符号改变权限。
首先说明各个权限对应的数字:
① r: 4或0
② w: 2或0
③ x: 1或0
这3种权限的取值相加后,就是权限的数字表示。
例如:文件a的权限为“-rwxrwx—”,它的数值表示为:
① owner = rwx = 4+2+1 = 7
② group = rwx = 4+2+1 = 7
③ others = — = 0+0 +0 = 0
所以在设置权限时,该文件的权限数字就是770。使用数值改变文件权限的命令如下:

chmod [-R]  xyz  文件或目录

① xyz : 代表权限的数值,如770。
② -R : 以递归方式进行修改,比如修改某个目录下所有文件的属性。
范例:

chmod 777 .bashrc 

将文件.bashrc这个文件的所有权限设置都启用。

  1. 符号类型改变文件权限方式
    使用u、g、o三个字母代表user、group、others 3中身份。此外a代表all,即所有身份。
    范例:
chmod u=rwx,go=rx  .bashrc

也可以增加或去除某种权限,“+”表示添加权限,“-”表示去除权限:

chmod a+w  .bashrc
chmod a-x  .bashrc

查找/搜索命令

1. find

在Windows中搜索文件,一般查找文件需要传入两个条件:
a. 在哪些目录中查找;
b. 查找的内容;

在Linux中,查找文件的也需要这两个条件,不同于Windows使用搜索框查找,Linux中使用find命令查找文件。
find命令格式为:

find 目录名 选项 查找条件

举例1:

$ find  /home/book/dira/  -name  " test1.txt " 

说明:
a) /home/book/dira/指明了查找的路径。
b)“-name”表明以名字来查找文件 。
c)“test1.txt”,就指明查找名为“test1.txt”的文件。

举例2:

$ find  /home/book/dira/ -name  " *.txt " 

说明: 查找指定目录下面所有以“.txt”结尾的文件,其中“*”是通配符。

举例3:

find  /home/book/dira/  -name "dira"	

说明: 查找指定目录下面是否存在“dira”这个目录或文件,“dira”是名称。

注意:
① 如果没有指定查找目录,则为当前目录。

$ find . -name " *.txt "    //其中.代表当前路径。 
$ find -name " *.txt "      //没加路径,默认是当前路径下查找。

② find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件

$ find  /home/book  -mtime -2       //查找/home目录下两天内有变动的文件。

2. grep

grep命令的作用是查找文件中符合条件的字符串,其格式如下:

grep [选项] [查找模式] [文件名]

假设dira目录的test1.txt和dirb目录的test1.txt都含有如下内容: aaa AAAAAA abc abcabcabc cbacbacba match_pattern nand->erase。

通过查找字符串,希望显示如下内容:
1)所在的文件名----grep查找时默认已经显示目标文件名
2)所在的行号------使用-n选项。

grep -rn “字符串” 文件名 r(recursive):递归查找 n(number):显示目标位置的行号 字符串:要查找的字符串 文件名:要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录。
举例:

//在test1.txt中查找字符串abc grep -rn "abc" * 在当前目录递归查找字符串abc
$ grep -n "abc" test1.txt  

注意:可以加入-w全字匹配。

可以在grep的结果中再次执行grep搜索,比如搜索包含有ABC的头文件,可执行如下命令:

$ grep  “ABC”  *  -nR  |  grep “\.h”

上述命令把第1个命令“grep “ABC” * -nR”通过管道传给第2个命令。
即第2个命令在第1个命令的结果中搜索。

压缩/解压命令

压缩的目的: 在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽。 接收到文件后,解压即可。
压缩的类型有2种:有损压缩、无损压缩:

a. 有损压缩:
如mp4视频文件,在压缩过程中减少了很多帧的数据,但是对观看者而言没有影响。当然mp3音乐文件也是有损压缩。

b. 无损压缩:
如普通文件的压缩,为了保证信息的正确传递,不希望文件经过压缩或解压后,出现任何差异。
后面讲解的都是无损压缩。
单个文件的压缩(解压)使用gzip 和bzip2 ,多个文件和目录使用tar。

1. gzip

gzip的常用选项:

-l(list)	    列出压缩文件的内容。
-k(keep)	    在压缩或解压时,保留输入文件。
-d(decompress)	将压缩文件进行解压缩。

举例:
1) 查看压缩文件

$ gzip -l  pwd.1.gz

2) 解压文件

$ gzip -kd pwd.1.gz   //该压缩文件是以.gz结尾的单个文件

3) 压缩文件

$ gzip -k mypwd.1    /得到了一个.gz结尾的压缩文件

注意:
1)如果gzip不加任何选项,此时为压缩
压缩完该文件会生成后缀为.gz的压缩文件,并删除原来的文件。
所以,推荐使用gzip -k来压缩源文件,这样会保留原来的文件。
2)相同的文件内容,如果文件名不同,压缩后的大小也不同。
3)gzip只能压缩单个文件,不能压缩目录。

2. bzip2

bzip2的常用选项:

-k(keep)	在压缩或解压时,保留输入文件; 
-d(decompress)	将压缩文件进行解压缩;

1) 压缩文件

$ bzip2 -k mypwd.1 得到一个.bz2后缀的压缩文。

2) 解压文件

$ bzip2 -kd mypwd.1.bz2

注意:
1)如果bzip2不加任何选项,此时为压缩
压缩完该文件会生成后缀为.bz2的压缩文件, 并删除原来的文件。
所以说,推荐使用bzip2 -k 来压缩文件,这样可以保留原来的文件。

2)bzip2只能压缩单个文件,不能压缩目录。

单个文件的压缩使用gzip或bzip2, 压缩有两个参数:
1)压缩时间
2)压缩比。
一般情况下,小文件使用gzip来压缩,大文件使用bzip2来压缩。bzip2的的压缩率更高。

3. tar

tar常用选项:

-c(create):表示创建用来生成文件包 。
-x:表示提取,从文件包中提取文件。
-t:可以查看压缩的文件。
-z:使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
-j:使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。 
-v(verbose):详细报告tar处理的信息。
-f(file):表示文件,后面接着一个文件名。 -C <指定目录> 解压到指定目录。

例1:tar打包、gzip压缩

1)把目录dira压缩、打包为dira.tar.gz文件:

$ tar czvf dira.tar.gz dira。

注意:“tar –czvf”与“tar czvf”是一样的效果,所以说,后面统一取消“-”。

2)查看压缩文件:

$ tar tvf  dira.tar.gz

3) 解压文件,可以用-C 指定解压到哪个目录:

$ tar xzvf dira.tar.gz                 //解压到当前目录 
$ tar xzvf dira.tar.gz -C /home/book   //解压到/home/book。

例2:tar打包、bzip2压缩

1)把目录dira压缩、打包为dira.tar.bz2文件

$ tar cjvf dira.tar.bz2 dira

2)查看压缩文件

$ tar tvf dira.tar.bz2

3)解压文件,可以用-C 指定解压到哪个目录

$ tar xjvf dira.tar.bz2                   //解压到当前目录:  
$ tar xjvf dira.tar.bz2 -C /home/book     //解压到/home/book

网络命令

1. ifconfig

查看网络、设置IP。ifconfig常用选项:

-a :显示所有网卡接口
up:激活网卡接口 
down:关闭网卡接口
address:xxx.xxx.xxx.xxx,IP地址

示例:

1)ifconfig:查看当前正在使用的网卡
$ ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.1.137  netmask 255.255.255.0  broadcast 192.168.1.255inet6 fe80::4f45:59fb:ddb7:c274  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:ab:1d:05  txqueuelen 1000  (Ethernet)RX packets 998794  bytes 176687882 (176.6 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 801210  bytes 138020387 (138.0 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
2)ifconfig -a:查看所有网卡
```c
$ ifconfig -a
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.1.137  netmask 255.255.255.0  broadcast 192.168.1.255inet6 fe80::4f45:59fb:ddb7:c274  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:ab:1d:05  txqueuelen 1000  (Ethernet)RX packets 998889  bytes 176699569 (176.6 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 801287  bytes 138033739 (138.0 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=8<LOOPBACK>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0loop  txqueuelen 1000  (Local Loopback)RX packets 51460  bytes 3249553 (3.2 MB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 51460  bytes 3249553 (3.2 MB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
3) 设置网IP:
$ sudo ifconfig ens160 192.168.1.137

2. route和DNS

确保Windows和Ubuntu的网络能互相ping通之后,如果Ubuntu无法上网,原因通常有2个:路由没设置好,DNS没设置好。

如果执行以下命令不成功,表示路由没设置好:

$ ping  8.8.8.8
connect: Network is unreachable

如果“ping 8.8.8.8”成功,但是“ping www.baidu.com”不成功,则是DNS没设置好:

$ ping www.baidu.com
ping: unknown host www.baidu.com

DNS的设置比较简单,8.8.8.8是好记好用的DNS服务器,修改Ubuntu中的/etc/resolv.conf文件,内容如下:

nameserver  8.8.8.8

http://chatgpt.dhexx.cn/article/oyBb8ndt.shtml

相关文章

linux tar -czvf 详解,Linux tar命令详解

当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令) tar常见命令参数 必要参数有如下: -A 新增压缩文件到已存在的压缩 -c 建立新的压缩文件 -d 记录文件的差别 -r 添加文件到已经压缩的文件 -u 添加改变了和现…

Java中几种常量池(字符串常量池, Class常量池, 运行时常量池)的区别与联系

简介&#xff1a; 这几天在看Java虚拟机方面的知识时&#xff0c;看到了有几种不同常量池的说法&#xff0c;然后我就去CSDN、博客园等上找资料&#xff0c;里面说的内容真是百花齐放&#xff0c;各自争艳&#xff0c;因此&#xff0c;我好好整理了一下&#xff0c;将我自认为…

Java字符串常量池详解(StringTable)

前言&#xff1a;在介绍字符串常量池之前&#xff0c;我们先来简单了解下Java中字符串的概念以及常见的一些问题. 参考书籍&#xff1a; 《Java核心技术》 参考网站&#xff1a;牛客 作者水平很有限&#xff0c;如果发现错误&#xff0c;麻烦及时告知作者哦&#xff01;十分感谢…

java常量池在哪里_java常量池在哪?有什么用处?

为了更方便的使用对象&#xff0c;常量池是我们需要了解的必要一环&#xff0c;下面来看看常量的用处及它的存放地点。 Java常量池存放地点在哪? 如图&#xff1a; 在Java6和6之前&#xff0c;常量池一般是存放在方法区中的&#xff0c;到了Java7&#xff0c;常量池就被存放到…

Java常量池理解

Java常量池理解 常量池分为两种&#xff1a;静态常量池和运行时常量池。 静态常量池 每个类在编译之后都会生成class文件&#xff0c;而class文件中就包含有静态常量池&#xff0c;分析class文件&#xff0c;如下图所示&#xff1a; 由于常量池中的常量的数量不是固定的&…

Java 常量池详解(二)class文件常量池 和 Java 常量池详解(三)class运行时常量池

Java 常量池详解&#xff08;一&#xff09;字符串常量池 2.class文件常量池&#xff08;class constant pool&#xff09; 产生时机&#xff1a;当java文件被编译成class文件之后&#xff0c;就会生成class常量池&#xff0c;跟jvm 无关系 常量池主要存放两大类常量&#xff…

java 查看类常量池_Java中常量以及常量池

1、举例说明 变量 常量 字面量 1 int a=10;2 float b=1.234f;3 String c="abc";4 final long d=10L; a,b,c为变量,d为常量 两者都是左值;10,1.234f,"abc",10L都是字面量; 2、常量池: 常量池专门用来用来存放常量的内存区域,常量池分为:静态常量池…

一文解析Java常量池、静态常量池、运行时常量池和字符串常量池的区别与联系

Java常量池关系图 Java常量池 Java常量池是Java编译器在编译Java源代码时&#xff0c;为了优化性能和节省空间所创建的一种常量缓存机制。它包含了所有的基本数据类型、字符串常量、符号引用等常量&#xff0c;这些常量都是在编译期被确定下来的&#xff0c;并被存储在.class文…

java常量池总结

java常量池 1.class常量池2.运行时常量池3.基本类型包装类常量池4.字符串常量池 1.class常量池 在JAVA中&#xff0c;Java类&#xff08;.java&#xff09;文件被编译后就会形成一份class文件&#xff1b;class文件中除了包含类的版本、字段、方法、接口等描述信息外&#xff…

java号码池_Java常量池详解

jvm虚拟内存分布图&#xff1a; 程序计数器&#xff1a;JVM执行程序的流水线。 本地方法栈&#xff1a;JVM调用操作系统方法所使用的栈。 虚拟机栈&#xff1a;JVM执行Java代码所使用的栈。 方法区&#xff1a;存放一些常量、静态变量、类信息等&#xff1b;可以理解为class文件…

java常量池在哪里_【Java基础】Java常量池在哪里? - 收获啦

1.java常量池的介绍 java中的常量池&#xff0c;通常指的是运行时常量池&#xff0c;它是方法区的一部分&#xff0c;一个jvm实例只有一个运行常量池&#xff0c;各线程间共享该运行常量池。 java常量池简介&#xff1a;java常量池中保存了一份在编译期间就已确定的数据。它里面…

java静态池_java 常量池静态变量详解

Java中的常量池&#xff0c;实际上分为两种形态&#xff1a;静态常量池和运行时常量池。 所谓静态常量池&#xff0c;即*.class文件中的常量池&#xff0c;class文件中的常量池不仅仅包含字符串(数字)字面量&#xff0c;还包含类、方法的信息&#xff0c;占用class文件绝大部分…

java常量池在哪里_Java常量池详细说明

java常量池技术 java中的常量池技术&#xff0c;是为了方便快捷地创建某些对象而出现的&#xff0c;当需要一个对象时&#xff0c;就可以从池中取一个出来(如果池中没有则创建一个)&#xff0c;则在需要重复创建相等变量时节省了很多时间。常量池其实也就是一个内存空间&#x…

java中常量池存的是什么_Java中常量池是什么?Java常量池的介绍

本篇文章给大家带来的内容是关于Java中常量池是什么?Java常量池的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 Java当中的常量池 在Java虚拟机jvm中,内存分布为:虚拟机堆,程序计数器,本地方法栈,虚拟机栈,方法区。 程序计数器是jvm执行程序的…

java long常量池_Java-常量池

Java-常量池 常量池是类文件中最复杂的数据结构。对于JVM字节码来说&#xff0c;如果操作数是很常用的数字&#xff0c;比如 0&#xff0c;这些操作数是内嵌到字节码中的。如果是字符串常量和较大的整数等&#xff0c;Class文件则会把这些操作数存储到常量池中&#xff0c;当使…

Java常量池原理以及垃圾回收

Java常量池 常量池&#xff1a;用于存放编译期间生成的各种字面量和符号引用 字面量&#xff1a;由字母数字等构成的字符串或数值常量&#xff0c;如int a 1中 1就是字面量 符号引用&#xff1a;编译原理中的概念&#xff1b;是相对直接引用来说的&#xff0c;主要包括三类常…

Java 常量池详解(一)字符串常量池

在Java的内存分配中&#xff0c;总共3种常量池&#xff1a; Java 常量池详解&#xff08;二&#xff09;class文件常量池 和 Java 常量池详解&#xff08;三&#xff09;class运行时常量池 1.字符串常量池(String Constant Pool&#xff09; 在JDK1.7之前运行时常量池逻辑包含…

Java常量池储存什么_JAVA常量池中存储的常量是什么

展开全部 我当初也存在这样一个疑问&#xff0c;下面我把e69da5e887aa3231313335323631343130323136353331333262356165当初所搜集的一些资料以及自己的理解贴出来给你看看(比较多&#xff0c;需要耐心点看&#xff0c;呵呵)&#xff1a; 理解Java常量池 JVM运行时数据区的内存…

深度剖析Java常量池

Class常量池 class常量池可以理解为是Class文件中的资源仓库。Class文件中除了包含类的版本、字段、方法、接口等描述信息外&#xff0c;还有一项信息就是常量池(constant pool table)&#xff0c;用于存放编译期生成的各种字面量和符号引用。 一个Class文件的16进制大体结构如…

Java常量池

Java常量池 一.相关知识 1.何为常量 第一种常量&#xff1a;是一个值&#xff0c;我们将这个值本身称为常量。比如&#xff1a; 整型常量&#xff1a;1024 实型常量&#xff1a;1.024 字符常量&#xff1a;g c w 字符串常量&#xff1a;"gcw" 逻辑常量&#xff1a;t…