linux-Ubuntu初见(8.13-8.24)
今天各种场合都有使用各种 Linux 发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用 LAMP(Linux + Apache + MySQL + PHP)或 LNMP(Linux + Nginx+ MySQL + PHP)组合。
一、Linux系统目录结构:
/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
重要目录:
/etc:系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。
二、Linux文件基本属性:
file type:(第一个字符)
d |
目录 |
- |
文件 |
l |
链接文档(link file) |
b |
装置文件里面的可供储存的接口设备(可随机存取装置) |
c |
装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置) |
permissions:(接下来九个字符)
以三个为一组,且均为rwx的三个参数的组合。其中,r代表可读(readable),w代表可写(writeable),x代表可执行(executable)。这三个权限的位置不会改变,如果没有权限,会出现减号-。三组分别表示属主权限、属组权限、其他用户权限。
user/group name:
接下来过一个数字后的两个字符串,第一个标明属主(拥有者),第二个标明属组(拥有者所在用户组)。
更改文件属性的命令:
(1)chgrp:更改文件属组;
(2)chown:更改文件属主,也可以同时更改文件属组;
(3)chmod:更改文件九个属性。
用法略。
三、Linux文件与目录管理
Linux的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。
绝对路径与相对路径:
绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。
处理目录的常用命令:
- ls(英文全拼:list files): 列出目录及文件名
- cd(英文全拼:change directory):切换目录
- pwd(英文全拼:print work directory):显示目前的目录
- mkdir(英文全拼:make directory):创建一个新的目录
- rmdir(英文全拼:remove directory):删除一个空的目录
- cp(英文全拼:copy file): 复制文件或目录
- rm(英文全拼:remove): 删除文件或目录
- mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
你可以使用 man [命令] 来查看各个命令的使用文档,如 :man cp。
ls : 不带任何参数运行 ls 命令将列出当前工作目录的内容。
要列出任何目录的内容,例如 /etc 目录使用如下命令 $ ls /etc
常用选项和参数:
-a 全部的文件,连同隐藏文件(开头为.的文件)一起列出来;
-d 仅列出目录本身,而不是列出目录内的文件数据;
-l 长数据串列出,包含文件的属性与权限等等数据;
cd: (一段用法示例)
存在目录 home/hiddener/wow 和 home/hiddener/wow1
初始:
查看当前目录:
退回根目录(返回上两级目录):
使用绝对路径切换到 home/hiddener/wow 目录:
使用相对路径切换到 home/hiddener/wow1 目录:
使用绝对路径回到家目录(‘~’,此处实指home/hiddener)
返回上一级目录:
pwd: 显示目前所在目录。
mkdir: 创建新目录。
在~目录下创建test子目录:
在~目录下使用-p命令(递归)创建一串目录test1/test2/test3 :
在~目录下使用-m命令自定义权限 创建目录test4 :
(效果:)
rmdir:(略)
cp: 拷贝文件和目录;参数-r几乎必加!!
将~/test1 全部拷贝至 ~/test 中,并命名为test6:
(效果:)
其他参数:
-a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
-d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
-l:进行硬式连结(hard link)的连结档创建,而非复制文件本身;
-p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
-s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
-u:若 destination 比 source 旧才升级 destination !
mv: 移动文件、目录,或修改名称。
将~下的test更名为testwow:
将~下的test1移动到~/testwow中:
参数:
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)
rm: 移除文件或目录。
-f :强制模式,文件不存在也不会有警告信息(一直加上得了)
-i :啰嗦模式,每干个事都要问你一句
-r :递归删除目录和所有文件,快但是危险。
讲了这么多,我还是不会 创!! 建!! 文!! 件!!
用 > 加路径 即可。
查看文件内容的常用命令:
- cat 由第一行开始显示文件内容
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
- nl 显示的时候,顺道输出行号!
- more 一页一页的显示文件内容
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
- head 只看头几行
- tail 只看尾巴几行
cat:
参数:
-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符
tac:
nl:
其余略。
四、Linux用户和用户组管理
进入root用户的方式:
(初次):使用sudo passwd root命令,重设root密码
(每次):su命令后输入之前设置的root密码
输密码时,在终端里是什么都看不到的。但实际上,输进去了。
用户账号管理:
常用命令:
useradd 添加账号
userdel 删除账号
usermod 修改账号
passwd 用户口令管理
useradd: 新建用户。
创建用户kid 并为其创建一个主目录 /home/kid:
参数:
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
userdel: 删除用户。
将用户kid和它的主目录一起删除:(-r 删除主目录)
该回显是正常情况。
usermod: 修改用户的有关属性,如用户号、主目录、用户组、登录shell等。
参数完全同useradd,略。
passwd: 管理用户口令。root可以为自己和其他用户指定口令,普通用户只能改自己的。
修改自己的口令:
超级用户修改hiddener口令:
取消hiddener用户的密码:
参数:
-l 锁定口令,即禁用账号。
-u 口令解锁。
-d 使账号无口令。
-f 强迫用户下次登录时修改口令。
用户组管理:略。
用户管理最重要的系统文件: /etc/passwd
/etc/passwd中,每一行记录对应着一个用户,其格式和具体含义为:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
(1)用户名:
不能有冒号(:);最好不要包含点字符(.);不能用连字符(-)和加号(+)打头。
(2)口令:
Linux系统使用了shadow技术,把加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊字符“x”。
(3)用户标识号:
一般情况下与用户名一一对应。
0是超级用户,1-99由系统保留,普通用户的标识号从1000开始。
(4)组标识号:(略)
(5)注释性描述:不知道干嘛的
(6)主目录:用户起始工作目录
(7)登录Shell:
用户登录后,要启动一个进程,负责将用户的操作传给内核,这个进程是用户登录到系统后运行的命令解释器或某个特定的程序,即Shell。
Shell是用户与Linux系统之间的接口。
Linux的shell有许多种,常用的有sh(Bourne Shell),csh(C Shell),ksh(Korn Shell),tcsh(TENEX/TOPS-20 type C Shell),bash(Bourne Again Shell)等。
系统管理员可以为用户指定特殊的Shell。系统默认的Shell为bash,其字段的值为bin/bash。
(8)伪用户(pseudo users)
这类用户在/etc/passwd文件中也占有一条记录,但是不能登录,即登录shell末尾为nologin。
它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。
常见伪用户含义:
伪 用 户 含 义 :
bin 拥有可执行的用户命令文件
sys 拥有系统文件
adm 拥有帐户文件
uucp UUCP使用
lp lp或lpd子系统使用
nobody NFS使用
五、Linux磁盘管理
常用命令:
df(英文全称:disk full):列出文件系统的整体磁盘使用量
du(英文全称:disk used):检查磁盘空间使用量
fdisk:用于磁盘分区。
这里只简单介绍df。
df:检查文件系统的磁盘空间占用情况。
参数:
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
六、Linux apt命令
apt是一个Ubuntu中的Shell前端软件包管理器。
apt命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令;
其需要root权限。
apt常用命令:
列出所有可更新的软件清单命令: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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?