一、Linux文件系统基础

一、Linux文件系统(shell指令)

目录:

  • 一、Linux文件系统(shell指令)
        • 一、基本概念
        • 二、Linux的两种路径类型
    • pwd
    • tree [选项] [文件名]
        • 三、文件基础操作指令
    • clear
    • fflush (stdin);
          • 1.文件理论
          • 2.创建新目录
    • mkdir [选项] <目录名>
    • touch <文件名.扩展名>
          • 3.改变目录
    • cd [目录名]
          • 4.删除空目录
    • rmdir [选项] <目录名>
          • 5.列出目录内容
    • ls [选项] [目录或文件]
    • 通配符的使用
          • 6.查看文件内容
            • (1)cat
    • cat [选项] <文件列表>
            • (2)more
    • more [选项] <文件列表>
            • (3)less
    • less [选项] <文件列表>
    • gedit <文件名>
          • 7.查看文件大小
    • du [选项] <路径>
          • 8.文本搜索工具
    • grep [选项] <要搜索的文本> <文件名>
          • 9.echo指令(通常与重定向一起使用)
    • echo <文本或表达式> [<重定向> <文件名>]
    • command [重定向]
          • 10.管道 |
    • command1 | command2
          • 11.文件复制
    • cp [选项] <文件1> <文件2>
          • 12.文件移动
    • mv [选项] <文件1> <文件2> mv [选项] <文件列表> <目标目录名>
          • 13.文件删除
    • rm [选项] <文件列表>
          • 14.文件比较
    • diff [选项] [文件1] [文件2]
          • 15.删除重复行
    • uniq [选项] [input-file] [output-file]
          • 16.查看帮助手册
    • command --help
    • man command
          • 17.查找文件
    • find [路径] -name ".txt"
          • 18.可提高工作效率的技巧
        • 四、文件安全与权限(不常用)
          • 1.访问权限的基本分类
          • 2.对目录的访问权限
          • 3.访问权限的用户类别
          • 4.用户访问权限的查看
          • 4.用户权限的更改
    • chmod +/-rwx <文件/目录名>
    • chmod [-R] [OCT] <文件/目录名>
    • chown <用户名> <文件/目录名>
          • 5.用户组管理
    • groupadd <组名>
    • groupdel <组名>
    • cat /etc/group
    • chgrp -R <组名> <文件名/目录名>
          • 6.用户管理
    • useradd [-m -g] <组> <新建用户名>
    • passwd <用户名>
    • userdel -r <用户名>
    • cat /etc/passwd | grep <用户名>
          • 7.查看用户信息
    • id [用户名]
    • who
    • whoami
          • 8.修改用户的组信息
    • usermod -g <组> <用户名>
    • usermod -G <组> <用户名>
    • usermod -s /bin/bash
    • usermod -G sudo <用户名>
          • 9.命令文件相关
    • which command
          • 10.临时切换用户
    • su [-] [用户名]
    • exit
        • 五、系统信息相关命令(常用于服务器的日常维护)
          • 1.查看系统当前日期
    • date
          • 2.查看当前日期日历
    • cal [-y]
          • 3.查看磁盘占用信息
    • df -h
    • du -h [目录名]
          • 4.查看进程信息
    • ps [aux]
    • top
    • q
    • kill [-9] < PID >
        • 六、链接文件
    • ln [-s] < sourcefile > < newfile >
    • ls -l [文件名]
    • cat [文件名]
        • 七、文件的打包压缩
    • tar -cvf <打包后文件名.tar> <被打包的文件/路径列表>
    • tar -xvf <打包文件.tar>
          • 1.gzip压缩
    • tar -zcvf <打包压缩后文件名.tar.gz> <被打包的文件/路径列表>
    • tar -zxvf <打包文件.tar.gz>
    • tar -zxvf <打文件.tar.gz> -C <目标路径>
          • 2.bzip2(读two)压缩
    • tar -jcvf <打包压缩后文件名.tar.bz2> <被打包的文件/路径列表>
    • tar -jxvf <打包文件.tar.bz2>
    • tar -jxvf <打文件.tar.bz2> -C <目标路径>
        • 八、软件安装
    • sudo apt install <软件包>
    • sudo apt remove <软件名>
    • sudo apt upgrade <软件名>
        • 九、软件源配置


一、基本概念

  • Linux文件系统的结构层次分明,就像一颗倒立的树
  • Linux的文件类型有普通文件、目录文件和链接文件等。其中,Linux根目录为“/”
  • Linux可以分为两种用户:(1)root用户 (2)非root用户
    其中root为最高权限用户,非root用户为一般权限用户
  • 在Linux的Terminal命令行模式中,两种类型的用户也有区别:
  • (1)root用户:

    其中“root”为用户名,“~”表示当前处在用户主目录,“#”表示这是root用户
  • (2)非root用户:
    在这里插入图片描述
    其中“CLC”为用户名,“~”表示当前处在用户主目录,“$”表示这是非root用户

(注:root用户的用户主目录为/root,非root用户的用户主目录为/home)


二、Linux的两种路径类型

  • 绝对路径:从根目录开始的路径
  • 相对路径:从当前目录开始的路径

pwd

该指令可以按绝对路径查看当前所处的目录

在这里插入图片描述
其中,第一个“/”指的是根目录,之后的“/”只是文件名的分割符,因此它是从根目录开始的(绝对路径)

  • 在安装了tree的情况下,还可以通过tree指令来以树状结构显示文件

tree [选项] [文件名]

当文件名缺省时,就显示当前目录下的文件树状结构
[选项]:
-p 只显示目录而不显示文件(即只显示文件夹)

例:以树状结构显示/root下的文件
一、Linux文件系统基础_第1张图片
注:tree需要安装,用户若没有tree,则可以以下指令下载:

sudo apt-get update
sudo apt install tree

三、文件基础操作指令

(注:在指令一般格式当中,“[ ]”表示这是可选项,“< >”表示这是必选项)

clear

清屏

fflush (stdin);

清空缓冲区的字符,例如 getchar(); 中所收录的回车键就存放在缓冲区中,该命令可以清空

1.文件理论

对每个执行的命令,Linux系统都会自动打开3个文件,并且都有一个小的整数与之对应:

(1)stdin 标准输入文件,一般指键盘输入,用0表示

(2)stdout 标准输出文件,一般指显示器,用1表示

(3)stderr 标准出错处理文件,一般指显示器,用2表示

2.创建新目录

mkdir [选项] <目录名>

[选项]:
空 默认在当前目录下新建目录
-m 对新建的目录设置权限(见chmod命令)
-p 创建存在中间路径的目录

touch <文件名.扩展名>

通过 touch 命令可以创建指定扩展名的文件如 .txt、.c等

  • 如果文件不存在,则可以创建一个空白文件
  • 如果文件已存在,则可以修改文件的末次修改时间

例:在CLC目录下创建file1目录,再在file1目录下创建file2目录
其中,file1原来是不存在的,加上-p后,就可以链式创建
在这里插入图片描述
(注:所选的路径必须是完整的绝对路径或相对路径)

3.改变目录

cd [目录名]

cd ~ 进入用户主目录
cd - 返回进入此目录前所在的目录
cd …(这里是两个点)返回当前目录的父目录
另外,“.”表示当前工作目录

4.删除空目录

rmdir [选项] <目录名>

[选项]:
-p 当子目录被删除后,若其父目录成为空目录,则父目录一并删除
-v 将提示删除操作成功
-pv 前面两条一起使用,其他命令的选项也如此操作即可

5.列出目录内容

ls [选项] [目录或文件]

[选项]:
-a 显示指定目录下的所有目录与文件,包括隐藏文件
-d 将目录名像其他文件一样列出,而不是列出目录里面的内容
-l 采用长格式来显示文件的详细信息
-r 将目录的内容清单以英文字母顺序的逆序显示
-R 若模板目录及子目录中有文件,就列出所有的文件
-t 按时间信息排序
-h 可以配合-l来K、M、G或T等单位来显示文件大小,平常是以字节来显示(注:单独使用无用,要配合-l使用)

注:每个单位之间的关系是1024倍,因为计算机是以二进制的方式来存储的

通配符的使用

通配符 * 可以代表任意长度的字符
通配符 ? 可以代表一个长度的字符
通配符 [] 可以代表一个字符组,如[abc]可以表示a或b或c的三个单字符,不是字符串

例如:

 ls want*
  • 可以用来显示以want字符开头的文件
 ls *want.txt
  • 可以用来显示以want.txt为结尾的文件(注:要加扩展名,如:.txt、.c等)
 ls *want*
  • 可以略过扩展名来查看文件
 ls [abc]want*
 ls [a-f]want*
 ls [1-7]want*
  • 第一个可以匹配以[a或b或c]开头,后面跟着want的文件,[]中是单个字符的列表
  • 第二个可以匹配以[a到f的任意字符]开头,后面跟着want的文件
  • 第三个可以匹配以[1到7的任意字符]开头,后面跟着want的文件

(1)显示后蓝色的文件名为目录,绿色的文件名为普通文件,文件头有“.”的为隐藏文件:
在这里插入图片描述
(2)-l 选项列出后,一般开头有几种:

  • “-”表示普通文件
  • “d”表示目录文件
  • “l”表示链接文件
  • “p”表示命名管道(FIFO)
  • “c”字符设备文件
  • “b”块设备文件

    在这里插入图片描述
6.查看文件内容
(1)cat

cat [选项] <文件列表>

可以查看文本文件
[选项]:
-E 在每一行的末尾显示符号“$”
-n 显示每一行的行号,包括空行
-b 显示每一行的行号,不包括空行
–help 显示这个命令的用途,简要解释每一个选项的作用
<文件列表>:
若是多个文件,之间由空格分开

例:选项-b查看a.c的C程序文件
一、Linux文件系统基础_第2张图片

(2)more

more [选项] <文件列表>

[选项]:
+number 从第number行开始显示内容(number是数值)
-number 指定每屏幕要显示number行
-s 把重复的空行,压缩成一个空行
-p 不以卷动的方式显示每一页,而是先清除整个屏幕,再显示文本
+number1 -number2 由于前置符号不同,所以“+”和“-”要分开写
<文件列表>:
若是多个文件,之间由空格分开

(注:分页显示,若打开的文件有多页,则按空格可以翻到下一页)

(3)less

less [选项] <文件列表>

[选项]:
-N 显示行号
-pwant 在文件中查找匹配want第一次出现位置(注:want可以是数字、字符串等)
即匹配信息寻找所选项目
<文件列表>:
若是多个文件,之间由空格分开

例:选项-pprintf匹配查找a.c文件中的printf,并高亮标出
在这里插入图片描述一、Linux文件系统基础_第3张图片
总结:cat、more、less的区别

(1)cat命令功能用于一次性打印显示整个文件的内容,单独使用没有翻页功能

(2)more命令让画面在显示满一页时暂停,此时可以按空格键继续显示下一个画面,或按Q键停止显示

(3)less命令的用法与more命令类似,也可以原来浏览超过一页的文件,不同的是less命令除了可以按空格键显示文件外,还可以利用上下键来卷动文件。当浏览结束时,只要在less命令的提示符“:”下按Q键即可

  • 此外,在Ubuntu上安装了gedit文本编辑器软件后还可以直接用以下指令打开文件:

gedit <文件名>

7.查看文件大小

du [选项] <路径>

[选项]:
-a 对涉及到的所有文件进行统计,二不只是包含子目录
-b 输出以字节为单位的大小
-k 输出以1024字节为计数单位的大小
-m 输出以兆字节的块为计数单位的大小(就是1,048,576字节)
-c 给出总计,该选项被用给出指定的一组文件或目录使用的空间的总和
<路径>:
路径可以选择绝对路径或相对路径

8.文本搜索工具

可以在指定的文件中搜索指定的内容

grep [选项] <要搜索的文本> <文件名>

[选项]:
-n 显示匹配行和行号
-v 显示不包含匹配内容的所有行(相当于求反)
-i 忽略大小写
<要搜索的文本>:
如果要搜索的文本含有空格,则需要用""将其括起来
如:“Hello linux”
此处允许进行模式查找,又称正则表达式:
^want 行首,搜索以want开头的行
want$ 行尾,搜索以want结尾的行

9.echo指令(通常与重定向一起使用)

echo可以把指定内容重新显示在屏幕中

echo <文本或表达式> [<重定向> <文件名>]

[<重定向> <文件名>]:
“>” 表示输出,把echo要显示的内容覆盖到<文件名>中(注:会覆盖原内容),若文件不存在,则新建文件
“>>” 表示追加,把echo将要显示的内容追加到<文件名>中,不覆盖原内容

command [重定向]

[重定向]:
“>” 表示输出,把command指令要显示的内容覆盖到<文件名>中(注:会覆盖原内容)
“>>” 表示追加,把command指令将要显示的内容追加到<文件名>中,不覆盖原内容

如:显示Hello linux
在这里插入图片描述
如:将显示的Hello linux重定向到a.txt文件中
在这里插入图片描述
如:将ls -lh指令显示的内容重定向到a.txt文件中
一、Linux文件系统基础_第4张图片

10.管道 |

Linux允许将一个命令的输出通过管道作为另一个命令的输入
常用管道 | 的命令有:more 和 grep

command1 | command2

管道符的左端为写入端 | 管道符的右端为读取端
即把comman1指令的输出结果作为command2指令的输入
(注:管道允许连续使用:command1 | command2 | command N…)

如:将当前目录下ls -lh指令显示的结果作为more的输入

ls -lh ~ | more

如:将当前目录下ls -lh指令显示的结果作为grep(grep搜索abc)的输入

ls -lh ~ | grep abc
11.文件复制

cp [选项] <文件1> <文件2>

[选项]:
-i 如果目的文件已存在,会在覆盖前提示,要求用户是否覆盖,回答“y”时文件将被覆盖
-p 保留文件的权限属性和修改时间行
-r 递归地复制目录(即复制文件夹)
<文件>:
文件1是被复制的文件
文件2是要复制到的文件或目录(注:最后一项应为复制后的文件名,不写时为原名,故可以给复制文件命名)

(注:复制文件必须具有相应的权限:源文件的读权限、包含文件1的目录执行权限和文件2所在目录的写权限)

12.文件移动

mv [选项] <文件1> <文件2>
mv [选项] <文件列表> <目标目录名>

[选项]:
-f 在覆盖目的文件前永不提示用户
-i 在覆盖目的文件前提示用户(最好增加,因为在终端中修改后无法恢复)
<文件>:
文件1和文件列表,是要转移的文件
文件2和目录名,是要转移的位置(注:最后一项应为复制后的文件名,不写时为原名,故可以对文件重命名)

例:把file1目录下的file2目录文件,转移到当前工作目录下,并改名为file
在这里插入图片描述
例:利用mv指令对文件进行重命名,如下,把a.txt重命名为b.txt

mv a.txt b.txt
13.文件删除

rm [选项] <文件列表>

[选项]:
-r 递归的移除目录中的内容及目录本身(文件夹),注:rm本身不可删除文件夹,在加 -r 后就可以删除文件夹
-i 在删除文件列表中的文件前给出提示
-f 强制删除、在删除文件列表的文件前不予以提示、忽略不存在的文件

例:(删库跑路)以root用户的权限,递归删除根文件,且不予以提示

注:rm 指令所删除的内容不会置于回收站中,因此不可恢复,在使用时要注意
在这里插入图片描述

14.文件比较

diff [选项] [文件1] [文件2]

可比较两个文本文件间的内容
[选项]:
-b 忽略行尾的空,把空白字符串当作相同的字符串来处理
-h 快速比较
[文件]:
文件1和文件2,是要比较的两个文件

例:比较两个C程序文件:a.c 和 lb.c 的内容
一、Linux文件系统基础_第5张图片
红框:5c5和7c7分别指的是对应的行
(1)a 左边文件的第几行被添加右边文件的第几行(相当于左边比右边缺少的内容)
(2)c 左边文件的第几行替换成右边文件的第几行(相当于不同之处)
(3)d 左边文件的第几行被删除(相当于左边比右边多出的内容)
蓝框:开头为“<”表示左边的文件,开头为“>”表示右边的文件,即不同的内容
绿框:用cat指令阅读文件,看看是否正确

指令对应如下:
一、Linux文件系统基础_第6张图片
(注:实质上,diff命令在执行时,一行一行地比较两个文件的内容,并以命令的形式显示它们之间的区别)

15.删除重复行

即删除文件中所有连续的重复行显示,只留下一行

(注:该命令不改变源文件的内容,只是把结果输出到屏幕或文件中)

uniq [选项] [input-file] [output-file]

[选项]:
-c 在每行之前显示它们重复出现的次数
-d 只显示重复行
-u 只显示未重复的行
[ intput-file ]:
是需要修改的有连续重复行的文件
[ output-file ]:
是删除重复行后得到的文件(即新建文件,而源文件仍然存在),或(不写)删除结果输出在屏幕上

16.查看帮助手册

command --help

可以对指定的命令/指令寻找帮助
其中command是命令/指令

man command

可以对指定的命令/指令查看man手册,包括传入的参数等,其中command是命令/指令
注意:在使用man手册的时候有如下按键操作:
空格 显示手册的下一页
enter 手册向下滚动一行
b 往回滚动一页
f 向前滚动一页
q 退出
/want 搜索want字符串

通过上述两种方式均可在Linux中查找到相关函数的参数使用资料,增加工作可靠度

17.查找文件

find [路径] -name “.txt”

查找指定路径下扩展名是 .txt的文件,包括子目录中的文件
“.txt” 即以 .txt为扩展名(可以是通配符)

例如:

find -name "*l*"
  • 查找当前目录下包含 l 的文件
find -name "*.c"
  • 查找当前目录下.c为扩展名的文件
find Desktop/ -name "l*"
  • 查找当前目录下的Desktop中以 l 为开头的文件
18.可提高工作效率的技巧

Tab
Tab Tab

  • 按1次Tab按键可以自动补全要写入的文件名等

  • 对于具有重复开头的文件名,按1次Tab按键没有响应,但按下2次Tab时,系统会显示以该字符为开头的文件名,即可供选择的文件名

  • 通过↑和↓按键可以快速调出历史使用过的指令


四、文件安全与权限(不常用)

1.访问权限的基本分类

(1)r 可读:允许用户读取其内容,而禁止对其做任何的更改操作

(2)w 可写:表示可以改写该文件的内容、删除文件(要有文件所在目录的写权限)

(3)x 可执行:可执行权限表示允许将该文件作为一个程序执行,如:C程序文件

(4)- 没有该权限:在 rwx 的对应位置为 - 表示没有该权限

2.对目录的访问权限

(1)可读:表示允许显示该目录中的内容

(2)可写:表示可以在该目录中新建、删除、重命名文件以及修改子目录名

(3)可执行:表示可以进入该目录,可执行基本权限,如果没有该权限,则无法进入该目录,也就无法使用可写的权限

3.访问权限的用户类别

访问权限的用户类别,有三种不同的类型的用户可对文件或目录进行访问:

(1)文件所有者 (2)同组用户 (3)其他用户

  • 同组用户指的是具有相同权限的一组用户
4.用户访问权限的查看

通过以下指令可以查看各文件的权限:

ls -l

一、Linux文件系统基础_第7张图片
图中红色框选位置的代表含义分别为:

第1列 第2列 第3列 第4列 第5列 第6列
文件属性 文件所有者权限 同组用户权限 其他用户权限 文件所有者 同组组名

(注:同组用户的root是组名不是root用户)

  • 由于读、写和执行为三个权限,有权限为1,无权限为0,因此可以通过八进制数来表示用户的权限。例如上述:rwx r-x r-x 则可表示为 111 101 101转为八进制数即为755
4.用户权限的更改

chmod +/-rwx <文件/目录名>

+[rwx] 表示增加权限,rwx为可选组合
-[rwx] 表示减少权限,rwx为可选组合

  • 但这种修改方式是对文件所有者、同组用户、其他用户同时进行修改,无法精确到指定组

chmod [-R] [OCT] <文件/目录名>

-R 递归地修改文件/目录的权限
[OCT] 表示以八进制的形式来表示3×3的权限,例:755 表示 111 101 101

  • 可以精确到指定的组

chown <用户名> <文件/目录名>

可以修改文件的拥有者

  • 这些操作可能需要sudo获取root权限

提示:

  • 当目录没有可读权限时,将无法进入和读取对应的目录内容
  • 当目录没有可写权限时,将无法修改当前的目录的内容
  • 当目录没有可执行权限时,将无法执行与对应目录相关的终端指令,如 ls 等
  • 超级用户root具有最高权限
  • 当其他用户需要执行权限之外的权限时,可以在指令前添加sudo,通过输入root密码即可执行
5.用户组管理

groupadd <组名>

可以添加组

groupdel <组名>

可以删除组

cat /etc/group

确认组信息,组信息存储在 /etc/group,需要有可读权限

chgrp -R <组名> <文件名/目录名>

-R 递归地修改文件/目录的所属组

  • 这些操作可能需要sudo获取root权限
6.用户管理

useradd [-m -g] <组> <新建用户名>

可以添加新用户
[选项]:
-m 自动建立用户家目录
-g 指定用户所在组,否则会建立一个与新建用户名同名的组

  • -m 和 -g 这两个选项一般都要选上
  • 如果没有指定-m,则在passwd中会指明新建用户的家目录;但该家目录并不存在,需要自建并设置权限
  • 如果新建用户时忘记添加-m,最简单的方法就是删除用户重新新建,否则自建家目录并设置权限较麻烦

passwd <用户名>

可以设置用户密码,如果是普通用户,直接用passwd可以修改自己账户的密码

userdel -r <用户名>

删除用户,-r 选项会自动删除用户家目录

cat /etc/passwd | grep <用户名>

可以确认用户信息

  • 新用户创建后,用户信息会保存在 /etc/passwd 中
  • 这些操作可能需要sudo获取root权限

例:通过指令 cat -n /etc/passwd 确认所有用户信息(-n是显示行号)
一、Linux文件系统基础_第8张图片

7.查看用户信息

id [用户名]

缺省时则显示当前用户的信息
查看用户UID(用户代号)和GID(组代号)信息,如图
在这里插入图片描述
uid=0(root)是用户代号和用户名,gid=0(root)是组代号和组名

  • UID保存在 /etc/passwd 中,如图:
    一、Linux文件系统基础_第9张图片
    最下面的红框中,0:0左边的0是指用户代号UID,右边的0是指组代号GID
    提示:在passwd中所显示的为7个信息,分别用6个冒号分隔开:
序号 代表信息
1 用户名
2 密码(x表加密)
3 UID
4 GID
5 用户全名或本地账号
6 家目录
7 登录使用的shell(Ubuntu默认使用的是dash)
  • GID保存在 /etc/group中,如图:
    在这里插入图片描述
    红色框框中表示的就是组代号GID

who

查看当前所有登录的用户列表

whoami

查看当前登录用户的账户名

8.修改用户的组信息
  • 主组:通常在新建用户时指定,在 /etc/passwd 的第4列GID对应的组
    使用 id 指令也可以查看指定用户的附加组,如图 groups=…
    在这里插入图片描述
  • 附加组:在 /etc/group 中最后一列表示该组的用户列表,用于指定用户的附加权限,如图
    一、Linux文件系统基础_第10张图片

提示:即该用户除了拥有主组的权限之外,还可以加以其他权限(附加组的权限)

usermod -g <组> <用户名>

可以修改用户的主组

usermod -G <组> <用户名>

可以修改用户的附加组

usermod -s /bin/bash

可以修改用户的登录shell,如果在SSH中输入一些指令和Ubuntu中的打印方式不一样,或在SSH不带颜色时,可以修改登录shell来使SSH具备颜色

usermod -G sudo <用户名>

默认使用useradd添加的用户是没有sudo的root权限的,可以通过这个方式添加sudo附加组

9.命令文件相关

which command

其中command是指令,可以查看当前指令的执行文件所在位置

例:列出了修改密码指令passwd和列表指令ls程序的所在位置
在这里插入图片描述

10.临时切换用户

su [-] [用户名]

(需要密码)可以输入密码后切换到另一用户
[-]:
添加了 “-” 选项之后可以同时将当前目录切换至切换后的用户的家目录
用户名缺省时,则切换至root用户

  • 提示:su指令如同(盗梦空间)一样,可以层层切换进入另一用户,并且每一次exit都只是退出一层梦境(用户),因此可以通过掷陀螺whoami指令)来区分您当前处于哪一层梦境(用户)

exit

通过exit可以退出切换,返回原用户


五、系统信息相关命令(常用于服务器的日常维护)

1.查看系统当前日期

date

可以查看系统当前的日期和时间

如图所示:
在这里插入图片描述
格式为:星期+月+日+(时:分:秒)+…+年

2.查看当前日期日历

cal [-y]

可以查看系统当前日期所在日历
-y 可以查看当前年份的所有日历

cal 如图所示:
一、Linux文件系统基础_第11张图片
cal -y 如图所示:
一、Linux文件系统基础_第12张图片

3.查看磁盘占用信息

df -h

显示磁盘剩余空间
-h 以人性化的形式显示大小

du -h [目录名]

显示目录下的文件大小
[目录名] 缺省时表示当前所在目录的大小
-h 以人性化的形式显示大小

df -h 如图所示:
一、Linux文件系统基础_第13张图片

4.查看进程信息

ps [aux]

查看进程的详细状况( 注:不需要加 “-” )
[选项]:
a 即all,显示终端上的所有进程,包括其他用户的进程(Linux是一个多用户的操作系统)
u 显示进程的详细状况
x(用得较少)显示没有控制终端的程序(所为没有控制终端的程序,即不是由终端Terminal来启动的程序)

ps au 如图所示:
在这里插入图片描述

USER PID %CPU %MEM START TIME
执行该进程的用户 进程号 CPU占用率 内存占用率 开始时间 执行时间

top

动态显示运行中的进程并排序

q

进入top后按q即可退出

kill [-9] < PID >

终止指定PID的进程
-9 表示强制终止


六、链接文件

概念:Linux下的链接文件指向已存在的文件,类似Windows下的快捷方式,但不完全相同

(1)软链接:类似于Windows下的快捷方式,路径就是打开源文件

(2)硬链接:创建一个与源文件共享的镜像文件,占用相同的内存

  • 在Linux中,文件名和文件数据是分开存储的,文件数据可以用文件名访问,也可以用硬链接访问
  • 即使文件名被删除了,只要还有硬链接,文件数据仍然存在,仍然可以被硬链接访问,只有文件名硬链接全部被删除后,文件数据才被释放
  • 在硬链接中修改文件,文件名的内容也会改变
    一、Linux文件系统基础_第14张图片

一、Linux文件系统基础_第15张图片
作用:链接文件的主要作用是用于文件的共享访问

ln [-s] < sourcefile > < newfile >

[-s]:
使用选项“-s”(soft)时,为创建软链接,缺省时为创建硬链接
< sourcefile >:
源文件名
< newfile >:
新创建的链接文件名

(注:由于软链接指向源文件的路径,因此在创建软链接时,源文件名最好带有绝对路径

  • 如果软链接文件使用的是相对路径,则当软链接文件的位置发生变更时,相对路径就会发生变化,而链接随之失效

ls -l [文件名]

即可显示软连接的链接源文件,其中下面的指令是针对某一链接文件的

cat [文件名]

该指令可以查看软硬链接文件的内容

例:在当前目录下创建一个软链接文件 a.t 并将其链接到 /root/Desktop/a.c
一、Linux文件系统基础_第16张图片

  • 其中 a.t -> /root/Desktop/a.c 指的是软链接文件的链接位置

提示:无论是软链接还是硬链接,对其进行读写,都将操作源文件(可执行权限)


七、文件的打包压缩

在不同的操作系统下,文件的打包压缩方式是不一样的

操作系统 打包压缩方式
Windows rar
Mac zip
Linux tar.gz

tar -cvf <打包后文件名.tar> <被打包的文件/路径列表>

可以实现对指定的文件打包并命名(注:tar只负责打包,不负责压缩)
<被打包的文件/路径列表>:
可以选择多个不同的文件,文件列表之间用空格隔开,也可以直接打包目录,也可以使用通配符
[选项]:
-c 生成档案文件,创建打包文件
-x 解开档案文件
-v 列出归档解档的详细过程,显示压缩进度
-f 指定档案文件名称,-f后面一定是 .tar文件,所以必须放在选项的最后

  • 注:-f必须放选项最后,其他位置随意

tar -xvf <打包文件.tar>

可以实现对指定文件的解包

  • 提示tar包的文件名在终端中是红色的,tar.gz指的是tar打包后再gz压缩,在Linux中十分常见,文件名后缀为:“XXX.tar.gz
1.gzip压缩

tar -zcvf <打包压缩后文件名.tar.gz> <被打包的文件/路径列表>

可以实现文件的打包压缩
-z 在tar命令中使用 -z 选项可以调用 gzip 来打包文件后同时对文件进行压缩

tar -zxvf <打包文件.tar.gz>

可以实现文件的解压解包

tar -zxvf <打文件.tar.gz> -C <目标路径>

可以解压解包到指定路径位置
-C 可以用来指定路径

2.bzip2(读two)压缩

tar -jcvf <打包压缩后文件名.tar.bz2> <被打包的文件/路径列表>

bzip2的方式打包压缩
-j 在tar命令中使用 -j 选项可以调用 bzip2 来打包文件后同时对文件进行压缩

tar -jxvf <打包文件.tar.bz2>

bzip2的方式解压解包

tar -jxvf <打文件.tar.bz2> -C <目标路径>

可以解压解包到指定路径位置


八、软件安装

apt是Advanced Packaging Tool,是Linux下的一款安装包管理工具

它可以在终端中方便 安装/卸载/更新 软件包

sudo apt install <软件包>

安装软件

sudo apt remove <软件名>

卸载软件

sudo apt upgrade <软件名>

更新已安装的包

例:下面展示两款比较有趣的小软件

1.sl小火车清屏,sl作为清屏指令

sudo apt install sl

2.htop一个比较漂亮的查看当前进程排行的软件

sudo apt install htop

九、软件源配置

如果希望在Ubuntu中安装软件,更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提高软件 下载/安装 服务

提示:更换服务器之后,需要一个相对比较长时间的更新过程,需要耐心等待,更新完以后,再安装软件都会从新设置的服务器下载软件了

所谓镜像源,就是所有服务器的内容是相同的(镜像),但是根据所在地理位置的不同,国内的服务器速度通常速度会更快一些,所以可以更换镜像源
一、Linux文件系统基础_第17张图片
Ubuntu中图形界面设置镜像源步骤:

  • 1.在Ubuntu右上方的小齿轮中找到软件和更新:
    一、Linux文件系统基础_第18张图片
  • 2.选择最佳的下载镜像:
    一、Linux文件系统基础_第19张图片
    一、Linux文件系统基础_第20张图片
    一、Linux文件系统基础_第21张图片
  • 3.自动选择最佳服务器可能需要一定的测试时长,在选择完成后,系统需要用户输入当前账户的密码,在输入密码之后还会弹出一个更新提示,这个更新持续较长的时间,需要耐心等待
    一、Linux文件系统基础_第22张图片

你可能感兴趣的:(Linux基础,linux,嵌入式)