centos7 系统目录结构

/
这就是根目录。对你的电脑来说,有且只有一个根目录。所有的东西,我是说所有的东西都是从这里开始。举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。

/root
这是系统管理员(root user)的目录。对于系统来说,系统管理员就好比是上帝,它能对系统做任何事情,甚至包括删除你的文件。因此,请小心使用root帐号。

/bin
这里存放了标准的(或者说是缺省的)linux的工具,比如像“ls”、“vi”还有“more”等等。通常来说,这个目录已经包含在你的“path”系 统变量里面了。什么意思呢?就是:当你在终端里输入ls,系统就会去/bin目录下面查找是不是有ls这个程序。

/etc
这里主要存放了系统配置方面的文件。举个例子:你安装了samba这个套件,当你想要修改samba配置文件的时候,你会发现它们(配置文件)就在/etc/samba目录下。

/dev
这里主要存放与设备(包括外设)有关的文件(unix和linux系统均把设备当成文件)。想连线打印机吗?系统就是从这个目录开始工作的。另外还有一些包括磁盘驱动、USB驱动等都放在这个目录。

/home
这里主要存放你的个人数据。具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/用户名。当然,root用户除外。

/tmp
这是临时目录。对于某些程序来说,有些文件被用了一次两次之后,就不会再被用到,像这样的文件就放在这里。有些linux系统会定期自动对这个目录进行清理,因此,千万不要把重要的数据放在这里。

/usr
在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。比如像游戏阿,一些打印工具拉等等。/usr目录包含了许多子目录: /usr/bin目录用于存放程序;/usr/share用于存放一些共享的数据,比如音乐文件或者图标等等;/usr/lib目录用于存放那些不能直接 运行的,但却是许多程序运行所必需的一些函数库文件。你的软件包管理器(应该是“新立得”吧)会自动帮你管理好/usr目录的。

/opt
这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可 以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。

/usr/local
这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面,我想这应该是个不错的主意。

/media
Some distros use this folder to mount things like usb disks, cd or dvd drives and other filesystems.

/media
有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。

Linux常用指令

系统信息

dmidecode -t memory | head -45 | tail -23 查看内存槽及内存条及内存大小
cat /proc/cpuinfo 显示CPU info的信息
cat /proc/cpuinfo| grep “physical id” | sort| uniq| wc -l 查看物理cpu个数
cat /proc/cpuinfo | grep “cpu cores”| uniq 查看核心数量
grep ‘processor’ /proc/cpuinfo | sort -u | wc -l 查看线程数
cat /etc/centos-release linux查看版本当前操作系统发行信息
uname -a Linux查看版本当前操作系统内核信息
cat /proc/interrupts 显示中断
cat /proc/meminfo 校验内存使用
cat /proc/version 显示内核的版本
lspci -tv 罗列 PCI 设备
lsusb -tv 显示 USB 设备
date 显示系统日期
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒



关机 (系统的关机、重启以及登出 )

shutdown -h now 关闭系统
init 0 关闭系统
telinit 0 关闭系统
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启
reboot 重启
logout 注销








文件和目录

cd / 返回主目录
cd /home 进入 ‘/ home’ 目录’
cd .. 返回上一级目录
cd ../.. 返回上两级目录
cd 进入个人的主目录
cd ~user1 进入个人的主目录
cd - 返回上次所在的目录
pwd 显示工作路径
ls 查看目录中的文件
ls -l 显示文件和目录的详细资料
ls -F 查看目录中的文件
ls -a 显示隐藏文件
ls [0-9] 显示包含数字的文件名和目录名
mkdir dir1 创建一个叫做 ‘dir1’ 的目录’ 注意:该命令无法创建目录树
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
rm -f file1 删除一个叫做 ‘file1’ 的文件’
rmdir dir1 删除一个叫做 ‘dir1’ 的目录’
rm -rf dir1 删除一个叫做 ‘dir1’ 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
mv dir1 new_dir 重命名/移动 一个目录 dir1:移动的文件 new_dir:移动的目录
cp file1 file2 复制一个文件 dir1:移动的文件 new_dir:移动的目录
cp dir/* . 复制一个目录下的所有文件到当前工作目录
cp -a /tmp/dir1 复制一个目录到当前工作目录
cp -a dir1 dir2 复制一个目录
ln -s file1 lnk1 创建一个指向文件或目录的软链接
ln file1 lnk1 创建一个指向文件或目录的物理链接

文件搜索

find / -name file 从 ‘/‘ 开始进入根文件系统搜索文件和目录
find / -user user 搜索属于用户 ‘user’ 的文件和目录
find /home/user -name \*.bin 在目录 ‘/ home/user’ 中搜索带有’.bin’ 结尾的文件
find / -name

name | 在/目录查找开头为name的文件 | | find / -name name | 在/目录查找结尾为name的文件 | | find / -name name | 在/目录查找包含name字符串的文件 | | find / -name “nginx“ -exec rm -rf {} \; | 搜索有关nginx的文件并删除 |

查看文件内容

cat file1 从第一个字节开始正向查看文件的内容
tac file1 从最后一行开始反向查看一个文件的内容
more file1 查看一个长文件的内容
less file1 类似于 ‘more’ 命令,但是它允许在文件中和正向操作一样的反向操作
head -20 file1 查看一个文件的前20行
tail -20 file1 查看一个文件的最后20行
tail -f /var/log/messages 实时查看被添加到一个文件中的内容




关于服务

kill -9 端口号 强制杀掉该进程
ps -ef|grep name 查看该程序的进程
lsof -i:8000 查看8000端口的进程
ps -ef|grep mysql|wc -l 统计查询出的mysql进程的行数
free

-m | 查看LINUX内存剩余容量 | | top | 也可查看进程信息,而且是动态显示 | | whoami | 查看当前登陆用户 | | chkconfig —list | 查看系统服务启动 | | chkconfig iptables on | 开机启动该服务 | | chkconfig iptables off | 开机不启动该服务 | | service iptables start | 启动该服务 | | service iptables restart | 重启启该服务 |



用户/用户组

groupadd abcd 添加组
cat /etc/group 查看当前系统所有的组
chgrp abcd b.txt 将b.txt归属到abcd组
useradd abcd -g abcd 创建一个用户归属于abcd组
passwd abcd 输入用户abcd的登录密码
useradd test 创建一个test用户
cat /etc/passwd 查看系统所有用户
userdel abcd 删除abcd用户
su abcd 切换用户
yum install firewalld 在线安全firewalld
service firewalld status 查看防火墙状态
service firewalld stop 关闭防火墙


权限管理 chmod

| chmod -R 777 | 给文件夹下所有的文件赋权限,递归处理 | | —- | —- |

查看磁盘空间大小

du -sh 文件 查看文件大小
du -sh *
查看该目录所有文件大小
df -h 以人们较易阅读的GB,MB,KB等格式自行显示

vim编辑器指令

vim test.txt 编辑test这个文件
u 回退一步
ctrl + r 前进一步
i, o, a 进去编辑模式
G 移动到这个档案的最后一行(常用)
nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行
gg 移动到这个档案的第一行,相当于 1G 啊!
n n 为数字。光标向下移动 n 行(常用)
/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word 向光标之上寻找一个字符串名称为 word 的字符串。


关于其他常用命令

测试端口的通透性

此方法可用于检测是否因为防火墙导致外部不能访问
wget ip:端口

关于在Linux系统运行jar包

运行jar包:
**
要运行java的项目需要先将项目打包成war包或者jar包,打包成war包需要将war包部署到tomcat服务器上才能运行。而打包成jar包可以直接使用java命令执行。

在linux系统中运行jar包主要有以下几种方式。

1、java -jar XXX.jar
这是最基本的jar包执行方式,但是当我们用ctrl+c中断或者关闭窗口时,程序也会中断执行。

2、java -jar XXX.jar &
&代表在后台运行,使用ctrl+c不会中断程序的运行,但是关闭窗口会中断程序的运行。

3、nohup java -jar XXX.jar &
使用这种方式运行的程序日志会输出到当前目录下的nohup.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。
4、nohup java -jar XXX.jar >temp.out &
>temp.out的意思是将日志输出重定向到temp.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。

停止运行jar包:
ps -ef | grep xxx.jar 获取pid
kill -9 pid

Maven不打包test环境指令

-DskipTests

vmstat -t 5

查看Linux系统机器的性能,5代表5s打印一次
vmstat相关参数:
r :表示运行队列(就是说多少个进程真的分配到CPU),一般负载超过了3就比较高,超过了5就高,超过了10就不正常了,服务器的状态很危险。

b: 表示阻塞的进程,这个不多说,进程阻塞,大家懂的。

swpd:虚拟内存已使用的大小,如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free: 空闲的物理内存的大小,我的机器内存总共8G,剩余3415M。

buff:Linux/Unix系统是用来存储,目录里面有什么内容,权限等的缓存,我本机大概占用300多M

cache:cache直接用来记忆我们打开的文件,给文件做缓冲,我本机大概占用300多M(这里是Linux/Unix的聪明之处,把空闲的物理内存的一部分拿来做文件和目录的缓存,是为了提高 程序执行的性能,当程序使用内存时,buffer/cached会很快地被使用。)

si:每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。我的机器内存充裕,一切正常。

so:每秒虚拟内存写入磁盘的大小,如果这个值大于0,同上。

bi:块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte,我本机上没什么IO操作,所以一直是0,但是我曾在处理拷贝大量数据(2-3T)的机器上看过可以达到140000/s,磁盘写入速度差不多140M每秒

bo:块设备每秒发送的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。
in:每秒CPU的中断次数,包括时间中断
cs:每秒上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。
us:用户CPU时间
sy:系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁。
id:空闲 CPU时间,一般来说,id + us + sy = 100,一般我认为id是空闲CPU使用率,us是用户CPU使用率,sy是系统CPU使用率。
wt:等待IO CPU时间。

docker常用命令

docker ps 查看正在运行容器
docker ps -a 查看所有容器
docker start redis 启动一个或多个已经被停止的容器
docker restart redis 重启容器
docker kill redis 杀掉一个运行中的容器
docker top redis 列出redis容器中运行进程
docker inspect redis 获取镜像redis的元信息
docker images 列出本地镜像
docker images -q docker images -q
docker rmi redis 删除镜像
docker rmi -f redis 强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis tomcat nginx 多个镜像删除,不同的镜像以空格间隔
userdel abcd 删除abcd用户
su abcd 切换用户
yum install firewalld 在线安全firewalld
service firewalld status 查看防火墙状态
service firewalld stop 关闭防火墙

容器进入和推出

docker run -it centos /bin/bash 查看正在运行容器
exit 推出容器
docker exec -ti 容器id /bin/bash 进入容器