1. Linux 的目录结构
Linux 的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
- /bin:存放着经常使用的命令。
- /sbin:存放的是系统管理员使用的系统管理程序。
- /home:存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般以用户的账号命名。
- /root:超级权限者的用户主目录。
- /lib:系统开机所需要的最基本的动态连接共享库,与 windows 里的 DLL 文件类似。
- /lost + found:默认为空,当系统非法关机后,这里就存放了一些文件。
- /etc:所有的系统管理所需要的配置文件和子目录
- /usr:用户的很多应用程序和文件都放在这个下,类似于 windows 下的 program files 目录。
- /boot:存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /proc:这是一个虚拟的目录,是系统内存的映射,访问这个目录来获取系统信息。
- /src:service 缩写,该目录存放一些服务启动之后需要提取的数据。
- /sys:安装了 2.6 内核中新出现的一个文件系统。
- /tmp:存放临时文件。
- /dev:类似于 windows 的设备管理器,把所有的硬件用文件的形式存储。
- /media:linux 系统会自动识别一些设备,例如 u 盘、光驱等等,当识别后,linux 会把识别的设备挂载到这个目录下。
- /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,可以将外部存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
- /opt:该主机额外安装软件所摆放的目录。如安装 ORACLE 数据库就可放到该目录下。默认为空。
- /usr/local:这是另一个给主机额外安装软件所安装的目录,一般是通过编译源码方式安装的程序。
- /var:习惯将经常被修改的目录放在这个目录下。包括各种日志文件。
- /selinux:类似360,是一种安全子系统它能控制程序只能访问特定文件。
2. vi 和 vim 的快速使用
三种模式:一般模式,插入模式,末行模式。
- 拷贝当前行 yy,拷贝当前行向下的 5 行 5yy,并粘贴 p。
- 删除当前行 dd,删除当前行向下的 5 行 5dd。
- 在文件中查找某个单词 [末行模式 /关键字 ,回车查找,输入 n 就是查找下一个]
- 设置文件的行号,取消文件的行号 [命令行下 :set nu 和 :set nonu]
- 到达文档最末行 G,最首行 gg。
- 撤销操作 u。
- 将光标移动到 20 行 shift+g.
3. 常用的关机&重启指令
- shutdown -h now :立刻关机
- shutdown -h 1 “1分钟,关机”:1 分钟后,关机
- shutdown -r now:立刻重启
- halt:立刻关机
- reboot:立刻重启
在重启和关机前,通常需要先执行:sync(把内存中的数据,写入磁盘)。
4. 用户管理操作
- 添加用户 xiaoming:
useradd xiaoming
- 添加用户 zhangsan 并指定家目录 /home/weishao :
useradd -d /home/weishao zhangsan
- 给 xiaoming 添加密码:
passwd xiaoming
- 删除用户 xiaoming,但保留家目录:
userdel xiaoming
(不保留家目录 -r) - 查询 root 信息:
id root
- 添加用户组 wudang:
groupadd wudang
- 添加一个用户 zwj,直接将他指定到 wudang:
useradd zwj -g wudang
- 将 zwj 用户修改到 shaolin:
usermod -g shaolin zwj
- 删除用户组 wudang:
groupdel wudang
(删除前确保该用户组无用户)
5. 指定运行级别
- 运行级别说明:
- 0:关机
- 1:单用户(类似安全模式,这个模式可以帮助我们找回 root 密码)
- 2:多用户状态没有网路服务。
- 3:多用户状态有网络服务(使用最多)
- 4:系统未使用保留给用户
- 5:图形界面
- 6:系统重启
常用的运行级别是 3 和 5,要修改默认的运行级别可改文件
如果要指定运行级别
/etc/inittab 的 id:5:initdefault: 这一行中的数字 命令:init [0123456] https 协议
应用实例
- 通过 init 切换到运行级别 3 :
init 3
- 切换到运行级别 5:
init 5
- 通过 init 切换到运行级别 3 :
- 如何找回 root 密码
启动时->快速输入enter->输入e-> 进入到编辑界面-> 选择中间有kernel 项->输入e(edit)-> 在该行的最后写入 1 [表示修改内核,临时生效]-> 输入enter->输入b [boot]-> 进入到单用模式 【这里就可以做补救工作】
6. more 指令,less 指令,head 指令,tail 指令
- more:more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。
- less:less指令用来分屏查看文件内容,在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。
- head:head用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容。
- 查看文件前 5 行内容:
head -n 5 文件
- 查看文件前 5 行内容:
- tail: tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。
- 实时追踪该文档的所有更新:
tail -f 文件
- 实时追踪该文档的所有更新:
7. 软链接和硬链接
软链接也成为符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径。
- 在/home 目录下创建一个软连接 linkToRoot,连接到 /root 目录:
**ln -s /root/ linkToRoot**
- 删除软连接 linkToRoot:
rm -rf linkToRoot
8. find 指令,grep 指令 和 管道符号
- find: find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
- 根据名称查找/home 目录下的hello.txt文件:
find /home -name hello.txt
- 查找/opt目录下,用户名称为 nobody的文件:
find /opt -user nobody
- 查找整个linux系统下大于10M的文件(+n 大于 -n小于 n等于):
find / -size +10M
- 根据名称查找/home 目录下的hello.txt文件:
- grep:grep 过滤查找 , 管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
- 请在 /etc/profile 文件中,查找 “if” 所在行,并且显示行号:
**grep -n if /etc/profile**
- 配合 管道 | 使用案例, 查看当前服务器有没有 sshd 服务在监听:
**netstat -anp | grep sshd**
- 请在 /etc/profile 文件中,查找 “if” 所在行,并且显示行号:
9. 常用压缩和解压缩
- gzip 和 gunzip 指令
- 将 /home下的 hello.txt文件进行压缩:
gzip helo.txt
- 将 /home下的 hello.txt.gz 文件进行解压缩:
gunzip hello.txt.gz
- 将 /home下的 hello.txt文件进行压缩:
- zip 和 unzip 指令
- 将 /home下的 所有文件进行压缩成 mypackage.zip:
**zip -r mypackage.zip /home/**
- 将 mypackge.zip 解压到 /opt/tmp 目录下:
**unzip -d /opt/tmp mypackage.zip**
- 将 /home下的 所有文件进行压缩成 mypackage.zip:
- tar 指令
- 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz:
**tar -zcvf a.tar.gz a1.txt a2.txt**
- 将myhome.tar.gz 解压到 /opt/tmp2目录下:
**tar -zxvf myhome.tar.gz -C /opt/tmp2**
- -c 产生.tar 打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -z 打包同时压缩 -x 解包.tar文件
- 压缩多个文件,将 /home/a1.txt 和 /home/a2.txt 压缩成 a.tar.gz:
10. 组管理和权限管理
- 使用root 创建一个文件apple.txt ,然后将其所有者修改成 tom:
chowm tom apple.txt
- 使用root用户创建文件 orange.txt ,然后将这个文件所在组,修改到 police组:
chgrp police orange.txt
- 请将 /home/abc.txt 文件的所有者修改成 tom:
chown tom /home/abc.txt
- 将home下的所有文件和目录的所有者都改成 tom,将所在组改成police:
chown -R tom:police /home/
- 请将 /home/kkk 目录下所有的文件和目录的所在组都修改成 shaolin(少林):
chgrp -R shaolin /home/kkk
11. 定时任务调度
- 任务调度:是指系统在某个时间执行的特定的命令或程序。
- 任务调度分类:
- 系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
- 进行定时任务的设置:crontab -e[编辑crontab定时任务] -i[查询crontab] -r[删除当前用户所有的crontab任务]
- 快速入门:
- 设置任务调度文件:/etc/crontab
- 设置个人任务调度,执行 crontab -e 命令,接着输入任务到调度文件,如:
/1 * * * * ls –l /etc/ > /tmp/to.txt
- 意思是每小时的每分钟执行 ls -l /etc/ > /tmp/to.txt 命令
- 实例:
- 每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate.log 文件中 :
1 * * * * date >> /tmp/mydate.log
- 每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate.log 文件中 :
12. Linux 磁盘分区
Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘,对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,比如sdb1 [表示第2块scsi 硬盘的第1个分区]
- 查看所有设备挂载情况:
lsblk
- 查询系统整体磁盘使用情况:
df -h
查询指定目录的磁盘使用情况,默认为当前目录:
du -h /目录
-s 指定目录占用大小汇总 -h:带计量单位 -a:含文件 —max-depth=1:子目录深度 -c:列出明细同时增加汇总值
- 查询 /usr目录的磁盘占用情况,深度为1:
du -ach --max-depth=1 /usr/
- 查询 /usr目录的磁盘占用情况,深度为1:
- 实用指令
- 统计/home文件夹下文件的个数:
ls /home/ | grep "^-" | wc -l
- 统计 /home 文件夹下目录的个数:
ls /home/ | grep "^d" | wc -l
- 统计 /home 文件夹下文件的个数,包括子文件夹里的:
ls -lR /home/ | grep "^-" | wc -l
- 以树状显示home目录结构:
tree /home/
- 统计/home文件夹下文件的个数:
13. Linux 的网络配置
- 配置 ip 地址:
vi /etc/sysconfig/network-script/ifcfg-eth0
- 配置主机名称:
vi /etc/udev/rules.d/70-persistent-net.rules
- 修改 linux 的主机映射文件:
vi /etc/syconfig/network
14. 进程管理
- 显示所有的进程:
ps -aux
- 查看 sshd 进程:
ps -aux | grep sshd
- 终止远程登录服务sshd, 在适当时候再次重启sshd服务:
kill -9 4352
service sshd restart
进程树 pstree :
- 查看进程树:
pstree
-p: 显示进程pid -u:显示进程的所属用户 - 请用树状的形式显示进程的pid:
pstree -p
- 请用树状的形式进程的用户id:
pstree -up
服务管理 :服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程。
- 查看当前防火墙的状况:
service iptables status
(临时生效)
chkconfig指令:通过 chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭
- 显示当前系统所有服务的各个运行级别的运行状态:
chkconfig --list
- 请查看 sshd 服务的运行状态:
chkconfig --list | grep sshd
- 将 sshd 服务在运行级别 5 下设置为不自动启动:
chkconfig --level 5 sshd off
- 当运行级别为5时,关闭防火墙:
chkconfig --level 5 iptables off
- 在所有运行级别下,开启防火墙:
chkconfig iptables on
动态监控进**程** :top在执行一段时间可以更新正在运行的的进程(默认每3秒变化一次)。
- 如何监视特定用户:输入 top 命令,查看执行的进程,然后输入 u 回车,再输入用户名,即可。
- 如何终止指定进程:输入 top 命令,查看执行的进程,然后输入 k 回车,再输入要结束的进程id号
- 指定系统状态更新的时间(每隔10秒更新):输入 top 后,再输入 d 回车。
- 查看内存占用情况,按占用内存大小排序:先按 top 命令然后按 大写的 M 键
- 查看系统的运行时间和平均负载:
uptime
或w
或top命令的第一行
- 每秒刷新一次获得当前的系统负载情况:
watch -n 1 uptime
监控网络状态 :查看系统网络情况 netstat -an: 按一定顺序排列输出 -p:显示哪个进程在调用
- 请查看服务名为 sshd 的服务的信息。:
netstat -anp | grep sshd
- 如果我们希望查看当前系统有哪些端口在监听:
netstat -tlnp
磁盘读写 :
- 查看当前系统进程的磁盘读写情况:
iotop
- 直接查看输出比较高的磁盘读写程序:
iotop -o
15. rpm 包 和 yum
rp**m 包** :一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。
- 查看所安装的所有 rpm 软件包:
rpm -qa
- 查看软件包是否安装:
rpm -q firefox
- 查询软件包信息:
rpm -qi file
- 查询软件包中的文件:
rpm -ql firefox
- 查询文件所属的软件包:
rpm -qf /etc/passwd
- 卸载软件包:
rpm -e firefox
- 注意:如果其他软件包依赖于要卸载的,则卸载时会产生错误。 强制删除:
rpm -e --nodeps firefox
- 注意:如果其他软件包依赖于要卸载的,则卸载时会产生错误。 强制删除:
- 安装 rpm 包:
rpm -ivh firefox
i:安装 v:提示 h:进度条
yum 的使用 :是一个 Shell 软件包管理器,基于 rpm 包管理,能够从指定的服务器自动下载 rpm 包并且按照,可以自动处理依赖性关系,并且一次按照所有依赖的软件包。
- 查询 yum 服务器是否有需要按照的软件:
yum list || grep xx软件列表
- 安装 firefox:
yum install firefox