从今天起,我将陆续分享一些关于linux的学习笔记,这些笔记涵盖了从arm裸机到uboot移植、linux应用编程和网络编程,再到linux驱动开发。同时,也会穿插介绍stm32对一些小模块(如wifi、蓝牙模块等)的驱动开发。请持续关注!
今天我们将探讨Linux中常用的命令,掌握这些命令是进行Linux系统基本操作的关键。
在介绍命令之前,先介绍一下我们的实验平台。我们选择在windows系统上安装VMware虚拟机,然后在虚拟机中安装ubuntu系统。Linux有命令行模式和GUI模式,要进入命令行模式,只需右键点击并选择进入终端即可。
一、常用指令
1、ls命令
在讲解ls命令之前,先了解几个概念。
隐藏文件和非隐藏文件:在Windows中,可以通过属性设置让文件隐藏,而在Linux中,隐藏文件是以点(.)开头的文件。
相对路径和绝对路径:相对路径是从当前路径出发,到达某个位置。而绝对路径是从根目录出发,到达某个位置,在Linux中根目录是一个斜杠(/),因此以斜杠开头的就是绝对路径。
(1)ls(list,列表)
用途:以列表形式显示当前文件夹下所有文件。
ls -a显示所有文件,包括隐藏文件。
ls -l以详细信息显示。
ls -a -l、ls -l -a、ls -la、ls -al这四种方式都可以。
直接使用ls命令显示当前文件夹下的文件,但不包括隐藏文件。要显示隐藏文件,需要加上-a选项,而要查看详细信息,则需要加上-l选项。
在详细信息中,我们可以看到前面的10个字符,这些字符是有意义的。第一个字符表示文件类型:
- 表示普通文件,包括文本文件和二进制文件,如a.c、1.txt、a.out都是普通文件。
d 表示文件夹,d是Directory的缩写。
l 表示符号连接文件,后面会用->打印出它指向的文件。
s 表示socket文件。
p 表示管道文件pipe。
后面的9个字符表示文件的属性,每三个字符为一组。第一组表示文件属主的权限,第二组表示属主所在组的权限,第三组表示其他组的权限。(Linux是多用户系统,很多系统都是多用户的,Windows也是)
其中,r表示可读,w表示可写,x表示可执行,-表示无权限。
通过这些字符,我们可以了解文件的属性或权限。
(2) cd(change directory,更改目录)
用途:用于切换目录。
涉及到相对路径和绝对路径。
cd ..表示上一级目录。
.表示当前目录。
cd用于跳转到你需要去的地方,例如cd /abc/def/。
(3) pwd(print work directory,打印工作目录)
用途:打印当前的绝对路径。
(4) mkdir(make directory,创建文件夹)
用途:创建空文件夹。
mkdir -p用于级联创建文件夹。
(5) mv(move,移动)
用途:在目录间移动文件,重命名文件。
mv 源文件路径名 目标文件路径名。
(6) touch
用途:创建空文件。
touch 路径名。
(7) cp(copy,复制)
用途:复制文件或文件夹。
cp 源文件路径名 目标文件路径名。
cp -r用于复制文件夹。
cp -f用于强制复制。
实际操作中,通常使用cp -f复制文件,cp -rf复制文件夹。
(8) rm(remove,去除,删除)
用途:删除文件或文件夹。
rm 文件路径名。
rm -r 文件夹路径名。
(9) cat
用途:直接在命令行下显示文件内容。
也可以用来向文件输入,暂时不详细讨论。
(10)rmdir(remove directory,删除文件夹)
用途:删除空文件夹。
rmdir和rm -r的区别:rmdir只能删除空文件夹,而rm -r可以删除空文件夹和非空文件夹。
(11) ln(link,连接文件)
基础:在Windows中,快捷方式实际上是与其指向的文件独立的两个文件,两个都占用硬盘空间,但访问快捷方式的效果等同于访问指向的文件。
Linux中有两种连接文件:
一种是软连接(符号连接),相当于Windows中的快捷方式。
一种是硬连接。
创建软连接文件:ln -s 源文件名 符号连接文件名。
例如:ln -s src.c linker.c,linker.c就是src.c的一个符号连接文件。
注意:这里的源文件名只能是当前文件夹下的,而符号连接名可以在其他目录下。否则会出现错误。
硬连接:ln 源文件名 连接文件名。
硬连接实际上与源文件在硬盘中是同一个东西,效果类似于硬盘上的一个文件,在文件系统上看起来像是多个文件。每次删除一个文件时,只要它还有其他硬连接存在,这个文件就不会被真正删除。只有当所有连接文件都删除后,这个文件才会被真正从硬盘上删除。
(12) man
用途:查询man手册,获取帮助信息。这类似于某些软件的help功能,用于查询一些指令的用法,或者是API函数,或者是C库函数。
man 1 ls表示查询的是linux命令。
man 2 xxx表示查询的是Linux API。
man 3 xxx表示查询的是C库函数。
注意:在man手册中查询时,退出按Q键(Q是quit的缩写)。
(12) apt-get
用途:在Ubuntu中用于在线安装、卸载软件的程序。
apt-get install vim。
apt-get remove vim。
注意,安装和卸载都是在线进行的,因此Ubuntu必须能上网才能使用apt-get。还要注意的是,安装或卸载程序需要在管理员模式(root)下进行,其他用户可能会没有权限。(关于如何切换用户等内容将在后面说明)