嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)

本文涉及的产品
云解析DNS-重点域名监控,免费拨测 20万次(价值200元)
简介: 嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令

复制目录时,常用如下命令:

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


rm


1670847849756.jpg


删除目录时,常用如下命令:

$ rm  -rf  dir_a
r:recursive,递归地,即删除所有文件
f:force,强制删除


cat


1670847855969.jpg


touch


1670847862128.jpg


1.3.3 改变文件的权限和属性


chgrp:改变文件所属用户组

chown:改变文件所有者

chmod:改变文件的权限


chgrp


改变文件所属用户组

chgrp 【-R】 dirname/filename  ...


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

范例:

chgrp  hy  install.log


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


chown


改变文件的所有者

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


-R:也是递归子目录。

范例:

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


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


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这个文件的所有权限设置都启用。


符号类型改变文件权限方式

使用u、g、o三个字母代表user、group、others 3中身份。此外a代表all,即所有身份。

范例:

chmod u=rwx,go=rx  .bashrc

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

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


1.3.4 查找/搜索命令


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目录下两天内有变动的文件。


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个命令的结果中搜索。


1.3.5 压缩/解压命令


压缩的目的

在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽。 接收到文件后,解压即可。


压缩的类型有2种:有损压缩、无损压缩

有损压缩

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

无损压缩

如普通文件的压缩,为了保证信息的正确传递,不希望文件经过压缩或解压后,出现任何差异。

后面讲解的都是无损压缩。

单个文件的压缩(解压)使用gzip 和bzip2 ,多个文件和目录使用tar。

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只能压缩单个文件,不能压缩目录。

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的的压缩率更高。


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 压缩文件名 目录名
$ 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.3.6 网络命令


ifconfig


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


-a :显示所有网卡接口

up:激活网卡接口

down:关闭网卡接口

address:xxx.xxx.xxx.xxx,IP地址


示例:

1)ifconfig:查看当前正在使用的网卡

$ ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.1.137  netmask 255.255.255.0  broadcast 192.168.1.255
    inet6 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 0
    TX packets 801210  bytes 138020387 (138.0 MB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


2)ifconfig -a:查看所有网卡

$ ifconfig -a
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.1.137  netmask 255.255.255.0  broadcast 192.168.1.255
    inet6 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 0
    TX packets 801287  bytes 138033739 (138.0 MB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=8<LOOPBACK>  mtu 65536
    inet 127.0.0.1  netmask 255.0.0.0
    loop  txqueuelen 1000  (Local Loopback)
    RX packets 51460  bytes 3249553 (3.2 MB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX 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


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


路由信息使用route命令查看,其输出信息可以参考链接:

https://akaedu.github.io/book/ch36s05.html

相关文章
|
7月前
|
Ubuntu 搜索推荐 Linux
详解Ubuntu的strings与grep命令:Linux开发的实用工具。
这就是Ubuntu中的strings和grep命令,透明且强大。我希望你喜欢这个神奇的世界,并能在你的Linux开发旅程上,通过它们找到你的方向。记住,你的电脑是你的舞台,在上面你可以做任何你想做的事,只要你敢于尝试。
382 32
|
7月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
225 5
|
9月前
|
Ubuntu 安全 调度
在Ubuntu下安装Debian包:dpkg与apt命令的深度解构。
安装Debian包的知识,就像掌握了海上的航行技术,虽然起初会让人感到陌生甚至困惑,但只要你积累熟练,就能在Ubuntu的世界里畅游无阻。就像每一位成功的航海家,掌握好这些工具,去探索属于你的Ubuntu新世界吧!
329 21
|
8月前
|
Ubuntu Linux
Ubuntu中dpkg和apt命令:debian包安装详解
希望这让你对于Ubuntu中的dpkg和apt命令有了更为清晰的理解。下次你面对软件包安装的问题,就可以轻松应对,优雅地在你的Linux系统中游刃有余了。
804 10
|
10月前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
1084 25
|
11月前
|
Ubuntu NoSQL Linux
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
571 6
《docker基础篇:3.Docker常用命令》包括帮助启动类命令、镜像命令、有镜像才能创建容器,这是根本前提(下载一个CentOS或者ubuntu镜像演示)、容器命令、小总结
|
Ubuntu
ubuntu和debian 的安装包dpkg管理命令对安装包进行安装,查询,卸载
Ubuntu dpkg 软件包管理命令概览:安装、卸载、查看和配置软件包。包括解决依赖、强制卸载、列出及过滤已安装包、查看包详情等操作。
658 10
|
缓存 Ubuntu 网络协议
ubuntu ifconfig命令找不到
通过上述指导,无论你是面临 `ifconfig`命令缺失的困惑,还是希望深入了解Ubuntu系统下的网络管理技巧,都能找到针对性的解决方案,进一步提升你的系统管理能力。
523 2
|
缓存 Ubuntu 网络协议
ubuntu ifconfig命令找不到
通过上述指导,无论你是面临 `ifconfig`命令缺失的困惑,还是希望深入了解Ubuntu系统下的网络管理技巧,都能找到针对性的解决方案,进一步提升你的系统管理能力。
360 1
|
8月前
|
Ubuntu Linux 编译器
在Ubuntu Linux系统下如何搭建并安装EDK2
以上就是在Ubuntu Linux系统下搭建并安装EDK2的过程。这个过程可能会有些复杂,但只要按照步骤一步步来,应该不会有太大问题。如果在过程中遇到任何问题,都可以在网上找到相应的解决方案。希望这个指南能对你有所帮助!
322 17