目录
前言
这篇为Linux系统管理常用的知识点1-5章汇总
第一章 基本命令
1.1 cd 切换目录
cd [空格] | 默认切换至家目录 |
cd ../ | 切换到上一层目录 |
cd / | 切换至系统根目录 |
cd ~ | 切换至用户主目录 |
cd - | 切换至上一次所在目录 |
1.2 绝对路径/相对路径
绝对路径:以/为起点的路径
相对路径:以当前目录为起点的路径
打个比喻,一个外国人在南京新街口向你问路,一家餐厅怎么走
绝对路径:首先做飞机来到中国,到南京路口机场,做s1号地铁转2号线到新街口,下来地铁路口左转
相对路径:前面路口左转
两种说法都正确,但是这位外国人刚好在新街口,用绝对路径过于复杂;但是如果这位外国人不在新街口,相对路径不能保证他能找到
1.3 pwd 打印当前目录
-P 参数 打印当前的物理路径,不带有任何的符号链接
1.4 touch 创建文件
touch两个功能:
1.创建新文件
2.刷新文件的时间
1.5 mkdir 创建目录
-p | 递归创建多级目录 |
注意:默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 mkdir命令还可以同时创建多个目录
1.6 rm 删除
rm -rf 文件名
递归删除,并且不显示警告信息
1.7 cp 复制/改名
cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中
-f | 若目标文件已存在,则会直接覆盖原文件 |
-i | 若目标文件已存在,则会询问是否覆盖 |
-p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录,复制目录是必须使用 |
-a | 与p类似,但更强大,能保留软链接属性 |
1.8 mv 移动/改名
-i | 若存在同名文件,则向用户询问是否覆盖 |
-f | 覆盖已有文件时,不进行任何提示 |
-b | 当文件存在时,覆盖前为其创建一个备份 |
-u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
1.9 ls 打印目录
ls -alh 打印目录下所有文件包括隐藏文件,以人性化、长格式显示
ls -ltr 长格式、修改时间由新到旧打印
ls 只能统计文件的大小,目录只统计目录本身的大小而不统计目录里子目录或文件的总大小
1.10 链接
ln -s 源文件或目录 链接文件或目录位置 软链接
ln 源文件或目录 链接文件或目录位置 硬链接
对比项 | 硬连接 | 软连接 |
---|---|---|
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode | 相同 | 不同 |
连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除新建不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同 | 源文件的路径的长度 |
1.11 du 查看磁盘占用
统计文件和目录占用的空间
面试题:如何查找占用过高的大文件
du --max-depth=1 /
#从根目录开始一层一层查找占用过高的目录,直至找到这个文件
#如果rm大文件,发现没有释放空间,是因为文件在被进程使用,使用echo " ">大文件,覆盖;
#或者lsof | grep delete,再kill进程
1.12 find 查找文件
find 查找目录 条件表达式
找到abc开头的文件并删除
find ./ -name "abc*" -a -type f -delete
find ./ -name "abc*" -a -type f -exec rm -rf { } \;
find ./ -name "abc*" -a -type f |xargs rm -rf
--exec参数后面跟的是Linux命令,以分号“;”为结束标志,由于系统中的分号有不同的意义,因此需要\转义
{}代表前面find找出来的文件名
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具
第二章 目录和文件管理
2.1 cat查看文件
cat -n 显示行号
2.2 more/less查看文件
more命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字
less的作用与more十分相似,不同点为less命令允许用户向前或向后浏览文件,而more命令只能向前浏览
2.3 head 查看文件
默认查看开头10行内容
head -5 查看前5行
2.4 tail 查看文件
默认查看末尾10行内容
tail -5 查看最后5行
tail -f 实时跟踪(tailf)
2.5 grep 过滤
^表示以...开头,$表示以...结尾,^$表示空行
-i 不区分大小写
-v 反向
-c 匹配到的行数
-A 打印以文本结尾的NUM 行
-B 打印以文本起始的NUM 行
-C 打印输出文本NUM 行
grep -v "^$" 不显示空行
2.6 wc 统计
-w | 统计字数,或--words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串 |
-c | 统计字节数,或--bytes或--chars:只显示Bytes数 |
-l | 统计行数,或--lines:只显示列数 |
2.7 tar 归档
制作归档文件、释放归档文件
tar [选项] 归档文件名 原文件或目录
tar [选项] 归档文件名 [-C 目标目录]
参数:
-c 创建.tar格式的包文件,一般都带
-x 解开.tar格式的包文件
-C 解压时指定释放的目标文件夹
-f 表示使用归档文件,使用tar一定要加
-p 打包时保留文件及目录的权限
-P 打包时保留文件及目录的绝对路径
-t 不解压的情况下,列表查看包内的文件
-v 输出详细信息,制作tar包或解开tar包的时候显示过程
-j 调用bzip2程序进行压缩或解压
-z 调用gzip程序进行压缩或解压
示例:f要放最后
tar -zcvf jishiben.tar.gz 1.txt 2.txt 保留原文件
tar -zxvf jishiben.tar.gz 默认当前目录
tar -zxvf jishiben.tar.gz -C /mnt
2.8 vim编辑器
- 三种模式:命令模式、输入模式、末行模式
- vim 选项 文件名
- !vim 打开上一次打开的文件
- vim +数字 文件 跳到你想去的行数
- +/字符串 找到匹配字符串的行
- i、o、a进入插入模式
- esc回到命令模式
- 复制 yy
- 粘贴 p
- 撤销u
- 定位G gg
- 查找 /
- 替换 范围s/原内容/新内容/g
第三章 安装及管理程序
3.1 rpm
rpm安装掌握这几个即可,后期基本不用
- rpm -ivh 软件包 安装软件
- rpm -e 软件包 删除软件
- rpm -qi 软件包 查看软件包信息
3.2 yum
yum位置:/etc/yum.repos.d/
- 本地源 baseurl=file://....
- 在线源 baseurl=http://... https://....
- ftp源 baseurl=ftp://....
[name]
name=
baseurl=file://....
enabled=1 打开仓库源 0 关闭
gpgcheck=0
#gpgkey=......
- yum install -y 安装软件
- yum remove 删除软件
- yum update 更新软件
- yum search 查找
- yum list 列出所有包
3.3 源代码安装
- 下载源代码安装包文件
- tar解包:解压并释放源代码包到指定的目录
- ./configure配置:设置安装目录、安装模块等选项
- make编译:生成可执行的二进制文件
- make install安装:复制二进制文件到系统,配置应用环境
- 测试及应用、维护软件
第四章 账号、权限及归属管理
4.1 账号管理
文件位置:/etc/passwd
4.1.1 useradd
D | 改变新建用户的预设值 |
-c | 添加备注文字 |
-d | 新用户每次登陆时所使用的家目录 |
-e | 用户终止日期,日期的格式为YYYY-MM-DD |
-f | 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1 |
-g | 指定用户对应的用户组 |
-G | 定义此用户为多个不同组的成员 |
-m | 用户目录不存在时则自动创建 |
-M | 不建立用户家目录,优先于/etc/login.defs文件设定 |
-n | 取消建立以用户名称为名的群组 |
-r | 建立系统帐号 |
-u | 指定用户id |
4.1.2 usermod
-c<备注> | 修改用户账号的备注文字 |
-d<登入目录> | 修改用户登入时的目录 |
-e<有效期限> | 修改账号的有效期限 |
-f<缓冲天数> | 修改在密码过期后多少天即关闭该账号 |
-g<群组> | 修改用户所属的群组 |
-G<群组> | 修改用户所属的附加群组 |
-l<账号名称> | 修改用户账号名称 |
-L | 锁定用户密码,使密码无效 |
-s<shell> | 修改用户登入后所使用的shell |
-u<uid> | 修改用户ID |
-U | 解除密码锁定 |
4.1.3 userdel
-f | 强制删除用户账号 |
-r | 删除用户主目录及其中的任何文件 |
4.1.4 passwd
passwd [用户名]
root用户才能执行passwd
echo 密码 | passwd --stdin 用户(免交互改密码)
-d | 删除密码 |
-l | 锁定用户密码,无法被用户自行修改 |
-u | 解开已锁定用户密码,允许用户自行修改 |
-e | 密码立即过期,下次登陆强制修改密码 |
-k | 保留即将过期的用户在期满后能仍能使用 |
-S | 查询密码状态 |
4.2 权限
4.2.1 chmod
-R | 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更) |
使用+,-,=添加,删除相应的权限
u,g,o,a表示属主、属组、其他、所有
面试题:
执行 cp /etc/issue /data/dir/ 所需要的最小权限?
/bin/cp(cp命令的位置) 需要x权限
/etc/ 需要x权限
/etc/issue 需要r权限
/data 需要x权限
/data/dir 需要w,x权限
4.1.2 umask
umask 的值可以用来保留在创建文件权限
新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶数不变
新建目录的默认权限: 777-umask
非特权用户umask默认是 002
root的umask 默认是 022
4.3 归属chown
-R | 对目前目录下的所有文件与子目录进行相同的拥有者变更 |
-h | 只对于连结(link)进行变更,而非该 link 真正指向的文件 |
第五章 磁盘管理与文件系统
[root@localhost ~]#echo "- - -"> /sys/class/scsi_host/host0/scan
[root@localhost ~]#echo "- - -"> /sys/class/scsi_host/host1/scan
[root@localhost ~]#echo "- - -"> /sys/class/scsi_host/host2/scan
#scsi代表接口 把前面的数据传给接口用来刷新
5.1 fdisk磁盘分区
fdisk -l [磁盘设备]
5.2 格式化
5.3 挂载
#开机自动挂载
vim /etc/fstab
设备文件 挂载点目录 文件系统类型(xfs,iso9660) 挂载参数(defaults) 0(不备份) 0(不检查)
5.4 解挂载
umount 挂载点目录
umount 设备文件
umount -lf 挂载点 强制解挂载
解挂前要先退出挂载目录