linux-basic(6)linux的文件权限与目录配置

【6.1】用户与用户组
1)linux用户身份与用户组记录的文件

/etc/passwd 默认情况下所有系统上的账号都记录在该文件;
/etc/shadow 用户密码记录在该文件下;
/etc/group linux的所有组名记录在该文件下;
注意:这3个文件是 linux系统里面账号,密码,用户组信息的集中地;不要随便删除这3个文件;




【6.2】linux文件权限概念
【6.2.1】linux文件属性
【荔枝】 ls -al

ls 显示文件的文件名与相关属性;-al则表示列出所有的文件详细的权限与属性,包括隐藏文件,就是文件名第一个字符为 . 的文件;


【荔枝】 drwxrwxr-x.  2 pacoson pacoson    1024 3月   1 07:23 .abrt 
【第一列】

第一个字符代表这个文件是『目录、文件或链接文件等等』:
当为[ d ]则是目录,例如上表档名为『.gconf』的那一行;
当为[ - ]则是文件,例如上表档名为『install.log』那一行;
若是[ l ]则表示为连结档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。


其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。

【第二列】表示有多少文件名连结到此节点(i-node);
【第三列】表示这个文件(或目录)的『拥有者账号』,即所有者账号;
【第四列】表示这个文件的所属用户组;
【第五列】表示文件容量大小,单位为B;
【第六列】表示文件的创建日期或者最近修改日期;


【荔枝】ls -l
1)ls -l --full-time:显示出完整的时间格式;


2)使用 LANG=en_US 来修改语言;


3)想要让系统默认的语言变成英文的话,你可以修改系统配置文件 /etc/sysconfig/i18n ;



【第七列】为该文件的文件名;


【补充】
1)man ls 或 info ls 可以查看ls命令的基础用法;




【补充】ls命令(列出所有子目录与文件)  https://blog.csdn.net/xingpidong/article/details/53505468


功能:ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的一个命令之一,因为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。
语法:ls [选项] [目录或是文件] 
对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出 其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当前目录的信息。
参数:
  • - a 显示指定目录下所有子目录与文件,包括隐藏文件。 
  • - A 显示指定目录下所有子目录与文件,包括隐藏文件。但不列出“.”和 “..”。
  • - b 对文件名中的不可显示字符用八进制逃逸字符显示。
  • - c 按文件的修改时间排序。 
  • - C 分成多列显示各项。
  • - d 如果参数是目录,只显示其名称而不显示其下的各文件。往往与l选项一起使 用,以得到目录的详细信息。
  • - f 不排序。该选项将使lts选项失效,并使aU选项有效。
  • - F 在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记 “@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。 
  • - i 在输出的第一列显示文件的i节点号。 
  • - l 以长格式来显示文件的详细信息。这个选项最常用。
  • 每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小 建立或最近修改的时间 名字
  • 对于符号链接文件,显示的文件名之后有“—〉”和引用文件路径名。 
  • 对于设备文件,其“文件大小”字段显示主、次设备号,而不是文件大小。
  • 目录中的总块数显示在长格式列表的开头,其中包含间接块。 
  • - L 若指定的名称为一个符号链接文件,则显示链接所指向的文件。
  • - m 输出按字符流格式,文件跨页显示,以逗号分开。 
  • - n 输出格式与l选项相同,只不过在输出中文件属主和属组是用相应的UID号和 GID号来表示,而不是实际的名称。
  • - o 与l选项相同,只是不显示拥有者信息。
  • - p 在目录后面加一个“/”。
  • - q 将文件名中的不可显示字符用“?”代替。 
  • - r 按字母逆序或最早优先的顺序显示输出结果。 
  • - R 递归式地显示指定目录的各个子目录中的文件。 
  • - s 给出每个目录项所用的块数,包括间接块。 
  • - t 显示时按修改时间(最近优先)而不是按名字排序。若文件修改时间相同,则 按字典顺序。修改时间取决于是否使用了c或u选顶。缺省的时间标记是最后一次修 改时间。
  • - u 显示时按文件上次存取的时间(最近优先)而不是按名字排序。即将-t的时间 标记修改为最后一次访问的时间。
  • - x 按行显示出各排序项的信息。
  • -----------------------------------------------------------------------------------------------------
  • 用ls - l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文件类型,它可以是下述类型之一:
  • - 普通文件
  • d 目录 
  • l 符号链接
  • b 块设备文件
  • c 字符设备文件
  • 后面的9个字符表示文件的访问权限,分为3组,每组3位。
  • 第一组表示文件属主的权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字 符分别表示对文件的读、写和执行权限。 
  • 各权限如下所示:
  • r 读 
  • w 写 
  • x 执行。对于目录,表示进入权限。
  • s 当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组 ID)。
  • t 设置标志位(留在内存,不被换出)。如果该文件是目录,在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文件,在该文件执行后,指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。 
  • - 没有设置权限。
【6.2.2】如何改变文件属性与权限
1)几个常用于用户组,所有者,各种身份的权限的修改的命令:

  • chgrp:改变文件所属用户组;被改变的组名必须在 /etc/group 文件中有记录才行;
  • chown:改变文件所有者;
  • chmod:改变文件的权限;
【荔枝】chgrp [-R] dir/file , 其中-R递归持续更改,连同其子目录下的所有文件和目录;



分析)可以看到 chgrp 没有-R参数的话,只改变目录的组所有者;


【荔枝】chgrp -R 目录 可以改变目录的子目录或文件的组所有者;


【荔枝】

chown [-R] 账号名称 文件或目录
chown [-R] 账号:组名 文件或目录
-R表示递归更改,即连同子目录下的所有文件都更改;

【补充】事实上,chown与可以使用 chown user.group file; chown 也可以单纯的修改所属用户组, 如 chown .sshd install.log 就是修改用户组,即那个小数点的用途;

2)什么时候使用 chown 或 chgrp 呢?
由于复制行为cp 会复制执行者的属性与权限,所以需要修改文件的所有者与用户组;

3)改变权限chmod
3.1)数字类型改变文件权限

linux文件的基本权限有9个,分别是 owner, group, others 3个身份都有 read, write, execute 权限;数字表示 r=4, w=2, x=1;

每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx---] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0

【荔枝】chmod [-R] xyz 文件或目录
选项与参数:

  • xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
  • -R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更。


3.2)符号类型改变文件权限
分别用 u, g, o 表示 user, group, others 3种身份;此外 a代表全部身份;权限矩阵如下:


【荔枝】通过符号设置权限



【补充】增加或减少权限:  也可以通过 + - 来设置权限, 如: chmod a+w 文件或目录; chmod a-x 文件或目录;


【6.2.3】目录与文件的权限意义
1)权限对文件的重要性

文件是实际含有数据的地方,包括一般文本文件、数据库内容文件、二进制可执行文件(binary program)等等。
在Linux底下,我们的文件是否能被执行,则是藉由是否具有『x』这个权限来决定的!跟档名是没有绝对的关系的!

2)权限对目录的重要性
文件是存放实际数据的所在,那么目录主要是储存啥玩意啊?目录主要的内容在记录文件名列表,文件名与目录有强烈的关连啦! 

2.1)所以如果是针对目录时,那个 r, w, x 对目录是什么意义呢?
  • r: 读取目录下文件列表的权限;即利用ls命令 显示目录结构列表;
  • w: 具有更改该目录结构列表的权限;如:
  • 建立新的文件与目录;
  • 删除已经存在的文件与目录(不论该文件的权限为何!)
  • 将已存在的文件或目录进行更名;
  • 搬移该目录内的文件、目录位置。
  • x: 目录的x代表的是用户能否进入该目录成为工作目录的用途! 工作目录表示你目前所在的目录;变换目录的命令是cd;
注意1:如果你在某目录下不具有x的权限, 那么你就无法切换到该目录下,也就无法执行该目录下的任何指令,即使你具有该目录的r的权限。
注意2:要开放目录给任何人浏览时,应该至少也要给予r及x的权限,但w权限不可随便给! 为什么w不能随便给,我们来看下一个例子:

【荔枝】目录的w权限不能随便给
1)一般用户的读取权限 


上面的练习我们知道了只有r确实可以让用户读取目录的文件名列表,不过详细的信息却还是读不到的, 同时也不能将该目录变成工作目录(用 cd 进入该目录之意)。


2)目录所有者的读取权限


透过上面这个简单的步骤,你就可以清楚的知道, x 在目录当中是与『能否进入该目录』有关, 至于那个 w 则具有相当重要的权限,因为他可以让使用者删除、更新、新建文件或目录, 是个很重要的参数啊!这样可以理解了吗?! ^_^

【6.2.4】linux文件种类与扩展名
1)文件种类

  • 普通文件, 纯文本文件,二进制文件,数据格式文件;
  • 目录;
  • 连接文件;
  • 设备与设备文件:块设备文件,字符设备文件,套接字,管道;
  • linux文件扩展名:
  • linux
2)扩展名: 底下有数种常用的扩展名:
  • *.sh : 脚本或批处理文件 (scripts),因为批处理文件为使用shell写成的,所以扩展名就编成 .sh ;
  • *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等等的,由于不同的压缩软件,而取其相关的扩展名啰!
  • *.html, *.php:网页相关文件,分别代表 HTML 语法与 PHP 语法的网页文件啰! .html 的文件可使用网页浏览器来直接开启,至于 .php 的文件, 则可以透过 client 端的浏览器来 server 端浏览,以得到运算后的网页结果呢!
3)linux文件长度限制: 在Linux底下,使用预设的Ext2/Ext3文件系统时,针对文件的档名长度限制为:
  • 单一文件或目录的最大容许文件名为 255 个字符;
  • 包含完整路径名称及目录 (/) 之完整档名为 4096 个字符。
4)linux文件名限制
由于Linux在文字接口下的一些指令操作关系,一般来说,你在设定Linux底下的文件名时, 最好可以避免一些特殊字符比较好!例如底下这些:
* ? > < ; & ! [ ] | \ ' " ` ( ) { }
因为这些符号在文字接口下,是有特殊意义的!另外,文件名的开头为小数点『.』时, 代表这个文件为『隐藏档』喔!同时,由于指令下达当中,常常会使用到 -option 之类的选项, 所以你最好也避免将文件档名的开头以 - 或 + 来命名啊!

【6.3】linux目录配置
1)Filesystem Hierarchy Standard (FHS)标准的出炉了:
主要目的是希望让使用者可以了解到已安装软件通常放置于那个目录下, 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户,都能够遵循FHS的标准。

2)事实上,FHS是根据过去的经验一直再持续的改版的,FHS依据文件系统使用的频繁与否与是否允许使用者随意更动, 而将目录定义成为四种交互作用的形态,用表格来说有点像底下这样:


3)我们要了解的是,什么是那四个类型?
  • 可分享的:可以分享给其他系统挂载使用的目录,所以包括执行文件与用户的邮件等数据, 是能够分享给网络上其他主机挂载用的目录;
  • 不可分享的:自己机器上面运作的装置文件或者是与程序有关的socket文件等, 由于仅与自身机器有关,所以当然就不适合分享给其他主机了。
  • 不变的:有些数据是不会经常变动的,跟随着distribution而不变动。 例如函式库、文件说明文件、系统管理员所管理的主机服务配置文件等等;
  • 可变动的:经常改变的数据,例如登录文件、一般用户可自行收受的新闻组等。
4)事实上,FHS针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义: 
  • / (root, 根目录):与开机系统有关;
  • /usr (unix software resource):与软件安装/执行有关;
  • /var (variable):与系统运作过程有关。
5)所以在FHS的要求方面,他希望根目录不要放在非常大的分割槽内, 因为越大的分割槽妳会放入越多的数据,如此一来根目录所在分割槽就可能会有较多发生错误的机会。
因此FHS标准建议:根目录(/)所在分割槽应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分割槽内,保持根目录越小越好。 如此不但效能较佳,根目录所在的文件系统也较不容易发生问题。

6)FHS定义出根目录(/)底下应该要有底下这些次目录的存在才好:
/bin 因为/bin放置的是在单人维护模式下还能够被操作的指令。 在/bin底下的指令可以被root与一般账号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令。


/boot  linux内核文件等开机所需配置文件等; linux kernel 常用文件名为 vmlinuz, 如果使用 grub 引导装载程序,还会存在 /boot/grub 这个目录;


/dev 在Linux系统上,任何装置与接口设备都是以文件的型态存在于这个目录当中的。
 你只要透过存取这个目录底下的某个文件,就等于存取某个装置啰~ 比要重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等


/etc 配置文件;


/home 系统默认的用户主文件夹;


/lib 函数库;尤其重要的是/lib/modules/这个目录, 因为该目录会放置核心相关的模块(驱动程序)喔!


/media 这个/media底下放置的就是可移除的装置啦! 包括软盘、光盘、DVD等等装置都暂时挂载于此。常见的档名有:/media/floppy, /media/cdrom等等。
/mnt 
/opt 这个是给第三方软件放置的目录;
/root 系统管理员root的主文件夹;

/sbin  放在/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令。 至于某些服务器软件程序,一般则放置到/usr/sbin/当中。至于本机自行安装的软件所产生的系统执行文件(system binary), 则放置到/usr/local/sbin/当中了。常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等。 


/srv service的缩写;是一些网络服务启动之后,这些服务所需要取用的数据目录。 常见的服务例如WWW, FTP等等。

/tmp 临时文件暂时放置的目录;
/lost+found 这个目录是使用标准的ext2/ext3文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时, 将一些遗失的片段放置到这个目录下。
/proc  这个目录本身是一个『虚拟文件系统(virtual filesystem)』喔!他放置的数据都是在内存当中, 例如系统核心、行程信息(process)、周边装置的状态及网络状态等等。因为这个目录下的数据都是在内存当中, 所以本身不占任何硬盘空间啊!比较重要的文件例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等。


/sys 这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要也是记录与核心相关的信息。 包括目前已加载的核心模块与核心侦测到的硬件装置信息等等。这个目录同样不占硬盘容量喔!



【补充】这五个目录千万不可与根目录分开在不同的分区:


  • /usr 是 UNIX Software Resource 的缩写;即unix 操作系统软件资源所放置的目录,而不是用户数据;因为是所有系统默认的软件(distribution发布者提供的软件)都会放置到/usr底下,因此这个目录有点类似Windows 系统的『C:\Windows\ + C:\Program files\』这两个目录的综合体,系统刚安装完毕时,这个目录会占用最多的硬盘容量。
  • /usr/bin/  绝大部分的用户可使用指令都放在这里!
  • /usr/include/  c/c++等程序语言的档头(header)与包含档(include)放置处,当我们以tarball方式 (*.tar.gz 的方式安装软件)安装某些数据时,会使用到里头的许多包含档喔!
  • /usr/lib/  包含各应用软件的函式库、目标文件(object file),以及不被一般使用者惯用的执行档或脚本(script)。  
  • /usr/local/  系统管理员在本机自行安装自己下载的软件(非distribution默认提供者),建议安装到此目录, 这样会比较便于管理。
  • /usr/sbin/  非系统正常运作所需要的系统指令。最常见的就是某些网络服务器软件的服务指令(daemon)啰!
  • /usr/share/  放置共享文件的地方,在这个目录下放置的数据几乎是不分硬件架构均可读取的数据, 因为几乎都是文本文件嘛!在此目录下常见的还有这些次目录:
  • /usr/share/man:联机帮助文件
  • /usr/share/doc:软件杂项的文件说明
  • /usr/share/zoneinfo:与时区有关的时区文件;
  • /usr/src/  一般源码码建议放置到这里,src有source的意思。至于内核源码码则建议放置到/usr/src/linux/目录下。
  • /var   因为/var目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file),或者例如MySQL数据库的文件等等。常见的次目录有:
    • /var/cache/ 程序运行时产生的临时文件放置的目录;
    • /var/lib/ 程序执行需要使用的数据文件放置的目录;
    • /var/lock/  一些装置或者是文件资源一次只能被一个应用程序所使用,如果同时有两个程序使用该装置时, 就可能产生一些错误的状况,因此就得要将该装置上锁(lock),以确保该装置只会给单一软件所使用。
    • /var/log/  登录文件放置的目录; 比较重要的文件如/var/log/messages, /var/log/wtmp(记录登入者的信息)等。
    • /var/mail/  放置个人电子邮件信箱的目录,不过这个目录也被放置到/var/spool/mail/目录中! 通常这两个目录是互为链接文件啦!
    • /var/run/  某些程序或者是服务启动后,会将他们的PID放置在这个目录下喔!
    • /var/spool/  这个目录通常放置一些队列数据,所谓的『队列』就是排队等待其他程序使用的数据啦!

【6.3.2】目录树
1)特性如下:

目录树的启始点为根目录 (/, root);
每一个目录不止能使用本地端的 partition 的文件系统,也可以使用网络上的 filesystem 。举例来说, 可以利用 Network File System (NFS) 服务器挂载某特定目录等。
每一个文件在此目录树中的文件名(包含完整路径)都是独一无二的。

2)selinux目录比较特殊: 这个目录的内容数据也是在内存中的信息, 同样的不会占用任何的硬盘容量。这个/selinux是Secure Enhance Linux(SELinux)的执行目录, 而SELinux是Linux核心的重要外挂功能之一,他可以用来作为具体权限的控管,主要针对程序(尤其是网络程序)的访问权限来限制。


【补充】整体目录树


【6.3.4】centos的查看
1) 当前distribution使用的是哪个linux标准;如下:

uname -r 命令进行查看;
lsb == linux standard base , Linux标准库 



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330667.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里巴巴对Java编程【异常处理】的规约

转载自 阿里巴巴对Java编程【异常处理】的规约 异常处理 1. 【强制】 Java 类库中定义的一类 RuntimeException 可以通过预先检查进行规避&#xff0c;而不应该通过 catch 来处理&#xff0c;比如&#xff1a; IndexOutOfBoundsException &#xff0c; NullPointerException 等…

Http协议的请求和响应

1.HTTP协议介绍 HTTP(HyperTextTransferProtocol)&#xff1a;超文本传输协议。HTTP协议是基于TCP/IP协议的。基于请求/响应模型的: 一次请求对应一次响应。传输协议&#xff1a;客户端和服务器端的通信规则(握手规则)。 2.HTTP协议的请求 HTTP协议规定了客户端发给服务器的数…

centos上安装jdk

1&#xff09;下载jdk&#xff1a; http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2&#xff09;放置到/usr/local/software/java 目录下&#xff0c;并解压 tar-xzv -f jdk*.gz 3&#xff09;配置环境变量 vim /etc/profile 追…

阿里巴巴对Java编程【单元测试】的规约

转载自 阿里巴巴对Java编程【单元测试】的规约 单元测试 1. 【强制】好的单元测试必须遵守 AIR 原则。 说明&#xff1a;单元测试在线上运行时&#xff0c;感觉像空气 &#xff08;AIR&#xff09; 一样并不存在&#xff0c;但在测试质量的保障上&#xff0c;却是非常关键的。好…

linux-basic(7)linux文件与目录管理

【7.1】目录与路径 【7.1.2】目录相关操作1&#xff09;特殊目录列表&#xff1a;(1)2&#xff09;目录操作命令&#xff0c;底下我们就来谈一谈几个常见的处理目录的命令吧&#xff1a;cd&#xff1a;变换目录pwd&#xff1a;显示目前的目录mkdir&#xff1a;创建一个新的目录…

Get和Post请求和对应的参数获取

1.get和post的请求方式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>vue的异步请求</title><script src"js/vue.js"></script><!--vue单独抽取的插件--><sc…

阿里巴巴对Java编程【安全规约】的规约

转载自 阿里巴巴对Java编程【安全规约】的规约 安全规约 1. 【强制】隶属于用户个人的页面或者功能必须进行权限控制校验。 说明&#xff1a;防止没有做水平权限校验就可随意访问、修改、删除别人的数据&#xff0c;比如查看他人的私信内容、修改他人的订单。 2. 【强制】用户敏…

JSON转换工具---jackson

1.json传递中和javaBean对象的关系 打印出来的字符串&#xff0c;对象和键值集合用{}, 数组和用[] 2.json的转换 总测试类:以下转换都为单元测试方法 public class ObjectMapperTest {private ObjectMapper mapper new ObjectMapper(); }<1>json和对象的转换 /*1.Use…

df、du和fdisk命令的区别

【1】df 列出文件系统的整体磁盘使用量由于 df 主要读取的数据几乎都是针对一整个文件系统&#xff0c;因此读取的范围主要是在 Superblock 内的信息&#xff0c; 所以这个命令显示结果的速度非常的快速&#xff01;&#xff08;1&#xff09;&#xff08;2&#xff09;补充&am…

阿里巴巴对Java编程【Mysql】的规约

转载自 阿里巴巴对Java编程【Mysql】的规约 建表规约 1. 【强制】表达是与否概念的字段&#xff0c;必须使用 is _ xxx 的方式命名&#xff0c;数据类型是 unsigned tinyint&#xff08; 1 表示是&#xff0c;0 表示否 &#xff09; 。 说明&#xff1a;任何字段如果为非负数&a…

applicationContext配置mybatis

1.引入外部的properties属性文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns:context"http://w…

linux-basic(8)linux磁盘与文件系统管理

【8.1】认识EXT2文件系统【补充】硬盘与存储设备 https://blog.csdn.net/pacosonswjtu/article/details/79811762&#xff08;1&#xff09;实际的数据都是写在具有磁性物质的磁碟盘上头&#xff0c;而读写主要是透过在机械手臂上的读取头(head)来达成。 实际运作时&#xff0c…

阿里巴巴对Java编程【应用结构】的规约

转载自 阿里巴巴对Java编程【应用结构】的规约 应用分层 1. 【推荐】图中默认上层依赖于下层&#xff0c;箭头关系表示可直接依赖&#xff0c;如&#xff1a;开放接口层可以依赖于Web 层&#xff0c;也可以直接依赖于 Service 层&#xff0c;依此类推&#xff1a;  开放接口…

spring注解注入IOC

1.创建Bean对象的注解 <1>配置自定义Bean对象注解 Component、Controller、Service、repository 用法&#xff1a;写在类上&#xff0c; 例如&#xff1a;Service 或者 Service(“userService”) 作用&#xff1a;将该类交给Spring创建对象保存到Spring容器中&#xff…

jstack命令:教你如何排查多线程问题

转载自 jstack命令&#xff1a;教你如何排查多线程问题这是之前的一个死锁案例&#xff1a;一个多线程死锁案例&#xff0c;如何避免及解决死锁问题&#xff1f;如程序中发生这样的死锁问题该如何排查呢&#xff1f;我们可以使用java自带的jstack命令进行排查。1、先在服务器运…

linux-basic(9)文件与文件系统的压缩与打包

【9.1】压缩文件的用途与技术【9.2】linux系统常见的压缩命令1&#xff09;压缩文件的扩展名大多是 tar, tar.gz, tgz, gz, Z, bz2 等&#xff1b;如下图所示&#xff1a;&#xff08;1&#xff09;Linux上常见的压缩命令就是 gzip 与 bzip2 &#xff0c;至於 compress 已经不再…

纯注解开发配置spring

1.纯注解开发【定义配置类的注解】 Confituration 表示该类是一个配置类 ComponentScan(“com.itheima”) 配置包扫描 PropertySource(“classpath:jdbc.properties”) 加载属性文件 Import(JdbcConfig.class) 加载其他配置类 2.spring整合mybatis【纯注解&#xff0c;3个…

阿里巴巴对Java编程【命名风格】的规约

转载自 阿里巴巴对Java编程【命名风格】的规约 命名风格 1. 【强制】代码中的命名均不能以下划线或美元符号开始&#xff0c;也不能以下划线或美元符号结束。 反例&#xff1a; _name / __name / $Object / name_ / name$ / Object$ 2. 【强制】代码中的命名严禁使用拼音与英文…

linux-basic(10)vim程序编辑器

【10.1】vi 与 vim【10.2】vi的使用1&#xff09;3种模式&#xff1a;模式1&#xff1a;一般模式&#xff0c; vim打开就是这种模式&#xff0c;编辑模式下 按 esc 回到一般模式&#xff1b;模式2&#xff1a;编辑模式&#xff0c;要等到你按下『i, I, o, O, a, A, r, R』等任何…

阿里巴巴对Java编程【代码格式】的规约

转载自 阿里巴巴对Java编程【代码格式】的规约 代码格式 1. 【强制】大括号的使用约定。如果是大括号内为空&#xff0c;则简洁地写成{}即可&#xff0c;不需要换行 &#xff1b; 如果是非空代码块则&#xff1a; 1 &#xff09; 左大括号前不换行。 2 &#xff09; 左大括号后…