1.1)Linux系统基础目录的命名规则:node
1.遵循FHS(Filesystem Hierarchy Standard)标准 2.严格区分大小写 3.目录也是文件,在同一路径下,两个文件不能同名 4.支持使用除"/"之外的任意字符 5.最长字符不能超过255个字符
1.2)目录架构及用途:mysql
/ 根目录 bin 全部用户可用的基本命令程序文件 sbin 供系统管理使用的工具程序 boot 引导加载器必须用到的各类静态文件:kernel initramfs(initrd) grub等 dev 存储特殊文件或设备文件;设备有两种类型:字符设备(线性设备) 、块设备(随机设备) etc 系统程序的配置文件,只能为静态 /etc/rc.d 系统启动的配置文件和脚本 /etc/fstab 指定启动时须要自动安装的文件系统列表 /etc/passwd 用户数据库,记录了用户名,用户ID,组ID,家目录和shell等信息 /etc/shadow 用户的真实帐号密码的存放文件,一般以加密的形式存在 /etc/group 记录了用户组的各类信息 /etc/inittab init的配置文件 /etc/issue 用户再登陆提示符前的输出信息。一般包括系统的一段短说明或欢迎信息,具体内容由系统管理员肯定 home 普通用户的家目录的集中位置:通常每一个普通用户的家目录默认为此目录下与用户名同名的子目录 /home/USERNAME root 超级管理员的家目录 lib 为系统启动或根文件系统上的应用程序(/bin, /sbin)提供共享库,以及为内核提供内核模块 libc.so.* 动态连接的C库 ld* 运行时连接器/加载器 modules 用于存储内核模块的目录 lib64 64位系统特有的存放64位共享库的路径 media 便携式设备挂载点 cdrom,floppy等 mnt 其余文件系统的临时挂载点 opt 附加应用程序的安装位置,可选路径 srv 当前主机为服务提供的数据 tmp 为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供全部用户执行写入操做:有特殊权限 usr 全局共享的只读数据路径 /usr/bin 存放应用程序 /usr/sbin 超级用户的一些管理程序 /usr/lib 经常使用的动态连接库和软件包的配置文件 /usr/include c程序头文件 /usr/share 命令手册页和自带文档等架构特有的文件的存储位置 /usr/local 另外一个层级目录,让系统管理员安装本地应用程序,也一般用于安装第三方程序 /usr/X11R6 X-windows程序的安装位置 /usr/src 程序源码文件的存储位置 var 存储常发生变化的数据的目录 /var/cache 引用程序缓存数据目录 /var/lib 应用程序状态信息数据 /var/local 专用于为/usr/local下的应用程序存储可变数据 /var/lock 锁文件 /var/log 日志目录及文件 /var/opt 专用于/opt下的应用程序存储可变数据 /var/run 运行中的进程相关的数据,一般用于存储进程的pid文件 /var/spool 应用程序的数据池 /var/tmp 保存系统两次重启之间产生的临时数据 proc 基于内核的虚拟文件系统,用于为内核及进程存储相关信息:它们多为内核参数; 例如:net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward 存储于/proc/sys/ 所以其完整路径为:/proc/sys/net/ipv4/ip_forward sys sysfs虚拟文件系统了一种比proc更为理想的访问内核数据的途径,其主要做用在于管理linux设备提供一种统一模型的接口
文件的数据分为两种:
一种:元数据,既属性数据
一种:就是数据自己
经过stat命令能够查看元数据linux
[08:17:53 root@CentOS7 ~]#stat /etc/passwd File: ‘/etc/passwd’ Size: 2381 Blocks: 8 IO Block: 4096 regular file Device: 802h/2050d Inode: 135236881 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:passwd_file_t:s0 Access: 2020-06-17 23:20:01.706147776 +0800 Modify: 2020-06-06 08:32:02.435455179 +0800 Change: 2020-06-06 08:32:02.435455179 +0800 Birth: -
参数说明:git
File:文件名 Size:文件大小 Blocks:文件占了多少个数据块 IO Block:文件所占数据块的大小 Device:硬件 Inode:节点号 Links:连接 第一个Access:指权限 Uid:属主 Gid:属组 Context:指安全上下文 第二个Access:文件上一次访问时间 Modify:文件上一次修改的时间 Change:文件上一次属性更改的时间
修改文件的时间戳信息使用:touch正则表达式
touch [option]...file... 选项: -c 指定的文件路径不存在时不予建立 -a 仅修改atime和ctime -m 仅修改mtime和ctiem -t 指定atime和mtime的时间戳,而非如今的时间;[[CC]YY]MMDDhhmm[.ss]
Linux中连接分两种:sql
1.硬连接(Hard Link) ln -s source target 2.软链接(符号连接 Symbolic Link) ln source target
1.1)硬连接
硬连接指经过索引节点(inode)来进行连接。
inode:
磁盘分区并格式化时,分区被划分为两个部分; 即:inode和data block(实际数据存放的位置)
inode是(目录,档案)文件在文件系统中的惟一标识;须要访问文件,必须先找到并读取文件的inode
inode存储了文件的不少参数,其中惟一标识称为:Inumber 其余信息还有:ctime mtime 文件大小 属主 归属的用户组 读写权限 数据所在block号等信息
1.2)硬连接访问文件:
[1]找到目录的inode ;当用户具备访问目录block的权限时,读取block中的内容
[2]在目录的block中存放的是:子目录或文件名及其inode号
当为子目录:继续进行递归循环,直到在block中找到寻找的文件名为止
当为文件名:依据inode号找到文件,从block中读取实际的数据
1.3)硬连接的特色:docker
1.3.1)不论修改源文件仍是硬连接文件,另外一个文件中数据都会发生改变 1.3.2)不论删除源文件仍是硬连接文件,只要还有一个文件,这个文件均可以被访问 1.3.3)硬连接不会创建新的inode信息,也不会更改inode的总数 1.3.4)硬连接不能跨文件系统(分区)创建,由于在不一样的文件系统中,inode号是从新计算的 1.3.5)硬连接不能连接目录,由于若是给目录创建硬连接,那么不只目录自己须要从新创建,目录下全部子文件,包括子目录中的全部文件都须要创建硬连接,这对当前的linux来说过于复杂
2.1)软连接
软连接相似于Windows的快捷方式,能够快速连接到目标档案或目录
2.2)软连接的特色shell
2.2.1)能够连接目录 2.2.2)能够跨分区创建软连接 2.2.3)不论修改源文件,仍是修改软连接,另外一个文件中的数据都会发生改变 2.2.4)删除软连接文件,源文件不受影响,而删除原文件,连接文件将找不到实际的数据从而显示文件不存在 2.2.5)软连接会新建本身的inode信息和block,只是block中不存储实际文件数据,而存储的是源文件的文件名及inode号
3.1).硬连接与软连接的区别:
最主要的不一样在于:硬连接不会创建本身的 inode 索引和 block(数据块),而是直接指向源文件的 inode 信息和 block,因此硬连接和源文件的 inode 号是一致的;而软连接会真正创建本身的 inode 索引和 block,因此软连接和源文件的 inode 号是不一致的,并且在软连接的 block 中,写的不是真正的数据,而仅仅是源文件的文件名及 inode 号
范例1数据库
建立一个硬连接 [22:29:48 root@CentOS7 /data/cs]#touch text.txt [22:30:04 root@CentOS7 /data/cs]#ln text.txt text1.txt [22:33:47 root@CentOS7 /data/cs]#ls -li total 0 69 -rw-r--r--. 2 root root 0 Jun 17 22:30 text1.txt 69 -rw-r--r--. 2 root root 0 Jun 17 22:30 text.txt 查看上述两个文件的详细信息,能够发现这两个文件的 inode 号是同样的(都是69) 分别为源文件和连接文件添加数据后查看结果 [23:32:51 root@CentOS7 /data/cs]#echo 11 >> text.txt [23:33:08 root@CentOS7 /data/cs]#echo 22 >> text1.txt [23:34:47 root@CentOS7 /data/cs]#cat text1.txt 11 22 [23:35:28 root@CentOS7 /data/cs]#cat text.txt 11 22 删除源文件后,查看连接文件 [23:35:34 root@CentOS7 /data/cs]#rm -f text.txt [23:36:25 root@CentOS7 /data/cs]#cat text1.txt 11 22
范例2编程
建立一个软连接 [23:41:21 root@CentOS7 /data/cs]#touch check.txt [23:57:52 root@CentOS7 /data/cs]#ln -s /data/cs/check.txt /data/qt/check1.txt [23:58:34 root@CentOS7 /data/cs]#ll -id /data/cs/check.txt /data/qt/check1.txt 68 -rw-r--r--. 1 root root 0 Jun 17 23:41 /data/cs/check.txt 69 lrwxrwxrwx. 1 root root 18 Jun 17 23:58 /data/qt/check1.txt -> /data/cs/check.txt 软连接和源文件的inode号不一致,软连接经过->明显地标识源文件的位置 上述的显示结果"lrwxrwxrwx."中 "l"就表明软连接文件 注意!注意!注意! 软连接的源文件必须写绝对路径,不然创建的软连接文件就会报错,没法正常使用 [00:16:07 root@CentOS7 /data/cs]#echo 11 >> check.txt [00:16:58 root@CentOS7 /data/qt]#echo 22 >>check1.txt [00:16:52 root@CentOS7 /data/cs]#cat check.txt 11 22 [00:17:08 root@CentOS7 /data/qt]#cat check1.txt 11 22
1) apmd 进阶电源管理服务程序 2) apropos 在whatis数据库中查找字符串 3) apt-key 管理APT软件包的密钥 4) apt-sortpkgs 排序软件包索引文件 5) as GUN汇编器 6) auditctl 控制内核的审计系统 7) audit-viewer 查看和总结审计事件的图形工具 8) aureport 生成审计信息报表 9) ausearch 搜索审计记录 10) autoupdate 更新configure.in到较新的Autoconf 11) autrace 跟踪指定进程 12) awk 文本和数据进行处理的编程语言 13) basename 显示文件路径名的基本文件名 14) batch 指定时间执行任务 15) blkid 显示关于可用块设备的信息 16) bunzip2 bz2文件的解压缩程序 17) bzgrep 搜索.bz2压缩包中文件内容 18) bzless 查看bzip2压缩过的文本文件的内容 19) bzmore 查看bzip2压缩过的文本文件的内容 20) chown 改变文件或目录用户和用户组 21) chroot 改变根目录 22) cp 复制文件或目录 23) cpio 复制文件到归档包 24) cupsaccept 接受做业发送到目的地 25) cupsreject 拒绝做业发送到目的地 26) dd 拷贝文件及转换 27) diff 比较文件的差别 28) diff3 比较3个文件的不一样之处 29) diffstat 显示统计数字 30) dirname 去除文件名中的非目录部分 31) docker 应用容器引擎 32) dos2unix 将DOS格式的文本文件转换成UNIX格式 33) dpkg-deb Debian包管理器 34) dpkg-divert 将文件安装到转移目录 35) dpkg-preconfigure 软件包安装以前询问问题 36) dpkg-query 在dpkg数据库中查询软件包 37) dpkg-reconfigure 从新配置已安装的软件包 38) dpkg-split 分割软件包 39) dpkg-statoverride 改写全部权和模式 40) dpkg-trigger 软件包触发器 41) dris 显示和清空目录堆栈中的内容 42) e2image 保存ext2/ext3文件元数据 43) e2label 设置文件系统的卷标 44) egrep 在文件内查找指定的字符串 45) emacs 功能强大的文本编辑器 46) ethtool 查询与设置网卡参数 47) expand 转换为空白字符 48) fgrep 为文件搜索文字字符串 49) find2perl 转换找到的命令行为perl代码 50) gcc GUN C/C++编译器 51) gcov 测试代码覆盖率 52) gdb GUN调试器 53) get_module 获取模块信息 54) getopt 解析命令行选项 55) git 版本控制系统 56) gitps 报告程序情况 57) groupmems 管理用户主要组群的成员 58) gzexe 压缩执行文件 59) hexdump 显示文件十六进制格式 60) hping3 测试网络及主机的安全 61) indent 调整代码文件格式 62) inotifywait 异步文件系统监控 63) inotifywatch 收集关于被监视的文件系统的统计数据 64) ipcs 多进程间通讯经常使用的工具 65) iperf 网络性能测试 66) joe 纯文本编辑器 67) kbdconfig 设置键盘类型 68) la 显示当前目录下的全部文件 69) ld GUN链接器 70) ldd 打印程序依赖的共享库 71) lpstat 显示cpus状态信息 72) ls 显示指定工做目录下的内容及属性信息 73) ltrace 跟踪进程调用库函数的状况 74) lynx 终端上的纯文本浏览器 75) man 查看命令帮助信息 76) mc 菜单式文件管理程序 77) mcopy 复制 MSDOS 格式文件到Linux中 78) mdel 删除 MSDOS 格式的档案 79) mdir 显示MS-DOS目录 80) minfo 显示MS-DOS文件系统的各项参数 81) mkdir 建立目录 82) mmove 移动文件或目录 83) mtoolstest 测试并显示mtools的相关设置 84) mysql MySQL服务器的客户端工具 85) mysqladmin MySQL服务器客户端管理工具 86) mysqldump MySQL数据库备份 87) mysqlimport MySQL服务器数据导入 88) newusers 更新和批量建立新用户 89) ngrep 数据包匹配和显示工具 90) nl 添加行号 91) nm 显示二进制目标文件的符号表 92) nmcli 网络管理命令行工具 93) objdump 查看目标文件构成的gcc工具 94) od 输出文件内容 95) patch 修补文件 96) perl 实用报表提取语言 97) pfctl 防火墙配置 98) pr 将文本文件转换成适合打印的格式 99) pwd 显示当前路径 100) readelf 显示elf格式文件的信息 101) readonly 标记shell变量或函数为只读 102) rename 批量改变文件名 103) restore 还原备份 104) rlogin 远端登入 105) rpm2cpio 文件格式转换 106) rpmbuild 建立软件包 107) rpmdb 初始化和重建数据库 108) rpmquery 查询信息 109) rpmsign 签名管理工具 110) rpmverify 验证已安装的RPM软件包的正确性 111) semanage 安全上下文查询与修改 112) setenv 查询或显示环境变量 113) smbclient 存取SMB/CIFS服务器的用户端程序 114) smbd Samba服务器程序 115) source 在当前Shell环境中从指定文件读取和执行命令 116) split 文件分割 117) stat 显示文件状态信息 118) statserial 显示串口状态 119) strings 在对象文件或二进制文件中查找可打印的字符串 120) su 切换用户 121) sudoedit 以另一个用户文件编辑文件 122) sudoreplay 重播sudo会话日志 123) systool 显示系统中设备的信息 124) tailf 跟踪文件输出 125) tgz 将文件压缩为.tgz格式文件 126) udevadm info 查询udev数据库中的设备信息 127) umask 设定权限掩码 128) uncompress 压缩或解压缩compress文件 129) unlink 删除指定文件 130) unprotoize 删除函数原型 131) unrar 解压提取文件 132) userinfo 更改本身的finger信息 133) userpasswd 容许用户更改密码的图形化工具 134) uucico 文件传输服务程序 135) uucp unix系统之间传输文件 136) uuname 显示所有的UUCP远端主机 137) vimdiff 同时编辑多个文件 138) vipw 编辑某些配置文件 139) visudo 编辑/etc/sudoers文件 140) xlsfonts 显示X服务器字体列表 141) xzcmp 比较xz压缩文件 142) xzdec 解压缩xz文件 143) xzdiff 比较xz压缩文件 144) xzgrep 在xz压缩文件上搜索正则表达式 145) xzless 查看xz压缩文本文件 146) xzmore 查看xz压缩文本文件 147) ytalk 与其余用户交谈 148) zmore 查看压缩文件 149) apk 下载包管理工具 150) arj 建立和管理.arj压缩包 151) autoconf 自动生成配置脚本 152) autoheader 建立C定义的模板文件 153) autoreconf 更新已经生成的配置文件 154) autoscan 生成一个初步的configure.in 155) bzcmp 比较.bz2压缩包中的文件 156) bzdiff 比较两个.bz2压缩包中文件的不一样 157) dnsdomainname 打印DNS的域名 158) dumpe2fs 打印快组信息 159) fsview 文件系统浏览器 160) gdbserver 调试远程服务器 161) htdigest 管理用户摘要认证文件 162) info 阅读info格式的文件 163) install 复制文件和设置属性 164) lftpget 下载指定的文件 165) lnewusers 建立用户帐号 166) manpath 查看man手册页的查询路径 167) mke2fs 建立文件系统 168) mkfifo 建立FIFO文件 169) mread mtools工具 170) mren 更改文件或目录 171) mshowfat 显示在FAT中的记录 172) nologin 限制用户登陆 173) pinfo 基于lynx类型info浏览 174) pssh 批量管理执行 175) pushd 添加目录到目录堆栈顶部 176) readlink 找出符号连接所指向的位置 177) rev 颠倒过来显示文件内容 178) sulogin 单用户登陆 179) telinit 更改系统的运行级别 180) xclip 跨窗口复制文字 181) xzcat 查看xz压缩文件的内容 182) zdump 时区输出器 183) zgrep 在压缩文件中按正则表达式来搜索 184) zless 查看zip压缩文件
当前目录: [14:31:14 root@CentOS7 /etc]#pwd /etc 执行复制命令: [14:30:27 root@CentOS7 /etc]#cp profile ../tmp/ 查看tmp目录: [14:31:21 root@CentOS7 /tmp]#ll total 452 -rw-r--r--. 1 root root 1819 Jun 18 14:31 profile #删除/tmp/profile 文件中行首的空白字符 1)[18:43:19 root@CentOS7 /tmp]#cat profile |tr -d ' ' 或者 2)[23:13:57 root@CentOS7 /tmp]#vim profile :%s/^[[:space:]]\+// 或:%s@^[[:space:]]\+@@
vim .vimrc 输入 set tabstop=4
vim配置文件分为:系统文件和用户配置文件
系统配置文件位于:vim的安装目录(默认路径为/etc/.vimrc)
用户配置文件位于主目录:~/.vimrc 即经过执行vim ~/.vimrc 命令便可对此配置文件进行合理修改。一般状况下,vim用户配置文件须要本身手动建立
注意!注意!注意! vim用户配置文件比系统配置文件的优先级高
vim提供的环境配置参数不少,能够在vim中输入":set all" 来查询
经常使用参数:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8 设置编码格式,encoding 用于缓存的文本,寄存器,vim脚本文件等; fileencoding 是vim写入文件时采用的编码类型; termencoding 表示输出到终端时采用的编码类型 set nu set number nu是number缩写 取消行号:set nonu set cursorline 突出显示当前行 set mouse=a set selection=exclusive set selectmode=mouse,key vim编辑器里默认是不启用鼠标的,经过此设置便可启动鼠标 set autoindent 设置自动缩进,即每行的缩进同上一节相同 set tabstop=4 设置tab键宽度为4个空格