目录结构
1) /bin: bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
2) /boot: 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
3) /dev : dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和 访问文件的方式是相同的。
4) /etc: etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
5) /home: 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图 中的 alice、bob 和 eve。
6) lib: lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里 的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
7) /media: linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录 下。
8) /mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录 就可以查看光驱里的内容了。
9) /opt: opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库 则就可以放到这个目录下。默认是空的。
10) /root: 该目录为系统管理员,也称作超级权限者的用户主目录。
11) /sbin: 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是 系统管理员使用的系统管理程序。
12) /selinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙, 但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
13) /usr: usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序 和文件都放在这个目录下,类似于 windows 下的 program files 目录。
在Linux系统中,/lib和/usr目录是两个不同的目录,它们具有不同的作用和功能。
/lib目录: /lib目录是系统的核心库目录,它包含了操作系统所需的基本库文件。这些库文件是供系统启动过程和关键系统组件使用的,例如动态链接器、内核模块、启动脚本等。/lib目录通常包含了一些重要的共享库文件,如libc.so、libpthread.so等。
/usr目录: /usr目录是用户软件的主要目录,它包含了系统安装的大部分用户软件和相关文件。/usr目录可以看作是用户的根目录,它包含了诸如可执行程序、库文件、头文件、文档、配置文件等资源。其中,/usr/lib目录存放了与用户软件相关的库文件,如/usr/lib/libcrypto.so、/usr/lib/libssl.so等。
总结: /lib目录是系统核心库的存放位置,包含了操作系统所需的基本库文件;
/usr目录是用户软件的主要目录,包含了系统安装的大部分用户软件和相关文件。
这两个目录在功能和用途上有所差异,但都在Linux系统中发挥着重要的作用。
在Linux系统中,/dev和/media是两个不同的目录,它们有不同的作用和功能。
/dev目录: /dev目录是设备文件的存放位置。在Linux中,一切都被视为文件,包括硬件设备。设备文件是用来与硬件设备进行交互的特殊文件。在/dev目录下,可以找到各种设备文件,例如磁盘驱动器、串口、USB设备等。通过访问这些设备文件,用户和程序可以与硬件设备进行读取和写入操作。
/media目录: /media目录是用于挂载可移动媒体设备的目录。当插入可移动媒体设备(如USB闪存驱动器、CD/DVD光盘、移动硬盘等)时,系统会自动将其挂载到/media目录下的一个子目录中。这样,用户就可以通过/media目录来访问和操作可移动媒体设备上的文件和数据。
总结: /dev目录是存放设备文件的位置,用于与硬件设备进行交互;
/media目录是用于挂载可移动媒体设备的目录,方便访问和操作这些设备上的文件和数据。
这两个目录在功能和用途上有所差异,但都是为了让用户能够与硬件设备进行交互或访问可移动媒体设备上的数据。
在Linux系统中,/opt是一个用于安装可选软件包的目录。它是Optional Package(可选软件包)的缩写。
/opt目录下通常会有一个或多个子目录,每个子目录对应一个特定的软件包。这些软件包是与操作系统核心和常用工具无关的第三方软件或额外的应用程序。这些软件包通常由独立的开发者或组织提供,而不是由操作系统供应商提供。
/opt目录的设计初衷是为了将第三方软件与系统提供的软件进行区分,以保持系统目录结构的干净和整洁。通过将第三方软件安装到/opt目录,可以将其与操作系统的核心文件和其他系统文件分开,从而更好地管理和维护这些软件。同时,这也方便用户在需要时手动删除或更新/opt目录中的软件包。
需要注意的是,/opt目录下的子目录结构可能会因不同的软件包而异,每个软件包都有自己的文件和目录组织方式。因此,在使用/opt目录中的软件时,需要查看相应软件包的文档或说明来了解其具体用法和配置方式。
常用命令
1)基本命令
1.1 ) 关机
shutdown -h now //立刻关机
shutdown -h 5 //5分钟后关机
poweroff //立刻关机
1.2) 重启
shutdown - r now //立刻重启
shutdown -r 5 //5分组以后重启
reboot //立刻重启
1.3)帮助手册
man 命令 //man mkdir
命令 --help //mkdir --help
1.4) 其他
clear 清屏
history 历史命令
2)目录切换 ——cd
(1) 目录查看:pwd
(2) 路径:
绝对路径:从根目录开始 / ,一直到目标文件或者目录位置的完整目录。
相对路径:以当前位置为基准,到目标文件或目录位置的路径
cd / //切换到跟目录
cd /user //切换到根目录下的user目录
cd ../ //切换到上级目录 或者 cd ..
cd ~ //切换到home目录(root用户的home目录是/root,其他用户的home目录是 /home/用户
cd - //切换到上次访问的目录
pwd //显示当前目录的绝对路径
3)目录查看—— ll / ls / tree
ls //查看当前目录下的所有目录和文件
ls -l 或者 ll //以列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls -a //查看当前目录下的所有目录和文件(包括隐藏文件)
ls /dir //查看指定目录下的所有目录和文件 如: ls /user
ll /dir // 以列表查看指定目录下的所有文件和目录
tree // 以树状格式显示当前目录下的所有目录和文件
tree /dir //以树状格式显示指定目录里下的所有目录和文件
4)目录创建—— mkdir
mkdir参数 要创建的目录为位置和名字
- p 确保目录名存在,不存在的就创建一个,加了这个 - p 的选项,可以自行创建多层目录!
- v 打印一条命令执行后的返回信息
mkdir aaa //在当前目录下创建一个名为aaa的目录
mkdir /user/aaa //在指定目录下创建一个名为aaa的目录
mkdir -p /AAA/aaa //创建多级目录
mkdir -v q w e //同级创建多级目录,可以同时创建多个目录使用绝对路径或相对路径
5)删除目录或文件
5.1) 删除文件
rm 文件 //删除当前目录下的文件
rm -f 文件 //删除当前目录的的文件(不询问)
5.2) 删除空目录
rmdir -v 目录名 //删除当前目录下的空目录
5.3) 删除目录
rm -r aaa //递归删除当前目录下的aaa目录
rm -rf aaa //递归删除当前目录下的aaa目录(不询问)
5.4) 全部删除
rm -rf * //【慎用】将当前目录下的所有目录和文件全部删除
rm -rf /* //【自杀命令!坚决不能使用】将根目录下的所有文件全部
6)目录修改
6.1) 重命名目录 ——mv
命令:mv 当前目录 新目录
例如:mv aaa bbb 将目录aaa改为bbb
注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行重命名的操作 mv -v 1201.log 1210_bak.log 把1201.log移动重命名为1210_bak.log
如果目标文件是文件夹,则源文件直接移动到该文件夹内,名字还是源文件的名字
如果目标文件是文件,则源文件移动的同时也会更改名字
如果源文件为多个,则目标必须是目录,并且统一移动到目录下
6.2) 剪切目录 ——mv
命令:mv 目录名称 目录的新位置
示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面 mv /usr/tmp/aaa /usr
注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件已经存在时,就会询问是否覆盖
6.3) 拷贝目录 ——CP
命令:cp -r 目录名称 目录拷贝的目标位置 -r代表递归
示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面 cp -r /usr/tmp/aaa /usr
注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归
7) 搜索目录或文件——find
命令
find 目的 参数 文件名称
示例:find /usr/tmp -name 'a*' 查找/usr/tmp目录下的所有以a开头的目录或文件
示例:find . -name "*.log" -ls 在当前目录查找以.log结尾的文件,并显示详细信息。
示例:find . -size +100M 查找当前目录大于100M的文件
示例:find . -name "t*" -type f 在当前面录下查找以t开头的文件
示例:find . -name "t*" -type d 在当前面录下查找以t开头的目录
示例:find -empty 在当前目录下查找空文件和目录
示例:find -name "*.txt" -empty 在当前目录下查找以txt结尾的空文件和目录
8) 文件操作——touch / echo
8.1) 命令:touch 文件名
示例:touch aa.txt 在当前目录创建一个名为aa.txt的文件
8.2) 命令: echo 内容>>文件名
#echo 命令用于在终端输出字符串或变量提取后的值
示例:echo Hello>>A.java 创建A.java并写入Hello
#>> 表示输出追加重定向符号
#> 符号表示输出覆盖重定向
9) 编辑文件
Vim 是从 vi 发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序 员中被广泛使用。
vim 文件 若文件存在,则打开文件
若文件不存在,则创建一个文件。若不保存文件编辑内容,则文件本身也不保存。
【vim编辑器的3种模式】
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行 模式(last line mode),各模式的功能区分如下:
9.1) 命令行模式(command mode)
控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。按a,i,o其中一个进入编辑模式
命令行模式下的常用命令:
(1)控制光标移动
h 或 向左箭头键(←) | 光标向左移动一个字符 |
j 或 向下箭头键(↓) | 光标向下移动一个字符 |
k 或 向上箭头键(↑) | 光标向上移动一个字符 |
l 或 向右箭头键(→) | l 或 向右箭头键(→) |
加上想要进行的次数(数字)后,按下动作键即可
(2)删除和剪切
x | 删除/剪切当前字符(在当前行) |
nx | 删除/剪切从光标开始的n个字符,n是一个数字(在当前行) |
dd | 删除/剪切当前行 |
ndd | 向下删除/剪切当前行在内的n行,n是一个数字 |
d1G | 删除光标所在到第一行的所有数据 |
dG | 删除光标所在到最后一行的所有数据 |
d$ | 删除游标所在处,到该行的最后一个字符 |
d0 | 那个是数字的 0 删除游标所在处,到该行的最前面一个字符 |
u | 撤销 上一步 操作(小写u) |
U | 撤销对 当前行 的所有操作(大写U) |
. | 重复前一个操作 |
0 或功能键[Home]或^ | 这是数字0:移动到这一行的最前面字符处 |
$ 或功能键[End] | 移动到这一行的最后面字符处 |
(3)复制粘贴
yy | 将当前行复制到缓存区 |
nyy | 将当前行向下n行复制到缓冲区 |
P | (小写p)粘贴剪切板里的内容在光标后一行 |
p | (大写p)粘贴剪切板里的内容在光标前一行 |
(4)跳至指定行
n+或者Enter | 向下跳n行,n是一个数字 |
n- | 向上跳n行,n是一个数字 |
nG/:n | 跳到行号为n的行,n是一个数字 |
gg/1G | 跳到文件的开头(第一行) |
G | 跳至文件的底部(文件的末尾) |
(5)设置行号(命令模式下使用)
:set nu | 显示行号 |
:set nonu | 取消显示行号 |
(6)在文件内容中搜索
/cszhi | 向光标之下搜索cszhi字符串 |
?cszhi | 向光标之上搜索cszhi字符串 |
n | 向下搜索前一个搜素动作 |
N | 向上搜索前一个搜索动作(重复前一个动作) |
:noh | 取消搜索后的高亮 (highligth) |
(7)在文件中替换 :s ( substitute )
: s/old/new | 用new替换行中首次出现的old |
: s/old/new/g | 用new替换行中所有的old |
: %s/old/new/g | 用new替换当前文件里所有的old。%是文档所有内容 |
9.2) 编辑模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
编辑模式下常用命令:
【1】ESC 退出编辑模式到命令行模式;
i | 当前光标前输入 |
a | 当前光标后输入 |
o | 当前行,重启一行输入 |
9.3) 底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
底行模式下常用命令:
【1】退出编辑: :q
【2】强制退出: :q!
【3】保存并退出: :wq
【4】强制保存并退出: :wq!
10) 查看文件
文件的查看命令:cat /more/less/head/tail
cat:看最后一屏,用于查看小文件
示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
cat sudo.conf
more:百分比显示
示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可 以退出查看
more sudo.conf
less:翻页查看
示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查 看;
/字符串 向下进行查找关键字
?字符串 向上搜索关键字
less sudo.conf
head 文件名 默认查看文件的前十行
head -n后面接数字,代表显示几行的意思
tail:指定行数或者动态查看
示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束
tail -10 sudo.conf