linux的文件系统
- /bin bin是Binary的缩写。这个目录存放着最经常使用的命令,例如cp、mv、ls等
- /boot 这里存放的是启动Linux时使用的一些核心文件,包括一些链接文件以及镜像文件。
- /dev dev是Device(设备)的缩写。该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
- /etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录
- /home 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- /lib 这个目录里存放着系统最基本的动态链接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
- /opt opt 是 optional(可选) 的缩写,这是给主机额外软件安装目录 eg: cd /opt/lampp
- /proc proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息,这个目录的内容不在硬盘上而是在内存里. eg: 查看cpu信息 则可以使用 less /proc/cpuinfo
- /root 该目录为系统管理员,也称作超级权限者的用家目录
- /sbin s 就是 Super User 的意思,是 Superuser Binaries (超级用户root的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
- /tmp tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的
- /usr usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录
- /usr/local 这是提供给一般用户的/usr目录,在这里安装一般的应用软件
- /usr/lib 存放一些常用的动态链接共享库和静态档案库
- /usr/include 用来存放Linux下开发和编译应用程序所需要的头文件
- /usr/sbin 超级用户使用的比较高级的管理程序和系统守护程序,/sbin, /usr/sbin 则是给 root 使用的指令
- /usr/bin 系统用户使用的应用程序(指令), /bin, /usr/bin 是给系统用户使用的指令(除root外的通用户)
- /usr/src 内核源代码默认的放置目录
- /var var 是 variable(变量) 的缩写,存放经常改动的数据文件,包括各种日志文件
vi/vim 文本编辑器(重要)
vi是Linux/Unix下最常用的文本编辑器,vim是vi的升级版本,安装可以使用yum install vim -y,用法 vim xxx.txt ,如果没有这个文件,则先创建一个。如打开已有文件,则可以通过方向键上下左右移动光标查看内容。
默认为命令模式,可以对文件进行修改操作,常见操作为
- 显示文本行号
:set nu, 不显示行号 :set nonu
- 光标定位
- 方向键
- 方向左
h 或者 backspace
- 方向右
l 或者 space
- 方向上
k
- 方向下
j
- 上一行行首
-
- 本行行首
0
- 本行行末
$
- 指定行
nG 【n为行数】
- 向上移动几行
n-
- 向下移动几行
n+
- 向后半屏
ctrl + d
- 向后全屏
ctrl + f
- 向前半屏
ctrl + u
- 向前全屏
ctrl + b
- 文件末尾
G
- 文件首
gg
- 搜索
/+关键字 从光标开始向下搜索关键字,n 从上向下看结果,N 从下向上看结果
?+关键字 从光标开始向上搜索关键字,n 从下向上看结果,N 从上向下看结果
- 替换 [old 表示原来数据 new 表示修改后的数据]
:s/old/new 替换当前行首次出现
:s/old/new/g 替换当前行全部
:x,y s/old/new/g 替换指定范围行的首次, 从x行到y行
:x,y s/old/new/g 替换指定范围行全部, 从x行到y行
:%s/old/new/g 修改全部
- 复制
- 单行
+ 单行复制 yy 粘贴为p
+ 多行复制 nyy 或 a,by, 复制n行或者复制a,b行
- 行内复制
+ yw
+ nyw
+ y^
+ y$
- 粘贴
p | P
- 删除
- 字符
+ x 光标所在的位置
+ X 光标前
+ nx 删n个,从光标所在位置开始
+ nX 删n个,光标前的字符
- 行内删除
+ D 当行,光标及光标后的内容
+ d$ 当行,光标及光标后的内容
+ d0 | d^ 当行,光标前的内容
- 整行
+ dd 单行删除
+ ndd n行删除
+ x,yd 多行删除(x,y行) 需要按enter键
- 撤销
- 退出
- 直接退出
q | 强制退出 q!
- 保存退出
wq | 强制保存退出 wq!
编辑模式
- 进入编辑模式
i I a A o O
- 退出编辑模式
ESC
帮助
help 命令使用摘要及参数列表, eg: xxx --h / xxx --help
man 命令说明文件,比help更加详细的文档 eg: man xxx
文件管理
pwd 显示当前路径
ls 列举指定目录下的子目录和文件
- 参数
-a,-all 不隐藏任何以“.” 字符开始的项目
-l 用列表(长格式)的方式列出文件信息, 简写为ll
-t 以时间排序,时间由近及远
-r,--reverse 同时列出所有子目录层
-S 按大小排序,单位是字节
-h 易读方式,根据文件大小,转换为M、K
- eg:
drwxr-xr-x 3 root root 52 Feb 16 13:21 dockertest
- 其中第一个字段的第一个字符是文件类型
- 表示普通文件
d 代表目录
l 代表连接文件
b 代表设备文件
- 第一个字段剩下的 9 个字符是模式(这三组分别表示文件所属的用户权限、文件所属的组权限以及其他用户的权限),其实就是权限位(access permission bits)。3 个一组,每一组 rwx 表示“读(read)”“写(write)”“执行(execute)”。如果是字母,就说明有这个权限;如果是横线,就是没有这个权限。
- 第二个字段是硬链接(hard link)数目,这个比较复杂
- 第三个字段是所属用户
- 第四个字段是所属组
- 第五个字段是文件的大小(字节)
- 第六个字段是文件被修改的日期
- 第七个字段是最后是文件/文件夹名
cd change directory,就是切换目录
cd / 进入根目录
cd .. 返回上级目录
cd ../xx 退到上级目录的xx目录
cd - 回到上一次操作的目录
cp 复制文件夹/文件
- 参数
-a 尽可能的将文件的属性、权限的内容都照原状复制
-b 如果目的文件存在,就创造一个备份
-r 若源中有子目录,则将子目录下的文件及目录亦全部复制至目的目录
-i 若目的地有重复的文件,询问是否覆盖
-f 若目的地有重复的文件,则覆盖原有文件
-L 复制符号链接,自动修改链接以保证链接有效
mv 移到文件/文件夹、改名
- 如果目标目录存在,则是复制到该目录下,如果目标目录不存在,则是改名
- 参数
-i 交互方式操作。如果mv操作将导致对已存在的目标文件的覆 盖,此时系统询问是否重写,要求用户回答“y”或“n”,这样可 以避免误覆盖文件。
-f 禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。
rm 删除文件/文件夹
- 参数
-r 删除目录及子目录,目录下如果有子目录及文件也会被删除
-f 不询问直接删除
-i 删除前逐一询问确认
- 例子
rm -rf test/* 删除test目录下的所有内容
rm -rf test/ 删除test目录
rm -rf test 删除test目录
mkdir 创建文件夹 eg: mkdir -p /mysql/
rmdir 用来删除一个空文件夹, rmdir不能删除非空目录
- 参数
-p 删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除。
touch 创建一个空文件
cat 查看小文件内容,否则内存撑爆了
- 参数
-n 由第一行开始对所有输出的行数编号
-b 和 -n 相似,只不过对于空白行不编号
more 是分页后只能往后翻页,翻到最后一页自动结束返回命令行, eg: more [参数] 文件
less less 是往前往后都能翻页。 eg:less [参数] 文件
head 显示文件的开头至标准输出中
tail 动态查看文件内容,查看文件末尾内容。示例:查看passwd的后2行:tail -2 /etc/passwd.
du 查看文件和目录的磁盘使用空间
du -sh
- 参数
-s或--summarize 仅显示总计,只列出最后加总的值
-h或--human-readable 以K,M,G为单位,提高信息的 可读性
-m或--megabytes 以MB为单位输出
lsof 列出当前系统打开文件的工具
参数
lsof filename 显示打开指定文件的所有进程
lsof -i :80 查询指定端口打开的文件
lsof -p pid 查询指定的pid打开的文件
chmod 用来给文件或者文件赋权限
- 两种方式: 一种为数字 r=4 w=2 x=1,另一种为文本
- 示例:chmod 755 test.txt
wc 统计指定文件中的行数、字节数、字数,并将统计结果显示输出
参数
-c 统计字节数。
-l 统计行数。
-m 统计字符数。这个标志不能与 -c 标志一起使用。
-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
- 示例:
cat /etc/passwd | wc -l
clear 清屏
history 查看历史命令
echo $HISTSIZE 命令记录个数
history -c 清除历史命令
搜索
grep 显示文件中的匹配行
参数
-c 显示匹配行数
-e 字符串:匹配特殊字符串,如-开头
-E 使用正则表达式
-i 忽略大小写
-v 输出不匹配行
-w 匹配指定字符串
- 可以和别的命令通过
| 管道符连接使用
- 示例
ps -ef|grep httpd |grep -v grep
grep ren /etc/passwd
grep -c ren /etc/passwd
grep -Ev '#|^$' nginx.conf.default > nginx.conf 去掉空行、注释
find 查找目录下的文件
- 用法 find 目标目录 搜索参数 操作参数
- 参数
-name 文件名:可以跟通配符
-amin 分钟数:文件最后访问时间为指定分钟之前,负数表示之后
-atime 天数:文件最后访问时间为指定天数之前,负数表示之后
-cmin 分钟数:文件最后修改时间为指定分钟之前,负数表示之后
-ctime 天数:文件最后修改时间为指定天数之前,负数表示之后
-user 用户名:属于用户的目录和文件
-type 文件类型
- 示例
定位文件位置
whereis eg: whereis mysql
which eg: which mysql / which lrzsz
- 区别: whereis是搜索程序名,如果是一个普通的文件是找不到的,which命令只查找环境变量中path里面的路径。
进程
ps 显示瞬间进程 (process) 的动态,使用权限是所有使用者
参数
ps -aux
ps -ef
- 可以用管道符连接其他命令使用
- 示例:
ps -ef|grep tomcat
kill 用来终止指定的进程
- 参数
- 示例
kill -9 pid
ps -ef | grep java|grep -v grep | awk '{print $2}' | xargs kill -9 杀死所有java进程
nohup命令 &
nohup 当前交互命令行退出的时候,程序还要在
& 表示后台运行,程序不能霸占交互命令行
- 示例:
nohup java -jar qzcsbj.jar &
定时任务
crontab 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户
cat /etc/crontab 
- 格式
crontab [ -u user ] 文件crontab [ -u user ] { -l | -r | -e } 不加-u参数的话,默认是当前用户
- 参数
-e 执行文字编辑器来设定时程表,内定的文字编辑器是vi
-r 删除目前的时程表
-l 列出目前的时程表
- 查看日志
tail -f /var/log/cron
- crontab 文件的格式为" M H D m d cmd " 其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。cmd表示要运行的程序,*代表每分钟都执行。
- 示例
* * * * * sh /opt/lampp/test.sh 表示每分钟执行一次test.sh这个脚本, */5 * * * * sh /opt/lampp/test.sh 表示每5分钟执行一次test.sh这个脚本。
- 小练习:1.
crontab -e 2.* * * * * echo "hell" >> /root/a.txt3.查看日志 tail -f /var/log/cron 4. tail -f a.txt
归档压缩
zip/unzip 压缩zip包和解压缩以.zip结尾压缩文件
-zip 命令格式: zip [选项] 压缩文件名 需要压缩的文档列表
- 参数
-r 递归压缩,将指定目录下的所有文件以及子目录全部压缩
-x "文件列表" 压缩时排除文件列表中指定的文件
-m 将文件加入压缩文件压缩后,删除原始文件,即把文件移到压缩文件中
unzip
- 参数
-x "文件列表" 解压文件,但不包含文件列表中指定的文件
-t 测试压缩文件有无损坏,并不解压
-v 查看压缩文件的详细信息,具体包括压缩文件中包含的文件大小、文件名和压缩比等,并不解压
-n 解压时不覆盖已经存在的文件
-o 解压时覆盖已经存在的文件,并且不要求用户确认
-d 目录名 把压缩文件解压到指定目录下
tar 文件打包
- 参数
-c 创建新文档
-x 解压缩归档文件
-f 文件名:使用归档文件
-z 使用gzip解压缩
-v 详细输出模式
- 示例
- 压缩 :
tar -zcvf 1.tar.gz 1.txt 2.txt 3.txt,命令可以将1.txt,2.txt,3.txt 打包并压缩成1.tar.gz
- 解压缩:
tar zxvf 1.tar.gz 可以解压
- rpm 安装包
- 参数
-i 安装 , -U 更新(升级),-e 卸载, -v 显示安装信息, -h 显示安装进度
- 使用
- 安装
rpm -ivh xxx.rpm 如果提示有依赖关系,我们忽略依赖关系强制安装
- 查询
rpm -qa|grep xxx
- 卸载
rpm -e xxx --nodeps 如果卸载的时候提示有软件依赖它,卸载时需要加上 --nodeps
- yum
yum install -y xxx
- 源码安装:略
- 二进制安装:略
系统服务
- 防火墙 : 查看防火墙状态:
systemctl status firewalld关闭防火墙:systemctl stop firewalld开机不启动防火墙:systemctl disable firewalld查看防火墙是否开机启动:systemctl is-enabled firewalld
wget 下载文件,-o 是下载并以不同的文件名保存 ,用法:wget -o 文件名 下载地址, -b 是后台下载,用法:wget -b 下载地址。
- curl 命令行工具 http://www.ruanyifeng.com/blog/2019/09/curl-reference.html
常见环境问题排查
- 服务无法启动
- 查看端口占用
lsof -i:80, netstat -lntp |grep 80
- 服务无法访问
- 查看服务
ps -ef |grep xxx , jps -ml [java]
- ping服务器 ping ip
- telnet端口:telnet 虚拟机ip 80
- 检查防火墙:查看防火墙状态:
systemctl status firewalld关闭防火墙:systemctl stop firewalld开机不启动防火墙:systemctl disable firewalld查看防火墙是否开机启动:systemctl is-enabled firewalld。
- selinux https://www.cnblogs.com/kelelipeng/p/10371593.html
posted @
2021-10-17 22:19
我的野心呢??
阅读(
75)
评论()
收藏
举报