linux-day01

1、linux内核架构图

内核(kernel):(管理硬件资源(cpu,内存,外部设备),文件管理,内存管理,进程调度,网络通信,硬件驱动;为上层应用软件提供一个运行环境;)

系统调用(system calls):内核对上层应用程序提供的接口;

库函数(library routines);对系统调用进行包装(方便程序员使用);

shell:(命令解析器,shell本质是一个程序,解析命令,执行命令,执行脚本(script,命令的集合))上层应用程序可以通过shell,shell访问内核完成调用;

posix标准:

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和工具,而不用担心因为操作系统的差异导致程序无法运行。

2、linux的发行版本 = linux内核 + 其他支撑软件

查看内核信息:man man  //类似于help

q:退出;

d(down):向下移动半页;

u(up)向上移动半页;

f(forword);向下移动一整页;

p(previous):向上移动一整页;

man uname(查看内核信息):

Linux :内核名;leao:网络节点名;kernel-version:

krenel.org网站可以下载linux内核的术语;

stable:稳定版本;

longterm:长期支持版本;//官方会解决bug

查看发行版本:

查看用户信息:

3、用户子系统:

        特权用户(超级用户,根用户)--root;

        普通用户(sudoers:临时拥有特权用户的权限;其他用户:)

查看所有用户:

        leao:x:1000:1000:leao:/home/leao:/bin/bash

冒号分隔(用户名:密码:用户id:组id:comments:用户的家目录:默认shell程序,bash shell)

添加用户:useradd

该命令位于八号手册

申请特权有时效;没有提示信息就是最好的信息(unix设计哲学):只返回错误信息;

默认的shell是sh,没有家目录,不会自动创建家目录;

没有test的家目录:

删除用户:sudo userdel ---

正确创建用户:

该创建用户命令用了bash,并创建了家目录;-m(创建家目录);-s /bin/bash(指定bash为默认的shell);

切换用户(switch user):SU

切换至超级权限后$会变成#;

退出切换:exit;

切换用户组成了栈的结构;

更改密码:

可以用有sudo权限的账户密码去改其他用户的密码;

删除账号的家目录和邮箱:

4、文件子系统

虚拟文件系统(VFS):

绝对路径:根目录到文件位置

相对路径:相对当前工作目录

当前工作目录,每一个进程都有一个属性叫做当前工作目录;

(shell也是一个进程,有自己的当前工作目录)

pwd:显示当前工作目录

cd:改变当前工作目录;

cd /   切换到根目录

cd ~  切换到该用户的家目录

cd . 切换到当前目录

cd .. 切换到上一级目录

cd -   回到上一级目录

env  :查看环境变量;cd -的实现功能依赖于环境变量;

bin(binary):可执行程序

dev(device):设备文件

home:普通用户家目录的根目录

root:root用户的家目录;

sbin(system binary):和系统相关的可执行程序;

var(variable):经常发生变化的文件(日志文件);

etc:不放在其他目录的文件就放这,后面就放配置文件;

lib:库文件;

proc(process):进程映射文件;

 创建文件夹:mkdir(一次性可以创建一个或多个)

        

删除目录:rmdir(只能删除空目录)

罗列文件夹信息:ls

显示所有信息:ls -a   (--all,)

显示文件详细信息:ls -L(显示链接引用的详细信息)

-rw-rw--:代表对应的权限(-就是没有对应的权限);

user-group-other;

通配符(wildcard):

        *:可以匹配任意多个字符(包括0个字符);

        ?:可以匹配任意一个字符;

        [        ]:匹配集合内的任意一个字符;

        [!        ]:匹配集合外的任意一个字符;

        类:[0-9]数字;[a-z]小写字母;[A-Za-z]:字母;

复制:cp

cp file  dir(目录):复制一个文件,如果目录存在,

cp file1 file2: 把文件复制到另一个文件中,如果文件不存在则创建文件,如果文件不存在则覆盖文件;

-i:覆盖前提示;

运用通配符把所有.c文件都copy到dir.txt里面去;

递归地去复制文件夹:-r

cp dir1   dir2  -r:如果文件夹不存在创建文件夹,并把dir1所有内容拷贝到dir2中;

如果文件夹存在,会把dir1已经它里面的内容拷贝到dir2中;

也可以一次性复制多个文件夹;

把很多文件复制到文件夹中,但文件夹中已经有部分文件,-u只复制修改过或不存在的文件:-u

因为test不存在,只复制了test;

移动和重命名文件或文件夹:mv(-i -v -u(常用参数))

移动到同目录,重命名;

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;物理文件系统内容不变;

删除:rm(-i (提示信息),-r(递归删除),-v(删除的详细过程),-f(不给任何提示))

-i在删除每一份文件的时候会提示;

注意:平时不用root文件;

删除之前缺点要删除的选项(如果用到通配符,使用ls确认要删除的选项);

添加-i 参数;

不要递归删除之前加sudo权限;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值