Linux文件管理

2023-11-10

1 文件系统目录结构

1.1文件系统的目录结构
  • 文件和目录被组织成一个单根倒置树结构
  • 文件系统从根目录下开始,用“/”表示
  • 根文件系统(rootfs):root filesystem
  • 标准Linux文件系统(如:ext4),文件名称大小写敏感,例如:MAIL, Mail, mail, mAiL
  • 以 . 开头的文件为隐藏文件
  • 路径分隔的 /
  • 文件名最长255个字节
  • 包括路径在内文件名称最长4095个字节
  • 蓝色–>目录 绿色–>可执行文件 红色–>压缩文件 浅蓝色–>链接文件 灰色–>其他文件
  • 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用
  • 每个文件都有两类相关数据:元数据:metadata,即属性, 数据:data,即文件内容
1.2 常见的文件系统目录功能
  • /boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
  • /bin:所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序
  • /sbin:管理类的基本命令;不能关联至独立分区,OS启动即会用到的程序
  • /lib:启动时程序依赖的基本共享库文件以及内核模块文件 (/lib/modules)
  • /lib64:专用于x86_64系统上的辅助共享库文件存放位置
  • /etc:配置文件目录
  • /home/USERNAME:普通用户家目录
  • /root:管理员的家目录
  • /media:便携式移动设备挂载点
  • /mnt:临时文件系统挂载点
  • /dev:设备文件及特殊文件存储位置
    b: block device,随机访问
    c: character device,线性访问
  • /opt:第三方应用程序的安装位置
  • /srv:系统上运行的服务用到的数据
  • /tmp:临时文件存储位置
  • /usr: universal shared, read-only data
  • bin: 保证系统拥有完整功能而提供的应用程序
  • lib:32位使用
  • lib64:只存在64位系统
  • include: C程序的头文件(header files)
  • share:结构化独立的数据,例如doc, man等
  • local:第三方应用程序的安装位置
  • /var: variable data files
  • cache: 应用程序缓存数据目录
  • lib: 应用程序状态信息数据
  • local:专用于为/usr/local下的应用程序存储可变数据
  • lock: 锁文件
  • opt: 专用于为/opt下的应用程序存储可变数据
  • run: 运行中的进程相关数据,通常用于存储进程pid文件
  • spool: 应用程序数据池
  • tmp: 保存系统两次重启之间产生的临时数据
  • /proc: 用于输出内核与进程信息相关的虚拟文件系统
  • /sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
  • /selinux: security enhanced Linux,selinux相关的安全策略等信息的存储位置
1.3 应用程序的组成部分
  • 二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
  • 库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
  • 配置文件:/etc, /etc/DIRECTORY, /usr/local/etc
  • 帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
1.4 Linux下的文件类型
  • -普通文件
  • d 目录文件directory
  • b 块设备block
  • c 字符设备character
  • l 符号链接文件link
  • p 管道文件pipe
  • s 套接字文件socket

2 文件操作命令

2.1 显示当前工作目录

每个shell和系统进程都有一个当前的工作目录 CWD:current work directory

显示当前shell CWD的绝对路径:

pwd命令: printing working directory

-P 显示真实物理路径
-L 显示链接路径(默认)
2.2 绝对和相对路径
  • 绝对路径
    以正斜杠/ 即根目录开始
    完整的文件的位置路径
    可用于任何想指定一个文件名的时候
  • 相对路径名
    不以斜线开始
    指定相对于当前工作目录或某目录的位置
    可以作为一个简短的形式指定一个文件名

基名:basename,只取文件名而不要路径
目录名:dirname,只取路径,不要文件名

2.3 更改目录

命令 cd : change directory 改变目录
选项:-P 切换至物理路径,而非软链接目录
可以使用绝对或相对路径

  • 切换至父目录: cd …
  • 切换至当前用户主目录: cd
  • 切换至以前的工作目录: cd -
2.4 列出目录内容

ls 命令可以列出当前目录的内容或指定目录

常见选项:

-a 包含隐藏文件  
-l 显示额外的信息  
-R 目录递归  每个目录都进去找一遍
-ld 目录和符号链接信息  目录本身的内容  
-1 文件分行显示  
-S 按从大到小排序  
-t 按mtime排序  
-u 配合-t选项,显示并按atime从新到旧排序  
-U 按目录存放顺序显示  
-X 按文件后缀排序  

说明:
ls 查看不同后缀文件时的颜色由 /etc/DIR_COLORS 和@LS_COLORS变量定义

2.5 查看文件状态 stat

文件相关信息:metadata, data
ll --time=atime 文件

每个文件有三个时间戳:

  • access time 访问时间,atime,读取文件内容
  • modify time 修改时间,mtime,改变文件内容(数据) ll看到的内容
  • change time 改变时间,ctime,元数据(属性,如所有者)发生改变
[root@centos7-E ~]#stat anaconda-ks.cfg 
  File: ‘anaconda-ks.cfg’
  Size: 1897      	Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d	Inode: 201326658   Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: system_u:object_r:admin_home_t:s0
Access: 2020-03-14 15:24:12.447998978 +0800
Modify: 2020-03-14 15:22:01.956115831 +0800
Change: 2020-03-14 15:22:01.956115831 +0800
 Birth: -

2.6 确定文件内容

file命令检查文件的类型

hexdump -C 查看二进制

dos2unix windows文件转换成Linux文件

iconv -l 显示编码列表

UTF8一统江湖

2.7 文件通配符模式 wildcard pattern

touch 不能识别通配符,逻辑上不能这么干
搜索文件时可以用,实现对现有文件的过滤

* 匹配零个或多个字符   #不匹配.开头的文件,即隐藏文件
? 匹配任何单个字符
~ 当前用户家目录
~mage 用户mage家目录
~+和. 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围
[a-z] 字母
[A-Z] 字母
[wang] 匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符  

[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母,表示 a-z
[:upper:]: 任意大写字母,表示 A-Z
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符


ll -d /etc/rc[0-6]*  
[root@centos7-E cui]#ls -d .*
.   .bash_history  .bash_profile  .cache   .dbus      .ICEauthority  .mozilla
..  .bash_logout   .bashrc        .config  .esd_auth  .local         .Xauthority  

[root@centos7-E cui]#ls -d /etc/*/ 只列文件夹

2.8 创建空文件和刷新时间 touch

存在的文件就刷新时间,不存在的就创建

2.9 复制文件和目录cp

单纯备份可能会丢失属性

常用选项:

-i 如果目标已存在,覆盖前提示是否覆盖  (普通用户用的是原命令,管理员用的是别名cp=cp -i)  
-n 不覆盖,注意两者顺序  
-r, -R 递归复制目录及内部的所有内容  
-a 归档,相当于-dR --preserv=all,常用于备份功能  
-d --no-dereference --preserv=links 不复制原文件,只复制链接名   
--preserv[=ATTR_LIST]  
 mode: 权限  
ownership: 属主属组  
timestamp:  
links   
xattr  
context  
all  
-p 等同--preserv=mode,ownership,timestamp  
-v --verbose 显示过程  
-f --force  
-u --update 只复制源比目标更新文件或目标不存在的文件  
-b 目标存在,覆盖前先备份,默认形式为 filename~ ,只保留最近的一个备份  ,centos7之前版本  
--backup=numbered 目标存在,覆盖前先备份加数字后缀,形式为 filename.~#~ ,可以保留多个版本   #若此选项先执行,后执行-b选项,则按照此选项的格式继续
[root@centos7-E date]#cp -b /etc/passwd f2.txt  
[root@centos7-E date]#cp -b /etc/hosts f2.txt
cp: overwrite ‘f2.txt’? y  
[root@centos7-E date]#ll  
-rw-r--r--.   1 root root  158 Mar 23 20:02 f2.txt
-rw-r--r--.   1 root root 2314 Mar 23 20:02 f2.txt~

[root@centos7-E date]#cp --backup=numbered /etc/issue f1.txt
[root@centos7-E date]#ll
-rw-r--r--.   1 root root   23 Mar 23 19:57 f1.txt
[root@centos7-E date]#cp --backup=numbered /etc/issue f1.txt
cp: overwrite ‘f1.txt’? y
[root@centos7-E date]#ll
-rw-r--r--.   1 root root   23 Mar 23 19:57 f1.txt
-rw-r--r--.   1 root root   23 Mar 23 19:57 f1.txt.~1~

[root@centos7-E date]#cp -r /etc/ /date/etcbackup    #目标文件夹本不存在将会被创建
[root@centos7-E date]#ll
total 12
drwxr-xr-x. 144 root root 8192 Mar 23 20:09 etcbackup
[root@centos7-E date]#cp -r /etc/ /date/etcbackup    #第二次复制
[root@centos7-E date]#ls etcbackup/  #若目标文件夹已存在,原文件夹将被复制到目标文件夹中成为子目录。再来一次的话将会覆盖。

1、每天将/etc/目录下所有文件,备份到/data独立的子目录下,并要求子目录格式为 backupYYYYmm-dd,备份过程可见
[root@centos8 ~]#cp -av /etc/ /data/backup`date +%F` 
2、创建/data/rootdir目录,并复制/root下所有文件到该目录内,要求保留原有权限
[root@centos8 ~]#cp -a /root /data/rootdir

/dev/zero  特殊文件

2.10 移动和重命名文件mv

相当于剪切
同一分区移动数据,速度很快:数据位置没有变化
不同分区移动数据,速度相对慢:数据位置发生了变化

[root@centos7-E date]#ls
etcbackup  rootdir
[root@centos7-E date]#mv etcbackup /opt/
[root@centos7-E date]#ls /opt
etcbackup
[root@centos7-E date]#mv rootdir /opt/rootdir.bak
[root@centos7-E date]#ll /opt
drwxr-xr-x. 145 root root 8192 Mar 23 20:10 etcbackup
dr-xr-x---.   7 root root  253 Mar 23 21:25 rootdir.bak

范例:
#为所有的conf文件加上.bak后缀:
rename 'conf' 'conf.bak' f*
#去掉所有的bak后缀:
rename '.bak' '' *.bak

[root@centos7-E date]#ls
file10.conf  file2.conf  file4.conf  file6.conf  file8.conf
file1.conf   file3.conf  file5.conf  file7.conf  file9.conf
[root@centos7-E date]#rename conf conf.bak *
[root@centos7-E date]#ls
file10.conf.bak  file2.conf.bak  file4.conf.bak  file6.conf.bak  file8.conf.bak
file1.conf.bak   file3.conf.bak  file5.conf.bak  file7.conf.bak  file9.conf.bak

2.11 删除文件rm

rm -rf .[^.]*删除隐藏文件
rm -rf * .[^.]*删除隐藏文件和非隐藏文件

To remove a file whose name starts with a '-', for example '-foo',use one of these commands:  
  rm -- -foo 

rm ./-foo 带路径更具有通用性

范例:删除特殊文件

#将名为 “/data/-f” 的文件删除
[root@centos8 data]#rm -f -f #此方式错误
[root@centos8 data]#rm -- -f
[root@centos8 data]#rm ./-f
[root@centos8 data]#rm /data/-f

[root@centos8 ~]#rm -rf /    #直接删根删不了
rm: it is dangerous to operate recursively on '/'
rm: use --no-preserve-root to override this failsafe

rm -rf /*   #删除根下的所有目录,外部命令(在磁盘里)仍可以执行,挂载点的目录文件本身以及内存里的东西删不了

rm虽然删除了文件,但是被删除的文件仍然可能被恢复,在安全要求较高的场景下,可以使用shred安全删除文件

[root@centos8 ~]#shred -zvun 5 passwords.txt

用mv替代rm

[root@centos7-E~]#alias rm='DIR=/date/backup`date +%F%T`;mkdir $DIR;mv -t $DIR'
2.12 目录操作
  1. 显示目录树 tree
    常见选项:
    -d: 只显示目录
  2. 创建目录mkdir
    若上级目录不存在,则不能创建,除非加-p
    常见选项:
    -p: 存在于不报错,且可自动创建所需的各目录
    -v: 显示详细信息
    -m MODE: 创建目录时直接指定权限
  3. 删除空目录rmdir
    注意:rmdir只能删除空目录,如果想删除非空目录,可以使用rm -r 命令,递归删除目录树

3 文件元数据和节点表结构

3.1 inode表结构

哪怕资格文件只有一个字节,也会占用4k的块,块是存放数据的最小单位

直接指针只有十二个,能存12*4k的数据

间接块指针,指向指针块,能存4k*1024=4m的数据

  • 双重间接块指针,能存4m*1024=4g
  • 三重间接块指针,能存4g*1024=4t

每个文件的属性信息,比如:文件的大小,时间,类型等,称为文件的元数据(meta data)。这此元数据是存放在node(index node)表中。node表中有很多条记录组成,第一条记录对应的存放了一个文件的元数据信息

第一个node表记录对应的保存了以下信息:

  • inode number 节点号
  • 文件类型
  • 权限
  • UID
  • GID
  • 链接数(指向这个文件名路径名称个数)
  • 该文件的大小和不同的时间戳
  • 指向磁盘上文件的数据块指针
  • 有关文件的其他数据
    注意:文件名是放在目录的内容中的,不放在节点表里,每个分区都有自己的节点编号

1 cp和inode

cp 命令:

  • 分配一个空闲的inode号,在inode表中生成新条目
  • 在目录中创建一个目录项,将名称与inode编号关联
  • 拷贝数据生成新的文件

2 rm和inode

rm 命令:

  • 链接数递减,从而释放的inode号可以被重用
  • 把数据块放在空闲列表中
  • 删除目录项
  • 数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

3 mv和inode

  • 如果mv命令的目标和源在相同的文件系统,作为mv 命令
    • 用新的文件名创建对应新的目录项
    • 删除旧目录条目对应的旧的文件名
    • 同一分区移动,节点编号不变,全国各地搬迁,身份证号不会变,不同分区移动相当于加入外国籍,国内身份将被注销
    • 不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!
  • 如果目标和源在一个不同的文件系统, mv相当于cp和rm
[root@centos7-E testdir]touch file{1..52124}
touch: cannot touch ‘file52124.txt’: No space left on device  
#事实上空间并没有占满,只是节点编号不够用了
[root@centos7-E testdir]#df -i
Filesystem       Inodes  IUsed    IFree IUse% Mounted on
/dev/sda1        52428   52428        0  100% /boot
[root@centos7-E testdir]#df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1      1014M  457M  558M  45% /boot
3.2 硬链接 ln

硬链接本质上就给一个文件起一个新的名称,实质是同一个文件
硬链接特性

  • 创建硬链接会增加额外的记录项以引用文件
  • 对应于同一文件系统上一个物理文件
  • 每个目录引用相同的inode号
  • 创建时链接数递增
  • 删除文件时:rm命令递减计数的链接,文件要存在,至少有一个链接数,当链接数为零时,该文件被删除 相当于身份被注销
  • 不能跨越驱动器或分区
  • 不支持对目录创建硬链接
[root@centos7-E date]#ll -i
total 8
71 drwxr-xr-x. 2 root root  20 Mar 24 08:06 dir1
69 -rw-r--r--. 1 root root 595 Mar 24 08:02 f1.txt
[root@centos7-E date]#ln f1.txt dir1/f1.txt
[root@centos7-E date]#ll -i !*
ll -i f1.txt dir1/f1.txt
69 -rw-r--r--. 2 root root 595 Mar 24 08:02 dir1/f1.txt
69 -rw-r--r--. 2 root root 595 Mar 24 08:02 f1.txt   #链接数增加一个
3.3 符号 symbolic (或软 soft)链接

一个符号链接指向另一个文件,就像windows中快捷方式,软链接文件和原文件本质上不是同一个文件

软链接特点

  • 一个符号链接的内容是它引用文件的名称
  • 可以对目录创建软链接
  • 可以跨分区的文件实现
  • 指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数
  • 软链接如果使用相对路径,是相对于原文件的路径,而非相对于当前目录
[root@centos7-E date]#ln -s f2.txt f2.txt.link
[root@centos7-E date]#ll -i
      70 -rw-r--r--. 1 root root 158 Mar 24 08:02 f2.txt
      73 lrwxrwxrwx. 1 root root   6 Mar 24 10:29 f2.txt.link -> f2.txt  #成功
[root@centos7-E date]#rm -f f2.txt
[root@centos7-E date]#ll
lrwxrwxrwx. 1 root root   6 Mar 24 10:29 f2.txt.link -> f2.txt  #链接被标红,无法使用

[root@centos7-E date]#cp /etc/fstab f1.txt
[root@centos7-E date]#ls
dir1  f1.txt
[root@centos7-E date]#ln -s f1.txt dir1/f1.txt.link   #认为两个文件在同一个目录里
[root@centos7-E date]#ll !*
ll -s f1.txt dir1/f1.txt.link
0 lrwxrwxrwx. 1 root root   6 Mar 24 10:51 dir1/f1.txt.link -> f1.txt  #失败
4 -rw-r--r--. 1 root root 595 Mar 24 10:50 f1.txt
[root@centos7-E date]#ln -s ../f1.txt dir1/f1.txt.link2  #相对于软连接的工作目录
[root@centos7-E date]#ll dir1/f1.txt.link2
lrwxrwxrwx. 1 root root 9 Mar 24 10:54 dir1/f1.txt.link2 -> ../f1.txt  #成功

[root@centos7-E date]#ln -s /date/f1.txt /date/dir1/f1.txt.link3  #全部都写绝对路径
[root@centos7-E date]#ll /date/dir1/f1.txt.link3
lrwxrwxrwx. 1 root root 12 Mar 24 11:09 /date/dir1/f1.txt.link3 -> /date/f1.txt   #成功

[root@centos7-E date]#ln -s /date/dir1 /opt/dir1_link   #创建文件夹跨分区的软链接
[root@centos7-E date]#ll -d /opt/dir1_link
lrwxrwxrwx. 1 root root 10 Mar 24 11:12 /opt/dir1_link -> /date/dir1

[root@centos7-E date]#cd /usr/local/
[root@centos7-E local]#mkdir mysql5.6.10
[root@centos7-E local]#ll
drwxr-xr-x. 2 root root  6 Mar 24 11:15 mysql5.6.10
[root@centos7-E local]#ln -s mysql5.6.10/ mysql
[root@centos7-E local]#ll
lrwxrwxrwx. 1 root root 12 Mar 24 11:16 mysql -> mysql5.6.10/
drwxr-xr-x. 2 root root  6 Mar 24 11:15 mysql5.6.10
[root@centos7-E local]#mkdir mysql5.6.11
[root@centos7-E local]#ll
lrwxrwxrwx. 1 root root 12 Mar 24 11:16 mysql -> mysql5.6.10/
drwxr-xr-x. 2 root root  6 Mar 24 11:15 mysql5.6.10
drwxr-xr-x. 2 root root  6 Mar 24 11:17 mysql5.6.11
[root@centos7-E local]#rm -f mysql
[root@centos7-E local]#ln -s mysql5.6.11/ mysql
[root@centos7-E local]#ll
lrwxrwxrwx. 1 root root 12 Mar 24 11:18 mysql -> mysql5.6.11/  #偷偷的进行了软件的升级
drwxr-xr-x. 2 root root  6 Mar 24 11:15 mysql5.6.10
drwxr-xr-x. 2 root root  6 Mar 24 11:17 mysql5.6.11

软件回滚upgrade rollback
[root@centos7-E local]#rm -f mysql  #把软链接删了
[root@centos7-E local]#ln -s mysql5.6.10/ mysql  #给老版本创建软链接
[root@centos7-E local]#ll
lrwxrwxrwx. 1 root root 12 Mar 24 11:21 mysql -> mysql5.6.10/   #轻松搞定
drwxr-xr-x. 2 root root  6 Mar 24 11:15 mysql5.6.10
drwxr-xr-x. 2 root root  6 Mar 24 11:17 mysql5.6.11

执行删除命令  ###很重要!很要命!
[root@centos7-E local]#touch mysql5.6.10/f1.txt
[root@centos7-E local]#touch mysql5.6.11/f2.txt
[root@centos7-E local]#rm -rf mysql   #不加斜线
[root@centos7-E local]#ll
drwxr-xr-x. 2 root root  6 Mar 24 11:15 mysql5.6.10
drwxr-xr-x. 2 root root  6 Mar 24 11:17 mysql5.6.11
[root@centos7-E local]#ll mysql5.6.10/
-rw-r--r--. 1 root root 0 Mar 24 11:36 f1.txt    #文件存在

[root@centos7-E local]#rm -rf mysql/   #加了斜线
[root@centos7-E local]#ll
lrwxrwxrwx. 1 root root 12 Mar 24 11:21 mysql -> mysql5.6.11/
drwxr-xr-x. 2 root root  6 Mar 24 11:15 mysql5.6.10
drwxr-xr-x. 2 root root  6 Mar 24 11:17 mysql5.6.11
[root@centos7-E local]#ll mysql5.6.11/   #文件被删除
total 0
==总结:敲完命令后不要着急回车,仔细看一看命令==
3.4 硬链接和软链接区别总结
  1. 本质:
    硬链接:本质是同一个文件
    软链接:本质不是同一个文件
  2. 跨设备
    硬链接:不支持
    软链接:支持
  3. inode
    硬链接:相同
    软链接:不同
  4. 链接数
    硬链接:创建新的硬链接,链接数会增加,删除硬链接,链接数减少
    软链接:创建或删除,链接数不会变化
  5. 文件夹
    硬链接:不支持
    软链接:支持
  6. 相对路径
    硬链接:原始文件相对路径是相对于当前工作目录
    软链接:原始文件相对路径是相对于链接文件的相对路径
  7. 删除源文件
    硬链接:只是链接数减一,但链接文件的访问不受影响
    软链接:链接文件将无法访问
  8. 文件类型
    硬链接:和源文件相同
    软链接:链接文件,和源文件无关
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux文件管理 的相关文章

随机推荐

  • 播放器 potplayer rtsp播放器

    目录 potplayer potplayer 播放万播放下一曲 播放比例设置 html5 rtsp player GitHub Streamedian html5 rtsp player Play RTSP stream from IP c
  • 常用的正则表达式验证

    public abstract class RegexPatterns 手机号正则 public static final String PHONE REGEX 1 38 0 9 4 579 5 0 3 5 9 6 6 7 0135678
  • 彻底删除mac上的Win10分区

    背景 之前在优胜美地上用boot camp装的win10 后来升级到ei capitan了 问题 今天试着用boot camp移除windows 点继续就报错 说不能什么什么 然后用disk工具直接擦除了win10的分区并改为hfs分区 结
  • One stage&Two stage

    One stage Two stage 双阶段 单阶段 双阶段 单阶段 引文
  • 最热门的9个超级SEX问题

    无从选择 女人的身体被造物设计成传宗接代的载体 而SEX就是当初那只引诱我们上钩的苹果 不会忘记新生命诞生时 那场撕裂心肺的痛 那是女人完成自己使命的另类礼赞 那个曾经代表忠贞 圣洁的标签 被男人心怀窃喜地撕下 并据为己有 女人从此无法原价
  • Spring Boot中内置Tomcat最大连接数、线程数与等待数 实践调优

    在 Spring Boot 框架中 我们使用最多的是Tomcat 这是 Spring Boot 默认的容器技术 而且是内嵌式的 Tomcat Tomcat 是 Apache 基金下的一个轻量级的Servlet 容 器 支 持 Servlet
  • 离散型随机变量及其分布律(五)

    有些随机变量值是有限 它全部可能取到的个或可列无限多个 这种随机变量称为离散型随机变量 三种重要的离散型随机变量
  • [转载].一直不怎么明白PID的运算输出结果怎么换算成执行机构的控制量

    http bbs 21ic com icview 50831 1 1 html 小明接到这样一个任务 有一个水缸点漏水 而且漏水的速度还不一定固定不变 要求水面高度维持在某个位置 一旦发现水面高度低于要求位置 就要往水缸里加水 小明接到任务
  • 计算机系统概述

    操作系统的概念 功能 操作系统 Operating System OS 是指控制和管理整个计算机系统的硬件和软件资源 并合理地组织调度计算机的工作和资源的分配 以提供用户和其他软件方便的接口和环境 它说计算机系统中最基本的系统软件 操作系统
  • anaconda添加python虚拟环境

    先将anaconda的源更换为国内源 否则下载很慢 conda config add channels https mirrors tuna tsinghua edu cn anaconda pkgs free conda config a
  • feigin应用

    feigin发送post请求 1 服务方一定加上 RequestBody RequestMapping value queryPerson ResponseBody public Person queryPerson RequestBody
  • 如何快速上手一款新的嵌入式CPU芯片(记录CC2540开发经历)

    新换了工作 需要熟悉新公司的产品开发项目 更新博客就懈怠了 不过环境的不同 也让我对嵌入式开发有了更深刻的理解 在原公司我主要负责在STM32F207芯片平台上 利用UCOS LWIP进行嵌入式服务器开发 工作涉及底层硬件 RTOS 协议栈
  • Linux内核源码分析-进程调度(三)-从进程创建到唤醒的过程去了解CFS调度器

    从进程创建到唤醒的过程去了解CFS调度器 从do fork开始 创建子进程 初始化新建进程p相关的调度参数 cfs的task fork操作 更新cfs rq上正在运行的进程的运行时间信息 更新cfs rq的最小虚拟运行时间 更新进程p对应的
  • redis学习笔记

    概述 redis可以当作缓存来使用 存在内存里 比读数据库更快 但是比从内存变量里取数据还是要慢不少的 redis sql 内存变量的对比 按存取速度来看 内存变量最快 sql最慢 但按照持久化的角度来说正好相反 各有优缺点 按需选择使用
  • 加法乘法原理、排列组合、线性规划

    排列组合 1 加法原理与乘法原理 加法原理 分类思想 一个事件的发生 分为几类事件的发生 通俗的说是好几种情况的发生 乘法原理 分步思想 一个事件的发生 分为几个子事件分步发生 这里要注意 1 子事件 如何把事件划分为几个子事件呢 子事件是
  • dlopen “no suitable image found ”问题之解决

    做一个练手小项目 基于 react transform boilerplate 的demo 克隆 react transform boilerplate项目 装包 package json中的包 style loader css loade
  • 并发、并行、同步、异步的概念

    并发与并行 假设一个工厂 包含多个车间 一个车间包含多个工人和多个房间 什么是cpu 工厂是时刻在运行的 因此可以理解cpu时刻在运行 什么cpu的核数 假设把一个cpu比作一份电量的话 一份电量又只能满足一个车间运行 那么其他车间就得停止
  • 使用python写一个星球大战游戏.py

    如果要使用 Python 写一个类似于星球大战的游戏 需要用到一些专业的游戏引擎 比如 Pygame 首先 需要安装 Pygame 库 可以使用以下命令进行安装 pipinstall pygame 其次 可以在 Pygame 中使用 pyt
  • 网络安全人才青黄不接、数字化转型迫在眉睫、你还在犹豫吗?

    大专能不能学网络安全呢 大专学网络安全能不能找到工作呢 大专学网络安全有竞争力吗 网络上关于质疑大专学历进入网络安全行业的声音越来越多了 居然有很多人在质疑大专学历从事网络安全没有竞争力 很多人看到某些招聘软件上起薪12K的薪资就望而却步了
  • Linux文件管理

    成功不易 加倍努力 1 文件系统目录结构 1 1文件系统的目录结构 1 2 常见的文件系统目录功能 1 3 应用程序的组成部分 1 4 Linux下的文件类型 2 文件操作命令 2 1 显示当前工作目录 2 2 绝对和相对路径 2 3 更改