内核(kernel):(管理硬件资源(cpu,内存,外部设备),文件管理,内存管理,进程调度,网络通信,硬件驱动;为上层应用软件提供一个运行环境;)
系统调用(system calls):内核对上层应用程序提供的接口;
库函数(library routines);对系统调用进行包装(方便程序员使用);
shell:(命令解析器,shell本质是一个程序,解析命令,执行命令,执行脚本(script,命令的集合))上层应用程序可以通过shell,shell访问内核完成调用;
POSIX标准是一种操作系统接口标准,全称为“可移植操作系统接口”(Portable Operating System Interface)。它最初由IEEE组织制定,目的是为了使不同的操作系统之间可以互相兼容。POSIX标准定义了一系列API(应用程序接口)和命令行工具,这些API和工具规定了操作系统应该提供哪些功能,并规定了这些功能的调用方式和行为。POSIX标准包含多个部分,主要涵盖了文件管理、进程控制、用户权限、系统调用等方面。其中最常见的是POSIX.1标准,也称为核心标准,它规范了基本的操作系统接口。另外还有POSIX.2标准,规定了一些其他的API和工具,如shell、正则表达式等;POSIX.3标准则定义了一些标准化的Shell扩展;POSIX.4标准则规定了网络编程相关的API等。这些标准都是为了让不同的操作系统之间具有更好的兼容性,以便更方便地编写跨平台程序。POSIX标准通常被Unix/Linux操作系统所支持。几乎所有的Unix/Linux发行版都遵循了POSIX标准,因此开发人员可以在这些操作系统上使用标准的API和工具,而不用担心因为操作系统的差异导致程序无法运行。
查看内核信息:man man //类似于help
q:退出;
d(down):向下移动半页;
u(up)向上移动半页;
f(forword);向下移动一整页;
p(previous):向上移动一整页;
man uname(查看内核信息):
Linux :内核名;leao:网络节点名;kernel-version:
krenel.org网站可以下载linux内核的术语;
stable:稳定版本;
longterm:长期支持版本;//官方会解决bug
查看用户信息:
特权用户(超级用户,根用户)--root;
普通用户(sudoers:临时拥有特权用户的权限;其他用户:)
leao:x:1000:1000:leao:/home/leao:/bin/bash
冒号分隔(用户名:密码:用户id:组id:comments:用户的家目录:默认shell程序,bash shell)
该命令位于八号手册
申请特权有时效;没有提示信息就是最好的信息(unix设计哲学):只返回错误信息;
默认的shell是sh,没有家目录,不会自动创建家目录;
没有test的家目录:
该创建用户命令用了bash,并创建了家目录;-m(创建家目录);-s /bin/bash(指定bash为默认的shell);
切换至超级权限后$会变成#;
退出切换:exit;
切换用户组成了栈的结构;
可以用有sudo权限的账户密码去改其他用户的密码;
当前工作目录,每一个进程都有一个属性叫做当前工作目录;
(shell也是一个进程,有自己的当前工作目录)
cd / 切换到根目录
cd ~ 切换到该用户的家目录
cd . 切换到当前目录
cd .. 切换到上一级目录
cd - 回到上一级目录
env :查看环境变量;cd -的实现功能依赖于环境变量;
bin(binary):可执行程序
dev(device):设备文件
home:普通用户家目录的根目录
root:root用户的家目录;
sbin(system binary):和系统相关的可执行程序;
var(variable):经常发生变化的文件(日志文件);
etc:不放在其他目录的文件就放这,后面就放配置文件;
lib:库文件;
proc(process):进程映射文件;
-rw-rw--:代表对应的权限(-就是没有对应的权限);
user-group-other;
*:可以匹配任意多个字符(包括0个字符);
?:可以匹配任意一个字符;
[ ]:匹配集合内的任意一个字符;
[! ]:匹配集合外的任意一个字符;
类:[0-9]数字;[a-z]小写字母;[A-Za-z]:字母;
cp file dir(目录):复制一个文件,如果目录存在,
cp file1 file2: 把文件复制到另一个文件中,如果文件不存在则创建文件,如果文件不存在则覆盖文件;
-i:覆盖前提示;
运用通配符把所有.c文件都copy到dir.txt里面去;
递归地去复制文件夹:-r
cp dir1 dir2 -r:如果文件夹不存在创建文件夹,并把dir1所有内容拷贝到dir2中;
如果文件夹存在,会把dir1已经它里面的内容拷贝到dir2中;
也可以一次性复制多个文件夹;
把很多文件复制到文件夹中,但文件夹中已经有部分文件,-u只复制修改过或不存在的文件:-u
因为test不存在,只复制了test;
移动到同目录,重命名;
cp -i f1.c dir.txt/f1.c . 从dir.txt复制文件f1.c到当前目录;
Mv file1 file2 : 把file1移动到file2,如果文件不存在则创建文件,如果文件存在则覆盖文件;
mv file dir 如果文件fir存在,将file移动到目录中
mv dir1 dir2 如果dir2存在,将dir1移动到dir2中,如果dir2不存在,创建dir2目录,并将dir1中的内容“移动到”dir2中;
文件路径,
虚拟文件系统和物理文件系统·有对应关系:物理文件系统文件以链表链接
cp -r dir1 dir2 : 系统会在物理文件系统中复制一份
mv dir1 dir3:不会复制,但会改变文件的链接方式,相当于改变了虚拟文件系统的文件路径,所以mv的效率大于cp;物理文件系统内容不变;
-i在删除每一份文件的时候会提示;
注意:平时不用root文件;
删除之前缺点要删除的选项(如果用到通配符,使用ls确认要删除的选项);
添加-i 参数;
不要递归删除之前加sudo权限;