Linux 常用命令学习 之 一
打开终端之后的 我们会了解 所使用的 字符串含义
其中@前面的 zhuxushuai 是 当前的用户名字
接下来的 zhuxushuai-virtual-machine 是 机器名字
最后的符号 $表示 当前是普通用户
输入指令 ls
是打印出当前所在目录中所有文件和文件夹
shell 操作
command -options [argument]
command: Shell 命令名称。
options:选项,同一种命令可能有不同的选项,不同的选项其实现的功能不同。
argument:Shell 命令是可以带参数的,也可以不带参数运行。
我们以 ls 代码
举例 ls
“ls”命令用来打印出当前目录下的所有文件和文件夹
ls -l
“ls -l”同样是打印出当前目录下的所有文件和文件夹,但是此命令会列出所有文件和文件夹的详细信息,比如文件大小、拥有者、创建日期等等。
ls/usr
“ls /usr”是用来打印出目录“/usr”下的所有文件和文件夹。
快捷键 Tab可以 补全 代码 好用
常用的 shell 命令
先 部分记录 后续使用 详细讲述
一 : 目录信息查看命令 ls
ls [选项] [路径]
ls 命令主要用于显示指定目录下的内容,列出指定目录下包含的所有的文件以及子目录,
它的主要参数有:
-a 显示所有的文件以及子目录,包括以“.”开头的隐藏文件。
-l 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。
-t 将文件按照创建时间排序列出。
-A 和-a 一样,但是不列出“.”(当前目录)和“…”(父目录)。
-R 递归列出所有文件,包括子目录中的文件。
Shell 命令里面的参数是可以组合在一起用的,比如组合“-al”就是显示所有文件的详细信息,包括以“.”开头的隐藏文件
二 : 目录切换命令 cd
cd [路径]
路径就是我们要进入的目录路径,比如下面所示操作:
cd / //进入到根目录“/”下,Linux 系统的根目录为“/”,
cd /usr //进入到目录“/usr”里面。
cd … //进入到上一级目录。
cd ~ //切换到当前用户主目录
三 : 当前路径显示命令pwd
pwd 命令用来显示当前工作目录的绝对路径,不需要任何的参数
四 : 系统信息查看命令 uname
unmae -r 列出当前系统的具体内核版本号
unmae -s 列出系统内核名称
uname -o列出系统信息
五 :清屏命令 clear
clear 命令用于清除终端上的所有内容,只留下一行提示符。
六 : 切换用户执行身份命令 sudo
Ubuntu(Linux)是一个允许多用户的操作系统,其中权限最大的就是超级用户 root,有时候我们执行一些操作的时候是需要用 root 用户身份才能执行,比如安装软件。通过 sudo 命令可以使我们暂时将身份切换到 root 用户。当使用 sudo 命令的时候是需要输入密码的,这里要注意输入密码的时候是没有任何提示的!
七 :添加用户命令 adduser
八 : 删除用户命令 deluser
九 : 切换用户命令 su
十 : 显示文件内容命令 cat
十一 : 显示和配置网络属性命令 ifconfig
主要参数如下:
interface 网络接口名称,比如 eth0 等。
up 开启网络设备。
down 关闭网络设备。
add IP 地址,设置网络 IP 地址。
netmask add 子网掩码。
十二 :系统帮助命令 man
Ubuntu 系统中有很多命令,这些命令都有不同的格式,不同的格式对应不同的功能,要完全记住这些命令和格式几乎是不可能的,必须有一个帮助手册,当我们需要了解一个命令的详细信息的时候查阅这个帮助手册就行了。Ubuntu 提供了一个命令来帮助用户完成这个功能,那就是“man”命令,通过“man”命令可以查看其它命令的语法格式、主要功能、主要参数说明等
十三 : 系统重启命令reboot
通过点击 Ubuntu 主界面右上角的齿轮按钮来选择关机或者重启系统,同样的我们也可以使用 Shell 命令“reboot”来重启系统,直接输入命令“reboot”然后点击回车键接口
十四 : 系统关闭命令poweroff
使用命令“reboot”可以重启系统,使用命令“poweroff”就可以关闭系统,在终端中输入命令“poweroff”然后按下回车键即可关闭 Ubuntu 系统
1.更新本地数据库
如果想查看本地哪些软件可以更新的话可以使用如下命令:
sudo apt-get update这个命令会访问源地址,并且获取软件列表并保存在本电脑上
2.检查依赖关系
有时候本地某些软件可能存在依赖关系,所谓依赖关系就是 A 软件依赖于 B 软件。通过
如下命令可以查看依赖关系,如果存在依赖关系的话 APT 会提出解决方案:
sudo apt-get check
3.软件安装
这个是重点了,安装软件,使用如下命令:
sudo apt-get install package-name
可以看出上述命令是由“apt-get”和“install”组合在一起的,“package-name”就是要
安装的软件名字,“apt-get”负责下载软件,“install”负责安装软件。比如我们要安装软件
Ubuntu 下的串口工具“minicom”,我们就可以使用如下命令:
sudo apt-get install minicom
执行上述命令以后就会自动下载和安装 minicom 软件
4、软件更新
有时候我们需要更新软件,更新软件的话使用命令:
sudo apt-get upgrade package-name
其中 package-name 为要升级的软件名字,比如我们升级刚刚安装的 minicom 这个软件
5、卸载软件
如果要卸载某个软件的话使用如下命令:
sudo apt-get remove package-name
其中 package-name 是要卸载的软件,比如卸载前面安装的 minicom 这个软件
Linux 的 文件系统
操作系统就是处理各种数据的,这些数据在硬盘上就是二进制,人类肯定不能直接看懂这些二进制数据,要有一个翻译器,将这些二进制的数据还原为人类能看懂的文件形式,这个工作就是由文件系统来完成的,文件系统的目的就是实现数据的查询和存储,由于使用场合、使用环境的不同,Linux 有多种文件系统,不同的文件系统支持不同的体系。
我们在使用 Windows 的时候新买一个硬盘回来一般肯定是将这个硬盘分为好几个盘,比如 C 盘、D 盘等。这个叫磁盘的分割,Linux 下也支持磁盘分割,Linux 下常用的磁盘分割工具为:fdisk,fdisk 这个工具我们后面会详细讲解怎么用,因为我们移植 Linux 的时候需要将SD卡分为两个分区来存储不同的东西。在 Windows下我们创建一个新的盘符以后都要做格式化处理,格式化其实就是给这个盘符创建文件系统的过程,我们在 Windows 格式化某个盘的时候都会让你选择文件系统。
Windows 下一般有 FAT、NTFS 和 exFAT这些文件系统。同样的,在 Linux 下我们使用 fdisk 创建好分区以后也是要先在创建好的分区上面创建文件系统,也就是格式化。在 Windows 下有磁盘分区的概念,比如 C,D,E 盘等,在 Linux 下没有这个概念,因此Linux 下你找不到像 C、D、E 盘这样的东西。前面我们说了 Linux 下可以给磁盘分割,但是没有 C、D、E 盘那怎么访问这些分区呢?在 Linux 下创建一个分区并且格式化好以后我们要将其“挂载”到一个目录下才能访问这个分区。Windows 的文件系统挂载过程是其内部完成的,用户是看不到的,Linux 下我们使用 mount 命令来挂载磁盘。挂载磁盘的时候是需要确定挂载点的,也就是你的这个磁盘要挂载到哪个目录下。
2、Linux 文件系统类型前面我们说了,在 Windows 下有 FAT、NTFS 和 exFAT 这样的文件系统,在 Linux 下又有哪些文件系统呢,Linux下的文件系统主要有 ext2、ext3、ext4等文件系统。Linux还支持其他的 UNIX 文件系统,比如 XFS、JFS、UFS 等,也支持 Windows 的 FAT 文件系统和网络文件系统 NFS 等。这里我们主要讲一下 Linux 自带的 ext2、ext3 和 ext4 文件系统。
在 Linux 下因为没有 C、D 盘之说,因此 Linux 只有一个根目录,没有 C 盘根目录、D 盘根目录之类的。其实如果你的 Windows 只有一个 C 盘的话那么整个系统也就只有一个根目录。Windows下的 C盘根目录就是“C:”,在 Linux下的根目录就是“/”
Linux 的 文件系统管理
我们打开 Linux的 文件管理 会展开出整个界面 但是这并不算是 进入了根目录
我们点击 计算机 再点开 home 我们会发现 我们创建了一个属于 我们自己的 home 下用户目录
其 用 户 根 目 录 就 是 :/home/zuozhongkai。只要你创建了一个用户,那么系统就会在/home 这个目录下创建一个以这个用户名命名的文件夹,这个文件夹就是这个用户的根目录。
我们在主屏幕 点击 ls 显示
会发现 在 终端上默认 进入的是当前用户根目录
然后我们通过文件管理 进入 home 下 的 用户名文件夹
发现是正确的
ok 那么 我们现在 再 了解 别的方面
因为我们默认进入的是 用户所属的目录栏
我们现在切换 目录
再 $ 前面的 是 我们所进入的目录
这是 计算机下的根目录
/bin 存储一些二进制可执行命令文件,/usr/bin 也存放了一些基于用户的命令文件。
/sbin 存储了很多系统命令,/usr/sbin 也存储了许多系统命令。
/root 超级用户 root 的根目录文件。
/home 普通用户默认目录,在该目录下,每个用户都有一个以本用户名命名的文件夹。
/boot 存放 Ubuntu 系统内核和系统启动文件。
/mnt 通常包括系统引导后被挂载的文件系统的挂载点。
/dev 存放设备文件,我们后面学习 Linux 驱动主要是跟这个文件夹打交道的。
/etc 保存系统管理所需的配置文件和目录。
/lib 保存系统程序运行所需的库文件,/usr/lib 下存放了一些用于普通用户的库文件。
/lost+found 一般为空,当系统非正常关机以后,此文件夹会保存一些零散文件。
/var 存储一些不断变化的文件,比如日志文件
/usr 包括与系统用户直接有关的文件和目录,比如应用程序和所需的库文件。
/media 存放 Ubuntu 系统自动挂载的设备文件。
/proc 虚拟目录,不实际存储在磁盘上,通常用来保存系统信息和进程信息。
/tmp 存储系统和用户的临时文件,该文件夹对所有的用户都提供读写权限。
/opt 可选文件和程序的存放目录。
/sys 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。
- 文件操作 文件命令 touch
touch [参数] [文件名]
使用 touch 创建文件的时候,如果[文件名]的文件不存在,那就直接创建一个以[文件名]
命名的文件,如果[文件名]文件存在的话就仅仅修改一下此文件的最后修改日期,常用的命
令参数如下:
-a 只更改存取时间。
-c 不建立任何文件。
-d<日期> 使用指定的日期,而并非现在日期。
-t<时间> 使用指定的时间,而并非现在时间。
cd ~ 可以快速帮助我们 回到 用户根目录
touch test 表示 在 用户目录下 创建一个 名为 test的 文件
2.文件 创建 命令 - mkdir
既然可以创建文件,那么肯定也可以创建文件夹,创建文件夹使用命令“mkdir”,命令
格式如下:
mkdir [参数] [文件夹名目录名]
主要参数如下:
-p 如所要创建的目录其上层目录目前还未创建,那么会一起创建上层目录。
我们点击 了 mkdir testdir1 /// mkdir testdir2
我们创建了 两个文件夹
我们可以 看到 在相对于 之前的 文件 多了两个文件夹
- 文件及目录删除命令—rm
既然有创建文件的命令,那肯定有删除文件的命令,要删除一个文件或者文件夹可以使
用命令“rm”,此命令可以完成删除一个文件或者多个文件及文件夹,它可以实现递归删除。
对于链接文件,只删除链接,原文件保持不变,所谓的链接文件,其实就是 Windows 下的快
捷方式文件,此命令格式如下:
rm [参数] [目的文件或文件夹目录名]
命令主要参数如下:
-d 直接把要删除的目录的硬连接数据删成 0,删除该目录。
-f 强制删除文件和文件夹(目录)。
-i 删除文件或者文件夹(目录)之前先询问用户。
-r 递归删除,指定文件夹(目录)下的所有文件和子文件夹全部删除掉。
-v 显示删除过程。
我们现在 实践 删除 文件 与 文件夹
rm 确实把 test 文件 删除 了
但是 无法把 testdir 文件夹删除
对于删除文件夹 我们 用 rm 的话 可以在 rm [文件夹 ] -rf 的形式
如图所示
完成了强制删除
4、文件夹(目录)删除命令—rmdir
上面我们讲解了如何使用命令“rm”删除文件夹,那就是要加上参数“-rf”,其实
Linux 提供了直接删除文件夹(目录)的命令—rmdir,它可以不加任何参数的删除掉指定的文件
夹(目录),命令格式如下:
rmdir [参数] [文件夹(目录)]
命令主要参数如下:
-p 删除指定的文件夹(目录)以后,若上层文件夹(目录)为空文件夹(目录)的话就将其一起
删除。
删除了 testdir2
5、文件复制命令—cp
在 Windows 下我们可以通过在文件上点击鼠标右键来进行文件的复制和粘贴,在 Ubuntu
下我们也可以通过点击文件右键进行文件的复制和粘贴。但是本节我们来讲解如何在终端下
使用命令来进行文件的复制,Linux 下的复制命令为“cp”,命令描述如下:
cp [参数] [源地址] [目的地址]
主要参数描述如下:
-a 此参数和同时指定“-dpR”参数相同
-d 在复制有符号连接的文件时,保留原始的连接。
-f 强行复制文件,不管要复制的文件是否已经存在于目标目录。
-I 覆盖现有文件之前询问用户。
-p 保留源文件或者目录的属性。
-r 或-R 递归处理,将指定目录下的文件及子目录一并处理
接下来展示一连串的 关于cp 的操作
复制 文件
我们还可以复制 文件夹
cp -rf test2/ test3/
6、文件移动命令—mv
有时候我们需要将一个文件或者文件夹移动到另外一个地方去,或者给一个文件或者文件夹进行重命名,这个时候我们就可以使用命令“mv”了
mv [参数] [源地址] [目的地址]
主要参数描述如下:
-b 如果要覆盖文件的话覆盖前先进行备份。
-f 若目标文件或目录与现在的文件重复,直接覆盖目标文件或目录。
-I 在覆盖之前询问用户。
文件压缩和解压缩
1.命令 zip
zip命令看名字就知道是针对.zip文件的,用于将一个或者多个文件压缩成一个.zip结尾的
文件,命令格式如下:
zip [参数] [压缩文件名.zip] [被压缩的文件]
主要参数函数如下:
-b<工作目录> 指定暂时存放文件的目录。
-d 从 zip 文件中删除一个文件。
-F 尝试修复已经损毁的压缩文件。
-g 将文件压缩入现有的压缩文件中,不需要新建压缩文件。
-h 帮助。
-j 只保存文件的名,不保存目录。
-m 压缩完成以后删除源文件。
-n<字尾符号> 不压缩特定扩展名的文件。
-q 不显示压缩命令执行过程。
zip -rv test2.zip test2上述命令中,-rv 表示递归压缩并且显示压缩命令执行过程。
- 命令 unzip
unzip 命令用于对.zip 格式的压缩包进行解压,命令格式如下:
unzip [参数] [压缩文件名.zip]
主要参数如下:
-l 显示压缩文件内所包含的文件。
-t 检查压缩文件是否损坏,但不解压。
-v 显示命令显示的执行过程。
-Z 只显示压缩文件的注解。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中的原有目录路径。
-L 将压缩文件中的全部文件名改为小写。
-n 解压缩时不要覆盖原有文件。
-P<密码> 解压密码。
-q 静默执行,不显示任何信息。
-x<文件列表> 指定不要处理.zip 中的哪些文件。
-d<目录> 把压缩文件解到指定目录下。
3.命令 tar
我们前面讲的 zip 和 unzip 这两个是命令只适用于.zip 格式的压缩和解压,其它压缩格式就用不了了,比如 Linux 下最常用的.bz2 和.gz 这两种压缩格式。其它格式的压缩和解压使用命令 tar,tar 将压缩和解压缩集合在一起,使用不同的参数即可
tar [参数] [压缩文件名] [被压缩文件名]
常用参数如下:
-c 创建新的压缩文件。
-C<目的目录> 切换到指定的目录。
-f<备份文件> 指定压缩文件。
-j 用 tar 生成压缩文件,然后用 bzip2 进行压缩。
-k 解开备份文件时,不覆盖已有的文件。
-m 还原文件时,不变更文件的更改时间。
-r 新增文件到已存在的备份文件的结尾部分。
-t 列出备份文件内容。
-v 显示指令执行过程。
-w 遭遇问题时先询问用户。
-x 从备份文件中释放文件,也就是解压缩文件。
-z 用 tar 生成压缩文件,用 gzip 压缩。
-Z 用 tar 生成压缩文件,用 compress 压缩。
tar -vcjf test1.tar.bz2 test1
tar -vczf test1.tar.gz test1
-vcjf 表示创建 bz2 格式的压缩文件,-vczf 表示创建.gz 格式的压缩文件
tar函数 还可以帮助我们 完成解压
c 是压缩 x是解压
我们 使用
tar -vxjf
tar -vxzf 完成了 解压的工作