Linux目录结构
Linux 文件系统是一个目录树的结构,文件系统结构从一个根目录开始,根目录下可以有任意多个文件和子目录,子目录中又可以有任意多个文件和子目录
- bin 存放二进制可执行文件(ls,cat,mkdir等)
- /bin (/usr/bin 、 /usr/local/bin)
- 是Binary的缩写, 这个目录存放着最经常使用的命令
- /sbin (/usr/sbin 、 /usr/local/sbin)
- s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /bin (/usr/bin 、 /usr/local/bin)
- boot 存放用于系统引导时使用的各种文件,包括一些连接文件以及镜像文件,自己的安装别放这里
- dev 用于存放设备文件
- etc 存放系统配置文件和子目录
- home 存放所有用户文件的根目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
- lib 存放跟文件系统中的程序运行所需要的共享库及内核模块,系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。
- mnt 系统管理员安装临时文件系统的安装点
- opt 额外安装的可选应用程序包所放置的位置
- proc 虚拟文件系统,存放当前内存的映射
- root 超级用户目录
- sbin 存放二进制可执行文件,只有root才能访问
- tmp 用于存放各种临时文件
- usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
- var 用于存放运行时需要改变数据的文件
- /lost+found 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /srv service缩写,该目录存放一些服务启动之后需要提取的数据。
- /sys 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
- /run 进程产生的临时文件,虚拟机加载光盘映像在:/run/media/root/ 目录下
vi和vim
https://blog.youkuaiyun.com/helloxiaozhe/article/details/81112850
Linux系统的命令行下的文本编辑器。
使用命令:vi xxxx文件 或者vim xxxx文件
三种模式
-
一般模式(默认模式)
-
打开文档的默认模式,主要负责查看,和一些基础的修剪。
-
按键 效果 dd 删除光标当前行 dnd 删除n行 u 撤销上一步 x****X 删除一个字母Delete删除一个字母Backspace yy 复制光标当前行 p 粘贴 dw 删除一个词 yw 复制一个词 -
打开文档的默认模式,主要负责查看,和一些基础的修剪。
-
按键 效果 shift+g 移动到页尾 数字1+shift+g 移动到页头 数字N+shift+g 移动到目标行 shift+6 移动到行头 shift+4 移动到行尾
-
-
编辑模式
-
可以编写文字
-
要按下 i , a ,o,等字母后才能进入编辑模式
-
进入后左下角会有[insert]或[replace]的字样
-
按下[ESC]这个按键即可退出编辑模式
-
按键 效果 i 当前光标前 a 当前光标后 o 当前光标行的下一行 s,S s:删除当前字符并进入编辑 S:删除整行并进入编辑 R 进入替换模式,替换光标后内容
-
-
命令模式
-
可以进行存盘、退出、显示行号、搜索、批量替换等操作。
-
要在一般模式下输入" / "或 " : " 可进入命令模式
-
进入后光标移至最下端
-
命令 含义 : w 保存 : q 退出 : ! 强制执行 : %s/old字符/new字符/g 批量替换 / 要查找的词 n 查找下一个,N 往上查找 N 查找下一个,n 往上查找 :set nu / :set nonu 显示行号 /关闭行号 :noh 取消高亮显示
-
基本常用命令
- 帮助手册
- –help
- 日期类
- date ,cal日历显示
- 显示当前所处目录 pwd
- cd切换目录
- cd … 返回上级目录
- cd / 返回至/
- cd , cd ~ 返回家目录
- cd /etc/sysconfig 通过绝对路径访问(利用tab键)
- cd ./sysconfig 通过相对路径访问
- ls
- -a 全部文件,连同隐藏的文件
- -l 列出详细列表 别名ll
- 列表信息:
0 -: 普通文件 d: 目录文件
123 所属者对文件的权限
456 当前文件所属者 组内对文件的权限
789 其他人对文件的权限
-
mkdir
- -p 可以一下建好多级目录
- 例: mkdir 目录名
-
touch
- 新建一个文件
- 例:touch 文件名
-
rmdir
- 删除一个空目录
- 例: rmdir dirname
-
rm
- 移除文件或目录
- -rvf递归删除所有目录内容,提示
- -rf 递归删除所有目录内容,不提示
-
cp
- cp 【要复制的文件】 【到哪里】
- -r 递归复制整个文件夹
- -v 显示复制过程中文件的列表
- 强制覆盖不提示的方法
- 临时方法:用\cp
-
mv
- mv oldFileName newFileName 重命名
- mv /temp/movefile /targetFolder 移动文件
-
cat
- cat 文件名 查看轻量级的文本文件
- cat 文件1 文件2 连接显示多个文件
- cat 文件1 文件2 > 文件3 合并为新文件
-
more
- 查看较长的文件
- 空白键 (space):代表向下翻一页
- Enter:代表向下翻一行
- q:代表立刻离开 more ,不再显示该文件内容。
- Ctrl+F 向下滚动一屏
- Ctrl+B 返回上一屏
-
less
- 同more类似,比more功能更多。
- [pagedown]:向下翻动一页;
- [pageup] :向上翻动一页;
- /字串 :向下搜寻『字串』的功能;
- ?字串 :向上搜寻『字串』的功能;
- n :重复前一个搜寻 (与 / 或 ? 有关!)
- N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
-
tail
- 从尾部开始查看,比较适合查看日志
- -f 跟随查看
- -n200 显示的行数,n可以省略。
-
history
- 查看历史命令
-
echo
- 输出环境变量
- 在shell脚本中当system.out.print用
- echo $PATH
-
find
- 查找文件,提供了丰富的模糊搜索及条件搜索
- find+搜索路径+参数+搜索关键字
- 按文件名:find /home/esop -name “*.txt” 根据名称查找/目录下的filename.txt文件。
-
locate
- 查找文件,查询速度更快,使用更方便。
- locate /opt/*.conf
- 运行前需要 执行updatedb来更新文件索引。
软链接
- 也成为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径
- 命令 ln –s 原文件或目录名 软链接名
- 查询:通过 ls -l 就可以查看,列表属性第1位是l,尾部会有位置指向。
解压缩
压缩文件(tar)
- tar -zcvf XXX.tar.gz n1.txt
- -c 创建一个新归档
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z 通过 gzip 过滤归档
解压缩文件(tar)
- tar -zxvf XXX.tar.gz
- -x从归档中解出文件
- -v 显示详细信息
- -f 指定解压前的文件名
-z 通过 gzip 过滤归档
压缩文件(zip)
- zip mypackage.zip 1.txt 2.txt
- zip -r pack.zip pack/* (递归压缩)
解压缩文件(zip)
- unzip mypackage.zip
网络配置
ifconfig
- 查看网络配置
- 如何修改IP
- 图形化操作
- 命令行方式 vi /etc/sysconfig/network-scripts/ifcfg-ens33
- 刷新网络设置
- service network restart
DEVICE=eth0 #接口名(设备,网卡)
BOOTPROTO=none
IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
BROADCAST=192.168.1.255 #广播地址
HWADDR=00:0C:2x:6x:0x:xx #MAC地址
IPADDR=192.168.1.23 #IP地址
NETMASK=255.255.255.0 # 网络掩码
NETWORK=192.168.1.0 #网络地址
ONBOOT=yes #系统启动的时候网络接口是否有效(yes/no)
TYPE=Ethernet #网络类型(通常是Ethemet)
进程
ps (process)
ps –aux
ps
-
ps –aux|grep xxx
-
System V展示风格
-
USER:用户名称
-
PID:进程号
-
%CPU:进程占用CPU的百分比
-
%MEM:进程占用物理内存的百分比
-
VSZ:进程占用的虚拟内存大小(单位:KB)
-
RSS:进程占用的物理内存大小(单位:KB)
-
TT:终端名称,缩写
-
STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
-
STARTED:进程的启动时间
-
TIME:CPU时间,即进程使用CPU的总时间
-
COMMAND:启动进程所用的命令和参数,如果过长会被截断显示
-
ps -ef是以全格式显示当前所有的进程
-
-e 显示所有进程。-f 全格式。
-
ps -ef|grep xxx
- 是BSD风格
- UID:用户ID
- PID:进程ID
- PPID:父进程ID
- C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高
- STIME:进程启动的时间
- TTY:完整的终端名称
- TIME:CPU时间
- CMD:启动进程所用的命令和参数
综上:
如果想查看进程的CPU占用率和内存占用率,可以使用aux
如果想查看进程的父进程ID可以使用ef
pid
- 每个进程都有一个pid作为唯一标识。
kill
- kill pid 通过唯一标识pid杀死进程
- -9 强行杀死进程
killall
- killall name 通过进程名称杀死进程
ps-ef | grep xxx
systemctl (centos7)
- 注册在系统中的标准化程序
- 有方便统一的管理方式(常用的方法)
- systemctl start 服务名(xxxx.service)
- systemctl restart 服务名(xxxx.service)
- systemctl stop 服务名(xxxx.service)
- systemctl reload 服务名(xxxx.service)
- systemctl status 服务名(xxxx.service)
- 查看服务的方法 /usr/lib/systemd/system
- 查看服务的命令
- systemctl list-unit-files
- systemctl --type service
- 通过systemctl 命令设置自启动
- 自启动systemctl enable service_name
- 不自启动systemctl disable service_name
netstat
- 查看系统的网络情况
- -an 按一定顺序排列输出
- -p 显示哪个进程在调用
- netstat –anp|grep 8080 查看占用8080端口的进程
权限
rpm
RPM(RedHat Package Manager),Rethat软件包管理工具,类似windows里面的setup.exe
是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。
查询已安装的rpm列表 rpm –qa|grep xx
安装rpm
- rpm –ivh rpm包名
- -i 安装 install
- -v 查看信息
- -h 查看进度条
卸载rpm
- rpm -e RPM软件包
yum
- 类似于我们java开发中的maven工具,可以从镜像网站上下载应用程序,并直接安装
- yum list|grep xx软件列表
- yum install xxx 下载安装
ipv4 自动改成手动
地址:192.168.80.133
子网掩码:255.255.255.0
网关(192.168.80.1)192.168.80.2
DNS 192.168.80.2
安装jdk
- 解压缩到
- 配置环境变量的配置文件vim /etc/profile
- JAVA_HOME=/opt/jdk1.8.0_152
- PATH=/opt/jdk1.8.0_152/bin:$PATH
- export JAVA_HOME PATH
使环境变量立即生效
- source /etc/profile
安装Tomcat
- 解压缩到/opt
- bin 下 启动tomcat ./startup.sh
redis:6379
- 下载获得redis-3.2.5.tar.gz后将它放入我们的Linux目录/opt
- 解压命令:tar -zxvf redis-3.2.5.tar.gz
- 解压完成后进入目录:cd redis-3.2.5
- yum install gcc
- yum install gcc-c++
- 在redis-3.2.5目录下再次执行make命令
- Jemalloc/jemalloc.h:没有那个文件
- 解决方案:运行make distclean之后再 make
- 在redis-3.2.5目录下再次执行make命令
- 执行完make后,跳过Redis test 继续执行make install
查看默认安装目录:usr/local/bin
- Redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何(服务启动起来后执行)
- Redis-check-aof:修复有问题的AOF文件,rdb和aof后面讲
- Redis-check-dump:修复有问题的dump.rdb文件
- Redis-sentinel:Redis集群使用
- redis-server:Redis服务器启动命令
- redis-cli:客户端,操作入口
启动
备份redis.conf:拷贝一份redis.conf到其他目录
修改redis.conf文件将里面的daemonize no 改成 yes,让服务在后台启动
opt/myRedis
服务端 redis-server redis.conf
开启客户端 redis redis-cli -h 127.0.0.1 -p 6379
nginx
cd /usr/local/ ==>nginx
cd nginx
cd sbin cd /usr/local/nginx/sbin
开启 ./nginx
关闭 ./nginx -s stop
重新加载 ./ngix -s reload