Linux复习笔记(CLY)
# 目的:
# 1-搭建、维护测试环境
# 2-负责跟踪定位BUG
1、远程连接工具
# 远程连接:
# 1-xshell
# 2-SecureCRT
# 3-Putty...
# 远程文件传输工具:
# 1-xftp
# 2-filezilla...
①xshell连接示例
新建连接
填写账号密码
进行连接(#表示root用户,$表示普通用户)
②xftp连接示例
点击图标(没有则自行安装)
自动弹出xftp界面
2、Linux目录结构
# /: 根目录
# /root:root用户家目录
# /home:普通用户家目录
# /bin:存放常用命令的目录,普通用户就可以读取
# /sbin:存放具有一定权限才能使用的命令
# /etc:存放配置文件
# /var:存放经常变化的文件
# /boot:存放引导系统启动的相关文件
# /usr:安装软件的默认目录,相当于 Windows 下的 Program Files
# /dev:存放设备文件
# /lib:系统库保存目录
# /mnt:默认挂载光驱和驱动的目录
# /proc:保存内存的一些挂载点(文件直接 写入内存)
3、常用命令:系统信息
# uname: 查看操作系统
# 参数 -a:显示操作系统+主机名+系统内核信息
# hostname:查看主机名
# 参数 -i:显示系统IP(云服务器就显示私有IP)
# cal: 显示本月日历
# date:显示当前时间
# uptime: 显示运行时间
# whereis xxx:查找xxx文件的位置
# which xxx:查找xxx命令的位置(只查找path环境变量中列出的目录,只显示找到的第一个可执行文件的完整路径)
4、常用命令:硬件资源信息
# cat /proc/cpuinfo: 查看cpu详细信息
# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c: 查看CPU型号及对应数量
# cat /proc/cpuinfo | grep "processor" | wc -l: 查看逻辑处理核数
# cat /proc/meminfo: 查看内存详细信息
# free: 查看内存使用情况(默认单位:kB)
# free -m: 查看内存使用情况(单位:MB)
# man xxx: 查看xxx命令的帮助手册
5、常用命令:磁盘使用情况
# 运行过程中,发现磁盘问题 "no space left no device"
# df: 显示磁盘空间信息(默认单位:KB)
# df -h: 显示磁盘空间信息(易阅读的方式)
# df -i: 显示磁盘空闲索引节点(如果磁盘有剩余,但是剩余节点不足,创建文件时仍会报错)
# 扩展:block用来存数据,inode用来存索引信息
# du 路径: 查看指定目录下,每个目录和文件的大小(不加路径,表示当前目录)
# du -sh 路径: 查看目录总的大小(易阅读的方式)(不输入路径,则查看当前目录)
# 扩展:
# 如果一个文件没有被引用(inode节点引用计数为0),那么删除后,空间立即释放;
# 如果该文件被引用(某个进程在使用它),那么删除后,du命令不会统计它,df命令仍然会统计到它及占用的磁盘空间大小(du和df查看信息有差别的原因)
# fdisk -l: 显示磁盘分区及对应信息
# findmnt: 显示当前挂在的文件系统列表
# mount device-path mount-point: 挂载设备到目录(光盘iso,移动硬盘,U盘...)
6、常用命令:文件目录操作
# ls: 显示当前目录的子目录及文件
# ls -l: 显示当前目录的子目录及文件的详细信息(可以简写: ll)
# ls -al: 显示当前目录的子目录及文件的详细信息(含隐藏文件)
# pwd: 显示当前路径
# cd xxx: 切换到xxx目录(不加路径,默认回到当前用户家目录,等同于 cd ~)
# cd ..: 切换到上级目录
# mkdir xxx: 创建xxx目录
# rm xxx: 删除xxx文件(需要二次确认)
# rm -f xxx: 强制删除xxx文件(不需要确认)
# rm -r yyy: 删除yyy整个目录(-r表示递归)
# rm -rf yyy: 强制删除yyy整个目录
# cp xxx yyy: 复制xxx文件并命名为yyy(若yyy文件存在,则提示是否覆盖)
# cp xxx 路径/yyy: 复制xxx文件到指定目录
# cp -r aaa bbb: 复制aaa目录并命名为bbb(若bbb目录存在,则覆盖)
# cp -r aaa 路径/bbb: 复制aaa到指定目录
# mv xxx yyy:
# 1、文件/目录重命名(如果存在,提示是否覆盖)
# 2、移动文件/目录到指定目录
# 备注:移动目录到指定目录下的有同名目录时,如果同名目录不为空,则移动失败
# ln -s 路径/xxx 路径/yyy: 创建xxx的软连接(类似快捷方式)yyy
# 备注:不加-s则创建硬链接
# touch xxx: 创建xxx文件(如果xxx存在,则修改创建时间信息,不修改文件内容)
# 备注:创建文件的方式(1、touch 2、cat+>(>>) 3、echo+>(>>) 4、cp 5、vim(vi\nano...)
# cat file1 > file2: 将file1内容输出给file2(追加用 >>)
# more file1: 按页查看file1(回车换行,空格下翻页,按 q 键退出查看)
# less file2: 按页查看file2(回车换行,空格下翻页,b键上翻页,按 / 键搜索,按 q 键退出查看,支持上下箭头)
# head -n 5 file: 显示file文件的前5行(不加 -n 5,默认显示前10行)
# tail -n 5 file: 显示file文件的前5行
# tail -f file: 实时查看file文件内容(常用来看动态更新日志文件,ctrl+c退出)
# wc 文件: 输出文件行数(行数、单词数、字节数)
7、常用命令:用户相关
# whoami: 查看当前登录用户
# w: 查看当前登录者信息及行为
# groupadd xxx: 添加一个xxx用户组(cat /etc/group: 查看当前系统所有用户组)
# adduser xxx: 添加一个xxx用户(cat /etc/passwd: 查看当前系统所有用户)
# passwd xxx: 添加/修改xxx用户的密码
# su xxx: 切换到xxx用户(不填xxx,表示切换到root用户)
# userdel xxx: 删除xxx用户(有进程使用,则删除不成功,使用多层 exit 退出xxx用户)
8、常用命令:查找相关
# 查找字符串
# grep xxx file: 在file文件中,查找xxx字符串(可以加引号也可以不加),并打印出来
# grep -r xxx dir: 在 dir 目录中,递归查找包含字符串 xxx 的文件,并打印出来
# xxx | grep yyy: 在xxx命令的输出中,查找yyy字符串,并打印出来
# 查找文件
# find dir -name "*t": 查找dir目录下,文件名以t开头的文件
# find dir -size +1k: 查找dir目录下,文件大小超过1k的文件
# find . -name "tt": 当前目录下查找tt文件
9、常用命令:文件权限
# chmod xyz file: 修改file文件的权限为 xyz
# chmod -R xyz dir: 递归修改dir目录及里面内容的权限为 wyz
# 备注:
# xyz其中x表示拥有者权限,y表示所属用户组权限,z表示其他用户权限
# 4=读,2=写,1=执行
# chmod 763 file: 表示修改file文件权限,拥有者为7(可读可写可执行),用户组为6(可读可写),其他为3(可写可执行)
# chown user file: 修改file文件或目录的所属者
# chown user:usergroup file: 修改file文件或目录的所属者及用户组
# chown -R user:usergroup file: 递归修改file文件或目录的所属者及用户组
10、常用命令:进程相关
# ps: 显示与当前用户和终端相关的进程
# ps aux: 显示系统中所有用户的所有进程的详细信息(也可以 ps -aux)
# ps -ef: 显示系统中所有进程的详细信息(标准格式)
# pgrep 进程名: 获取指定进程的PID
# pstree: 以树状形式显示所有进程
# kill PID: 结束进程号为PID的进程(告诉进程优雅地退出)
# kill -9 PID: 强制结束进程号为PID的进程(立即终止指定的进程,不会给进程任何机会去清理或保存状态)
# killall name: 结束所有进程名为name的进程
# top: 实时显示所有进程占用资源情况(ctrl+c退出)
# bg: 将一个在后台暂停的命令(作业)进行启动--------------------(top命令尝试失败)
# fg: 将一个在后台的命令(作业)调到前台进行启动
# jobs: 查看当前有哪些后台作业
# 扩展:
# ctrl+z可以将一个正在前台运行的命令放到后台,并且暂停
# 在运行的指令末尾加上 & ,可以让命令在后台运行--------------(top命令尝试失败)
11、常用命令:网络相关
# ifconfig: 查看当前网卡信息
# ip addr show: 查看当前网卡信息(类似 ifconfig)
# ping host: 查看与IP或域名为host的服务器通信情况(ctrl+c 退出)
# whois xxx: 获取域名为xxx的域名信息(需要手动安装,yum install -y whois)
# dig xxx: 获取域名为xxx的dns信息(包括IP地址等)
# dig xxx -shor: 获取域名为xxx的IP地址
# dig -x IP: 查询IP地址对应的主机名或域名
# hostname -i: 获取本机IP地址
# wget url: 下载某个文件
# wget -c url: 断点续传下载文件
# wget -r url: 递归下载所有连接
# netstat -apn: 查看所有进程和端口的使用情况
# netstat -apn | grep 8080: 查看8080端口的占用情况
12、常用命令:打包、压缩、解压
# tar命令:
# -t: 显示内容目录
# -z: 使用zip/gzip
# -c: 压缩
# -x: 解压
# -v: 显示详细信息
# -f: 指定文件
# tar -cf file.tar file1:创建一个压缩包,包含file1文件
# tar -tf: file.tar: 查看file.tar压缩包里面的内容
# tar -xf file.tar: 解压file.tar(解压的目录有同名文件,会直接覆盖)
# tar -zcvf xxx.tar.gz 文件/目录: 压缩文件/目录
# tar -zxvf xxx.tar.gz: 解压文件/目录
# gzip xxx: 压缩xxx文件为xxx.gz(不保留源文件)
# gzip -d xxx.gz: 解压xxx.gz文件
13、常用命令:SSH连接
# 在应用层,基于TCP(默认22端口),提供安全远程连接
# ssh root@host: 用root账户与指定服务器建立远程连接,默认22端口(exit退出)
# ssh -p port root@host: 使用指定端口和用户连接
# ssh -D port root@host: 绑定本地端口,通过ssh连接并传送数据到远程主机(本地socket5代理),一旦有数据传递给本地port端口,就会将数据加密发送给远程主机
14、常用命令:rpm安装/卸载、源码编译安装
# rpm -i xxx.rpm: 安装rpm包
# rpm -e xxx: 卸载rpm应用(xxx就是xxx.rpm包前面的名字)
# 源码编译安装过程:
# 源码压缩文件(例如:nginx-1.12.0.tar.gz)
# 1-解压: tar -zxvf nginx-1.12.0.tar.gz
# 2-进入解压目录,运行shell脚本,生产Makefile: ./configure
# 3-编译程序: make
# 4-安装程序: make install
# 5-清除编译痕迹: make clean