linux—基础篇
linux是一款免费,开源安全,高效,稳定,处理高并发强悍的操作系统
Linux目录结构
不同于windows的C/D/E盘的目录结构,Linux采用层级式树状目录结构,最上层只有一个根目录,在根目录下有很多的子目录
在Linux世界里,一切皆文件
具体的目录结构:
- /bin(user/bin,user/local/bin):Binary(二进制)的缩写,存放经常使用的命令
- /sbin(/suer/sbin,/user/local/sbin):s是super user的意思,用于存放系统管理员使用的系统管理程序
- /home:存放普通用户的主目录,在linux中每个用户都有一个自己的主目录,一般该目录名是以用户的账号命名的
- /root:该目录为系统管理员,也称超级权限者的用户主目录
- /lib:系统开机所需要的基本动态链接库,类似于windows下的dll文件,几乎所有应用程序都需要用到这些共享库
- /lost+found:一般为空,非法关机后会存放一些文件
- /etc:所有系统管理所需要的配置文件和子目录(环境变量也放在这里)
- /usr:存放用户的应用程序和文件,类似于windows下的program files目录
- /boot:存放启动linux时的一些核心文件,包括连接文件以及镜像文件
- /proc:一个虚拟目录,它是系统内存的映射,访问这个目录可以获取用户信息
- /srv:service的缩写,该目录存放服务启动之后需要提取的数据
- /sys:安装了linux2.6内核中的新文件系统ysfs
- /tmp:用来存放临时文件
- /dev:类似于windows下的设备管理器,把所有硬件以文件的形式存储
- /media:Linux会自动识别一些设备,如U盘,光驱等,识别后,Linux会把识别到的设备挂载到这个目录下
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统,我们可以将外部的存储挂载在mnt上,然后进入该目录查看内容
- /opt:给主机安装额外软件所摆放的目录
- /usr/local:另一个安装软件的目录,一般是通过编译源码方式安装的程序
- /var:存放不断扩充的东西,习惯将经常修改的目录放在这里。
- /selinux:一种安全子系统,它能控制程序只访问特定文件
远程登陆
Xshell是一个强大的终端模拟软件,他支持SSH1,SSH2,以及windows平台的TELNET协议
Xshell可以再windows界面下用来访问远程不同系统下的服务器,从而达到远程控制终端的目的。
如果希望安装好的Xshell就可以远程访问Linux的话,需要Linux启动sshd服务,用于监听22号端口
利用setup命令打开系统配置工具查看shdd,用hostname -I
+ifconfig命令可以查看ip地址
vi和vim三种常见模式
- 正常模式:打开文档默认进入的模式,正常模式下,我们可以使用快捷键
- 编辑模式(插入模式):按下任意一个键进入,一般按i即可
- 命令行模式:提供读取,存储,替换,离开显示行号等功能
快捷键:按V进入视图,上下左右选择,y复制,p粘贴,d删除,yy复制整行(yyn,复制n行),dd删除整行,u:撤销;N:查找上一个;:数字:定位到某行
:set nu:显示行号,set nonu:取消行号 :noh查找高亮
关机与重启
shutdown -h now 立即关机
shutdown -h -1:表示一分钟后关机
shutdown -r now:立即重启
halt:效果等价于关机
reboot:重启系统
sync:把内存的数据同步到磁盘
登录时为了防止失误,可以用su -用户名 获取管理员身份
logout:注销
实用指令
指定运行级别
- 0:关机
- 1.单用户级别(找回密码时使用)
- 2 多用户无网络服务
- 3.多用户有网络服务
- 4。保留级别
- 5.图形界面
- 6.重启
级别的指定文件在etc/inittab
命令:init [0,1,2,3,4,5,6]切换到运行级别
找回root密码
进入到单用户模式(不需要密码),然后修改密码
帮助指令
对某个指令不熟悉时可以使用帮助指令
- man [命令活配置文件]获取帮助指令
- help 命令 : 帮助指令
文件目录类
- vim:进入编辑模式
- pwd(print working directory):显示当前目录的绝对路径
- ls:显示当前文件或目录的具体信息 -a:显示全部,-l以列表显示
- cd:切换目录(cd~回到根目录)
- mkdir [选项]:创建目录(常用选项:-p)
- rmdir [选项]:删除目录(删除非空目录要使用rm -rf 删除的目录)
- touch:创建一个空文件,支持一次创建多个文件
- cp [选项]:拷贝文件到指定目录 (-r递归复制整个文件,cp前加\强制覆盖)
- 上下键可以找出刚才使用的指令
- rm [选项] :移除文件或目录(-r 递归删除;-f强制删除)
- mv [选项]:移动文件或重命名,加原文件名和新文件名重命名;加当前路径和之后路径移动文件,移动路径时也可以用最后一个文件名进行重命名
- cat [选项]:查看文件内容(只读)(-n 显示行号,一般与|more配合使用进行分页显示)
- more 用全屏的方式按页显示文件的内容(ctrl+f滚动下一屏;ctrl+b滚动上一屏 space:下一页,enter:下一行,q离开)
- less [选项]:分屏加载,分屏显示(懒加载,速度较快)
-
:输出重定向(ls -l>文件:将列表内容写入文件,不存在就创建,如果是cat >就是将cat文件的内容全部写道指定的文件中)
-
:追加,不覆盖(echo 文件1 >> 文件2:将文件1的内容追加到文件2中)[cal:日历]
- echo:输出内容到控制台
- head -n:显示文件的开头部分(前n行)
- tail -n m:显示文件的结尾部分(后m行);
- tail -f:实时监控文件的更新(ctrl+退出)
时间日期类
- date :当前时间
- date+"%y":显示当前年份
- date+"%m":显示当前月份
- date+"%d":显示当前那一天
- date+"%H-%M-%S":显示时间,分钟,秒
- 设置时间:date -s +字符串
- 改回同步时间:hwclock -s
- 日历:cal,后面加数字显示年份
搜索查找类
- find [搜索范围] 选项 (选项说明:查找方式,用户名,文件大小)
- 用例:find /home -name hello.txt
- locate 用于快速定位文件路径,需要先创建locate数据库(使用updatedb,centos7无需手动创建)
- grep指令,过滤查找,grep [选项] 查找内容 源文件(选项:-n匹配行及行号,-i忽略字母大小写)
- 用例:cat world.txt |grep -n yes
压缩和解压缩
- gzip:压缩文件
- gunzip:解压缩指令
- zip -r <打包名称.zip> 文件路径(需要先下载zip包)
- tar [选项] XXX.tar.gz 打包的内容(-c 产生tar打包文件,-v显示详细信息,-f指定压缩后的文件名 ,-z打包同时压缩)
权限管理
用ls -l展示文件的详细信息时:
-rwxr–r--. 1 ytm ytm 17 10月 26 10:42 mytask.sh
各个信息依此为:
- 文件类型:-:普通文件;d:目录;l:软链接;c:字符设备(键盘,鼠标),b:块文件,硬盘;
- 文件所有者权限
- 文件所有组的用户拥有的权限
- 文件其他组用户的权限
- 数字,如果是文件,表示硬链接数,如果是是目录表示目录个数
- 文件所有者
- 所在组
- 数字,代表文件大小,如果是目录则为4096
- 文件最后的修改时间
- 文件名
文件的权限:
- 数字表示:r=4,w=2,x=1;
修改权限 chmod
通过chomod [文件名]可以修改文件或目录的权限
第一种方式:+,-,=权限变更
- u:所有者,g:所有组,o:其他人 a:所有人
第二种方式:通过数字变更权限
- 例如:chmod 744 [文件名]
修改文件所有者: chown
- chown (-R 递归更改) newowner file 改变文件所有者
- chown newowner:newgroup file 改变文件所有者和所有组
修改文件的所在组:chgrp
- chgrp newgroup file 改变文件的所在组
任务调度
- crond 任务调度
- 基本语法: crontab [选项]
- 常用选项: -e:编辑定时任务;-l查询crontab任务;;-f删除当前用户所有crontab任务
特殊符号说明
- *任何时间
- ,不连续时间
- .连续的时间范围
- */n 代表多久执行一次
分区
- linux通过mount将硬盘分区和文件系统连接起来
- Linux无论有多少个分区,归根结底只有一个根目录,一个独立且唯一的目录结构,Linux中每个分区都是组成整个文件系统的一部分
- Linux采用一种叫“载入” 的处理方法,它的整个文件系统包含了一整套的文件和目录,且将一个分区和目录联系起来,这时载入的一个分区将使它的储存空间在一个目录下获得
- Linux硬盘分为iDE和SCSI,目前基本是SCSI硬盘
磁盘情况查询
- df -l/-h:查询系统整体磁盘使用情况
- du (-h带计量单位,-s指定目录占用大小汇总,-a含文件 -maxdepth:子目录深度) :查询指定目录占用磁盘的情况
- 统计文件夹下文件的个数:ls -l /home | grep “^-” | wc -l
- 统计文件夹下文件夹的个数:ls -l /home | grep “^d” | wc -l
- 统计文件夹下文件及其子目录下文件的个数:ls -lR /home | grep “^-” | wc -l
- 统计文件夹下文件夹及其子目录的个数:ls -lR /home | grep “^d” | wc -l
- 以树状显示目录结构 yum install tree tree
网络配置
linux查看IP:ifconfig
windows查看IP:ipconfig
进程管理
- 在linux中,每个执行的程序都称为一个进程,每个进程都会被分配一个id号
- 每个进程都会对应一个父进程,这个父进程可以复制多个子进程
- 进程可能存在两种形式:前台(在屏幕上用户可以看到执行的进程)和后台(实际在操作,但用户无法看到)
- ps (-a 显示所有进程信息 -u以用户格式显示 -x:显示后台运行的参数):查看当前系统中正字执行的指令以及他们的执行情况
显示的参数:
- PID:进程id
- %CPU:CPU占用率
- %MEM:内存占用率
- VSZ:使用的虚拟内存
- RSS:使用物理内存的情况
- TTY:使用的终端(可能不可见)
- STAT:进程状态(S休眠。R运行,Z-僵死,D-等待)
- START:启动时间
- TIME:占用CPU的总时间
- COMMAND:进程执行时的命令行
指令:
- ps -aux |grep 名称 查找某个进程
- ps -ef:查看父进程,会显示出一个参数PPID,即父进程ID
- ps -ef | grep ssd :查看ssd(某个进程)的父进程
终止进程
若某一进程需要停止,或者已经消耗了很多进程资源,此时可以通过kill指令停止该进程
- kill支持通配符,匹配所有符合条件的进程
- killall 进程名(进程ID):杀死整个进程
- kill -9 强制终止某个进程
- pstree -p 树状显示进程的pid
- pstree -u 树状显示进程的用户id
服务管理
服务本质就是进程,但是运行在后台,通常会监听某个端口号,等待其他程序的请求
service管理指令:
- service 服务名 |start|stop|restart|reload|status
- CentOS7.0以后,用systemctl代替了service
- 用这种指令是临时生效,重启系统后还是会使用之前的配置
查看服务名:
- 使用setup——》系统服务 就可以看到
- ls -l/etc/init.d/查看系统有哪些服务
修改服务运行级别
- vi/etc.inittab
- 开机流程:开机 BIOS /boot init进程 运行级别 运行级别对应的服务
- chkconfig:给每个服务的各个运行级别设置自启动/关闭
- 查看服务:chkconfig --list|grep xxx(新版本是systemctl list-unit-files)
- chkconfig 服务名 -list
- chkconfig -level 服务名 on/off
进程的监控
- top 显示正在执行的进程,可以实时更新
- 进入top后的选项:[选项 -P 按CPU内存占用排序;-M:按内存使用率 -N:按PID;-q:退出 -u查看指定用户;-k杀死指定进程 -d [秒数]指定更新的空闲时间]
- netstat [选项:-an:按一定顺序输出 -p:查看哪个进程正在调用]:监控网络服务,可以用grep筛选要监听的sshd
[dos下] telnet ip端口 检测某个端口能否被访问
RPM 包管理
- rpm -qa|grep xx
- 参数:[-qa查询所有的包 -q 包名:查询是否安装改包 -qi 包名 查询包信息 -ql 软件包 包中所有的文件以及目录位置,-qf 路径 查找某个文件是属于那个包的]
- 返回的结果:包名称-版本-软件适用的操作系统和版本(其中noarch表示通用)
- 例如:pcsc-lite-libs-1.8.8-8.el7.x86_64
- rpm -e [-nodeps 无视其他包的依赖,强制删除] 包名称 卸载某个包
- rpm -[参数:i-安装 v-提示 h-进度条]
yum包管理
yum能够从指定的服务器上自动下载并获得软件包,并自动处理依赖关系,下载该包所有的依赖