Ubuntu终端操作
Ubuntu终端
Ubuntu终端与Windows的命令行窗口相同。(鼠标右击桌面空白处,有打开终端的选项。)
Ubuntu软件安装的五种方法
一、通过APP Store安装
打开此软件,里面有好多软件。
二、使用APT工具安装(常用)
使用 APT 工具安装软件。Linux apt 命令,apt(Advanced Packaging Tool)是一个在 Debian 和 Ubuntu 中的 Shell 前端软件包管理器。apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令。apt 命令执行需要超级管理员权限(root)。
列出所有可更新的软件清单命令:sudo apt update
升级软件包:sudo apt upgrade
列出可更新的软件包及版本信息:apt list --upgradeable
升级软件包,升级前先删除需要更新软件包:sudo apt full-upgrade
安装指定的软件命令:sudo apt install <package_name>
安装多个软件包:sudo apt install <package_1> <package_2> <package_3>
更新指定的软件命令:sudo apt update <package_name>
显示软件包具体信息,如:版本号,安装大小,依赖关系等:sudo apt show <package_name>
删除软件包命令:sudo apt remove <package_name>
清理不再使用的依赖和库文件: sudo apt autoremove
移除软件包及配置文件: sudo apt purge <package_name>
查找软件包命令: sudo apt search <keyword>
列出所有已安装的包:apt list --installed
列出所有已安装的包的版本信息:apt list --all-versions
三、deb软件包安装(常用)
dpkg-底层的包管理工具。使用dpkg命令安装deb软件包,命令:sudo dpkg -l xxxx.deb。(xxxx就是你要装的软件,后缀必须是.deb的。在Windows下,我们安装的是.exe文件,Ubuntu下是.deb)
网上下载.deb文件包,然后dpkg命令执行:安装deb软件包。
安装软件:dpkg -i xxxx. deb
查看安装目录:dpkg -L xxxx
显示版本:dpkg -l xxxx
详细信息:dpkg -s xxxx
罗列内容:dpkg -c xxxx.deb
卸载软件:dpkg -r xxxx
四、自己下载程序源码,make编译,安装。
make(编译)-->make install。
五、其他安装方法
有些软件用上面四种方法无法安装,或者相应软件的官方提供了自己的特殊的一种安装方法。
比如:QT扩展名是.run,就不能像.deb一样用dpkg命令安装。
Ubuntu文件系统结构
一、根目录 “/”
Linux下“/”就是根目录!所有的目录都是由根目录衍生出来的。(我把Ubuntu系统单独安装在一个硬盘,我这个盘是Ubuntu的根目录。)
二、Ubuntu文件系统结构
/xxx 就是根目录下的xxx文件夹。
/bin 存放二进制可执行文件(可用的命令),这些命令在单用户模式下也能够使用。可以被 root 和一般的账号使用。
/boot Ubuntu内核和启动文件,比如 vmlinuz-xxx。gurb引导装载程序。/cdrom 放上光盘之后里面会有光盘里存储的文件。
/dev 设备驱动文件。/etc 存放一些系统配置文件,比如用户账号和密码文件,各种服务的起始地址。
/home 系统默认的用户主文件夹,一般创建用户账户的时候,默认的用户主文件夹都会放到此目录下。如下图:
/lib和/lib64 存放库文件。
/media 此目录下放置可插拔设备,比如 SD 卡,或者 U 盘就是挂载到这个目录中。
/mnt 用户可使用的挂载点,如果要挂载一些额外的设备,那么就可以挂载到此处。
/opt 可选的文件和程序存放目录,给第三方软件放置的目录。
/proc 存放系统的一些运行文件运行信息,它是一个虚拟的文件系统。
/root root用户目录,也就是系统管理员目录。
/sbin 和/bin 类似,是存放一些二进制可执行文件。sbin下面的一般是系统开机过程中所需要的命令。
/srv 服务相关目录。比如网络服务。
/sys 记录内核信息,虚拟文件系统。
/tmp 临时目录,存放一些临时文件。
/var 存放一些变化的文件,比如日志文件。/usr usr不是user的缩写,而是UNIX Software Resource 的缩写,存放与系统用户有关的文件,会占用很大的存储空间!
/proc 虚拟文件系统,数据放置到内存中,存放系统运行信息。
三、绝对路径和相对路径
绝对路径:从根目录“/”算起的路径。
相对路径:相对于目前路径的文件名写法,比如./home/zzk。不是以“/“开头的就行,“.”代表当前路径,也可以 用“./表示,“..”代表上一层目录,也可以用“../”表示。“../../”代表返回上两级目录。
Ubuntu下磁盘管理
一、Ubuntu磁盘文件
/dev/sd* 文件,此类文件是磁盘设备文件,并不能直接访问磁盘,必须要将磁盘挂载到某一个目录下才可以访问。(dev文件目录下对应的是具体的设备)
最后四行,分别是拔掉U盘和插上U盘的磁盘设备。可知,U盘对应的磁盘设备文件是sdb和sdb1。
/dev/sdb表示U盘,/dev/sdb1表示U盘的第一个分区。
二、磁盘和目录的容量查询命令
df 命令:用于显示 Linux 系统中各文件系统的硬盘使用情况,包括文件系统所在硬盘分区的总容量、已使用的容量、剩余容量等。
du命令:用于显示目录或文件的大小。du会显示指定的目录或文件所占用的磁盘空间。
du --max-depth=<目录层数>:超过指定层数的目录后,予以忽略。
三、磁盘的挂载与卸载,分区和格式化
1、磁盘挂载与卸载
mount与umount命令
mount命令用于挂载Linux系统外的文件。
使用方法:mount /dev/ABCD /mnt:将 /dev/ABCD 挂在 /mnt 之下。
mount -o iocharset=utf8 /dev/sdb1 /media/lyp/Upan。挂载时候磁盘内容出现中文乱码的话用此命令挂载。utf8编码。
umount卸载命令需要在退出磁盘目录的情况下使用,处在磁盘目录中使用卸载命令会提示正在运行无法卸载。
2、磁盘分区
fdisk命令:用户创建、删除、调整和管理磁盘分区命令。
sudo fdisk -l:查看所有磁盘的分区。
删除磁盘分区前需要把磁盘卸载umount命令,然后如下图执行删除分区命令。(删除sdb1分区)
添加新分区
分区大小1GB=1024*1024*1024=1073741824B。一个扇区是512B。1073741824B / 512B = 2097152个扇区。2097152+2048=2099200个扇区。(不是从0个扇区开始,而是从2048个扇区开始的。)
3、磁盘格式化
磁盘分区创建好以后就可以格式化磁盘,使用命令 mkfs。如:mkfs -t vfat /dev/sdx。
格式化的意思就是给每个分区装一个文件系统,比如:FAT,EXT等。
Ubuntu下的压缩与解压缩
一、Linux下常用的压缩格式
Linux 下常用的压缩扩展名有:.tar、.tar.bz2、.tar.gz。
二、Windows下7.zip软件的安装
因为 Linux 下很多文件是.bzip2,.gz 结尾的压缩文件,因此需要在Windows下安装压缩软件。常用的有7.zip,Bandizip。
三、Ubuntu下gzip压缩工具(命令行操作)
.gzip工具负责压缩和解压缩.gz格式的压缩包:
gzip xxx//压缩
gzip -d xxx.gz//解压缩
gzip对文件夹进行压缩:
gzip -r xxx //对文件夹进行压缩
gzip -rd xxx //对文件夹进行解压缩gzip.虽然可以对文件夹进行压缩,但是并不能提供打包的服务,只是对文件夹中的所有文件进行了单独的压缩。(比如:创建一个a文件夹,里面有bcd三个文件,对a文件夹执行gzip -r,只会压缩里面的bcd文件成为b.gz,c.gz,d.gz,但a文件夹并未被打包为a.gz。)
四、bzip2压缩工具
和gzip类似,只是bzip2工具负责压缩和解压缩.bz2格式的压缩包。
bzip2 -z xxx //压缩
bzip2 -d xxxgz //解压缩
五、tar打包工具
tar 工具提供打包服务,就是将多个文件打包,比如:
tar -vcf test.tar test //将 test 打包成 test.tar
tar -vxf test.tar //解包(这种多选项命令,f要放在最后面)
tar -f //指定tar命令的归档文件
tar -c //创建新归档,创建压缩文件
tar -cf <归档之后的文件名> <要归档的文件或目录>
//将指定的文件或目录归档到一个新的归档文件中。-c
表示创建一个归档文件, -f
后跟归档文件名。归档文件名通常以.tar
为后缀,但也可选择其他后缀,比如:.tar.gz
表示gzip压缩的归档文件。
tar -x //从图档中解出文件,解压缩
tar -j //使用bzip2压缩格式
tar -z //使用gzip压缩格式
tar -v //打印出命令执行过程
压缩文件 非打包
# touch a.c
# tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz
上面的 tar 命令只提供了打包和解包的功能,tar 在提供打包和解包的同时使用gzip/bzip2进行压缩,实现类似windwos下winRAR软件的命令。
1、对tar.bz2进行压缩和解压缩
tar -yxif xxx.tar.bz2 //解压缩
tar -vgif xxx.tar.bz2 xxx //压缩
2、对tar.gz进行压缩和解压缩
tar -vxzf xxx.tar.gz //解压缩
tar -yczf xxx.tar.gz xxx //压缩
六、其它格式的压缩和解压缩
.rar格式
需要先安装rar:sudo apt-get install rar
rar x xxx.rar://解压缩
rar a xxx.rar xxx://压缩.zip 格式
zip -rv xxx.zip xxx://压缩使用“zip“命令
unzip -v xxx.zip://解压缩使用“unzip”命令
Ubuntu的用户和用户组
一、Linux用户
Linux 是一个多用户操作系统,不同的用户拥有不同的权限。可以查看和操作不同的文件。Ubuntu 有三种用户:
1、初次创建的用户。
2、root 用户
3、普通用户。
初次创建的用户权限比普通用户多,但是没有 root 用户多,初次创建的用户可以创建普通用户。
Linux 用户记录在/etc/passwd 这个文件内。
Linux 用户密码记录在/etc/shadow 这个文件内。
每个用户都有一个ID,叫做UID。
vi命令用来进入vi文本编辑器,vi文本编辑器是所有Unix及Linux系统下标准的编辑器。
sudo vi /etc/passwd:在vi文本编译器下打开/etc/passwd文件。
二、Linux用户组
为了方便管理,将用户进行分组。这样就可以设置非本组人员不能访问某些文件。每个用户可以属于多个不同的组。
用户:家里有你、弟弟、妹妹个人,每个人都有自己的房间,你们三个人都是用户,你们都不能随便的乱翻别人的房间。
用户组:你们三个都是一个家庭的,也就是属于同一个用户组,你们三个可以共用厨房,书房等空间。
因此:用户和用户组的存在就是为了控制文件的访问权限的。
每个用户组都有一个ID,叫做 GID。
用户组信息存储在/etc/group 文件中。
三、创建用户和用户组
1.图形化界面创建
要使用图形化界面创建用户和用户组的话就需要安装 gnome-system-tools 这个工具sudo apt-get install gnome-system-tools。
2.命令创建用户和用户组
添加用户:adduser 命令:adduser 用户名
用户查询: finger 命令:finger 用户名
修改用户密码:passwd 命令:passwd 用户名
删除用户: deluser命令:deluser 用户名
添加用户组:addgroup命令:addgroup 用户组名
显示组内用户名:groups命令:groups 用户组名
删除用户组:delgroup 命令:delgroup 用户组名
Ubuntu文件权限
一、Ubuntu/Linux文件权限
在使用 Windows 的时候我们很少接触到用户权限,最多就是打开某个软件出问题的时候会选择以“管理员身份”打开。Ubuntu下我们会常跟用户权限打交道,权限就是用户对于系统资源的使用限制情况,root 用户拥有最大的权限,装系统的时候创建的用户拥有root用户的部分权限,普通用户的权限最低。做嵌入式开发一般不关注用户的权限问题,因为嵌入式基本是单用户,做嵌入式开发重点关注的是文件的权限问题。
对于一个文件通常有三种权限:读(r)、写(w)和执行(x),使用命令“ls -l”可以查看某个目录下所有文件的权限信息。
注:对于目录来说,读许可权和执行许可权的意义不同。读许可权允许读目录,获得该目录中所有文件名的列表。要在一个目录中创建新文件,则必须对该目录具有写许可权和执行许可权。同样,删除一个文件,需要对目录具有写许可权和执行许可权。
-rw-rw-r--:就是文件权限。
第一位的一个 “-” 代表文件类型。具体来说,有以下几种可能的文件类型:
- “-” 表示常规文件 (regular file)。
- “d” 表示目录 (directory)。
- “l” 表示符号链接 (symbolic link)。
- “b” 表示块设备文件 (block device file)。
- “c” 表示字符设备文件 (character device file)。
- “s” 表示套接字文件 (socket file)。
- “p” 表示命名管道 (named pipe)。
-rw-rw-r--除第一位以外,剩下的每三位表示一组权限:
- 拥有者权限rw-:读写;
- 拥有者所在组权限rw-:读写;
- 其他用户权限r--:只能读。
数字表达权限
文件的权限有三种:读(r)、写(w)和执行(x),除了用 r、 w 和 x 表示以外,也可以使用二进制数表示,三种权限就可以使用 3 位二进制数来表示,一种权限对应一个二进制位,如果该位为 1 就表示具备此权限,如果该位为 0 就表示不具备此权限。
将三种权限 r、 w 和 x进行不同的组合,即可得到不同的二进制数和八进制数, 3 位权限可以组出 8 种不同的权限组合。
二、Ubuntu/Linux文件权限管理
权限管理命令:我们也可以使用 Shell 来操作文件的权限管理,主要用到“chmod”和“chown”这两个命令。
1、文件权限修改命令:chmod
命令“chmod”用于修改文件或者文件夹的权限,权限可以使用上面提到的数字表示也可以使用字母表示
命令格式:chmod [参数] [文件名/目录名]
主要参数:chmod -v:显示指令的执行过程。
chmod -c:效果类似“-v”参数,但仅回显更改的部分。
chmod -R:递归处理,指定目录下的所有文件及其子目录一起处理。
2、文件归属者修改命令:chown
chown命令用于更改文件或目录的所有者,即改变文件/目录的用户属性。在Linux系统中,只有超级用户(root)或文件的所有者可以使用 chown
命令。
命令格式:chown [选项] 用户.组 文件名/目录名
主要参数:chown -R:递归地更改目录及其下所有文件和子目录的所有者。
chown -v:显示详细的操作信息。
chown -c:只显示发生了更改的文件,如果没有更改则不显示。
如下图:将lyp用户组改为root;再将lyp用户改为root;最后将用户和用户组都改回lyp。
.root:改用户组。root:改用户。root.root:同时改用户和用户组。
Linux连接文件
一、Linux连接文件
Linux中有两种类型的链接:硬链接和软链接(符号链接)。符号连接类似Windows下的快捷方式。而硬连接通过文件系统的 inode 连接来产生新文件名,而不是产生新文件。
inode:记录文件属性,一个文件一个inode。inode 相当于文件ID,查找文件的时候要先找到inode,然后才能读出文件的内容。
二、ln命令与ll -i命令
ln命令用于创建连接文件:
ln [选项] 源文件 目标文件
选项:ln -s 创建符号链接(软连接)。默认是创建硬连接。
ln -f 强制创建连接文件,如果目标存在,那么先删除掉目标文件,然后再建立连接文件。
ll -i命令:文件列表命令,以长格式显示文件和目录,并显示它们的inode号码。每个文件和目录在文件系统中都有一个唯一的inode号码,它用来标识文件和目录。此命令可以帮助用户查看文件和目录的详细信息,包括文件权限、所有者、大小、创建日期和时间等。通过inode号码,用户可以更具体地操作文件,如删除或重命名。(下面有具体使用实例)
三、硬连接
硬链接是多个文件都指向同一个 inode,硬链接知识点:
1.具有相同inode的多个文件互为硬链接文件,创建硬链接相当于文件实体多了入口。
2.对于硬链接文件,只有删除了源文件以及对应的所有硬连接文件,文件实体才会被删除。
3.根据硬链接文件的特点,我们可以通过给文件创建硬连接的方式来防止文件误删除。
4.不论修改源文件还是连接文件,另一个文件的数据都会被改变。
5.硬连接不能跨文件系统。
6.硬连接不能连接到目录。
因为以上这些限制,硬链接其实不常用。
上图这三个hello,hello1,hello2是同一个inode。
执行hello,hello1,hello2,执行结果相同。
四、符号连接(软连接)
符号连接类似 Windows 下的快捷方式,符号链接也叫做软连接,软连接要用的多。符号连接相当于创建了一个独立的文件,这个文件会让数据读取指向它连接的哪个文件的文件名。软连接的特点:
1.可以连接到目录。
2.可以跨文件系统。
3.删除源文件以后,软连接文件也就"打不开了”。类似Windows把源文件删除后,快捷方式就没用了。
4.符号连接文件通过 -> 来指示具体的连接文件。
5.符号连接源文件要使用绝对路径,否则连接出问题。(不使用绝对路径的话,拷贝的时候会出现问题)
硬链接和软链接的不同之处在于,源文件删除后,软链接无法定位到源文件,所以会显示没有文件;硬链接类似于复制,删除源文件,硬链接依然可以访问。假如删除源文件后,重新创建一个同名文件,软链接将恢复;硬链接则不再有效。因为文件的 i 节点已经改变。
注意:修改硬链接的目标文件名,硬链接依然有效;修改软链接的目标文件名,软链接将断开;对一个已存在的链接文件执行移动或删除操作,有可能导致链接的断开。
Ubuntu下文本编辑
一、gedit编辑器
进行文本编辑是最常用的操作,Windows 下我们会使用记事本来完成,或者其它一些优秀的文本编辑器,比如:notepad++, Ubuntu 下也有一个自带的文本编辑器,那就是 gedit。gedit 是一个窗口式的编辑器。gedit是基于图形界面的,但大多数做嵌入式Linux开发时候是没有图形界面的,都是终端命令行操作。
二、vi/vim编辑器
一、vim编辑器三种工作模式
我们如果要在终端模式下进行文本编辑或者修改文件就可以使用 VI/VIM 编辑器,Ubuntu自带了 VI 编辑器,但是 VI 编辑器对于习惯了 Windows 下进行开发的人来说不方便,比如:不能使用键盘上的上下左右键调整光标位置。因此使用 VIM 编辑器,VIM 编辑器是 VI 编辑器升级版本, VI/VIM 编辑器都是一种基于指令式的编辑器,不需要鼠标,也没有菜单,仅仅使用键盘来完成所有的编辑工作。
我们需要先安装 VIM 编辑器,命令:sudo apt-get install vim
二、vim编辑器三种工作模式
vi xxx:使用vi编辑器打开文件。
/xxx:表示在文件中查找xxx
- 一般模式(指令模式):默认模式,用vi打开一个软件以后自动进入到此模式。
- 编辑模式:一般模式中无法编辑文件,要编辑文件就要进入编辑模式,按下“i、l、a、A、o、O、s、r"等就会进入到编辑模式。一般按下"a"进入编辑模式。按下ESC键可退出编辑模式。
- 命令行模式(底行模式):先进入到一般模式,然后输入 : 、/ 、? 这三个中的任意一个就可以进入到命令行模式。
VIM默认是以只读模式打开的文档,因此我们要切换到输入模式,切换到输入模式的命令如下:
i:在当前光标所在字符的前面,转为输入模式。
l:在当前光标所在行的行首转换为输入模式。
a:在当前光标所在字符的后面,转为输入模式。
A:在光标所在行的行尾,转换为输入模式。
o:在当前光标所在行的下方,新建一行,并转为输入模式。
O:在当前光标所在行的上方,新建一行,并转为输入模式。
s:删除光标所在字符。
r:替换光标处字符。
最常用的就是“a”,按下键盘上的“a”键,这时候终端左下角会提示“插入”字样,表示我们进入到了输入模式。
按Esc:会退出到指令模式(一般模式)。
三、保存退出
保存文档的命令是在底行模式中,我们要先进入到指令模式,进入底行模式的方式是先进入指令模式下,然后在指令模式下输入“:”进入底行模式。
当进入底行模式以后会在终端的左下角就会出现符号“:”,我们可以在“:”后面输入命令,常用的命令如下:
x:保存当前文档并且退出。
q:退出
w:保存文档
q!:退出vi/vim不保存文档。
如果我们要退出并保存文本的话需要在“:”底行模式下输入“wq”
四、其它操作方式
按下键盘上的上下左右键来控制光标。
按Esc处于一般模式下操作:
1、dd,删除光标所在行。ndd,删除光标所在行及其下n行。
2、u,撤销,恢复上一步。
3、. ,重复前一个操作。
4、y,复制光标所在行。nyy,复制光标所在向下n 行,比如 10yy 就是复制光标下 10行。5、p和P,p为复制(粘贴)到光标下一行,P 复制(粘贴)到光标上一行。
五、vim编辑器创建.c程序并编译
写在最后:希望本文可以帮助到各位读者,文章如有不足,欢迎大家指出,如果文章帮到你了,请一定帮忙点个赞哦。