Linux
Linux
系统目录结构
- /
- /bin 存放最常使用的命令
- /sbin s为super user,存放系统管理员使用的系统管理程序
- /home 存放普通用户的主目录
- /alice
- /bob
- /eve
- /root 系统管理员的用户主目录
- /lib 动态链接共享库
- /lost+found 系统非法关机后存放一些文件,一般为空
- /etc 配置文件和子目录
- /user 应用程序和文件存放目录
- /local 给主机额外安装软件所安装的目录
- /boot 启动Linux使用的一些核心文件,包括一些链接文件及镜像文件
- /proc 系统内存的映射
- /srv service,服务启动之后需要提取的数据
- /sys
- /tmp 存放临时文件
- /dev 把所有**硬件(device)**用文件的形式存储
- /media 把识别的设备(如U盘,光驱等)挂载到此目录下
- /mnt 让用户临时挂载别的文件系统,可以将外部存储挂载在/mnt/上
- /opt 给主机额外安装软件所摆放的目录
- /var 存放不断被扩充的内容,包括各种日志文件
- /selinux security-enhanced linux 安全子系统
系统重要文件
系统网卡配置文件
文件路径
系统网卡文件默认名称 /etc/sysconfig/network-scripts/ifcfg-ens33
系统网卡文件常用名称 /etc/sysconfig/network-scripts/ifcfg-eth0
文件介绍
这是Linux系统第一块网卡的配置文件所在路径,其中第一块网卡配置文件的结尾标识为eth0(ens33),第二块为eth1(ens34),以此类推
执行 nmtui 命令来修改网卡配置时,实际上是在编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 这个文件
文件信息
TYPE=Ethernet
-- 上网类型,目前都是以太网
BOOTPROTO=none
-- 启动协议,获取配置方式,有none|bootp|dhcp三种配置
DEFROUTE=yes
-- 使用默认路由(可以保证主机正常访问互联网)
NAME=eth0
-- 第一块网卡的逻辑别名,第二块为eth1
UUID=xxxxxxxxxxxxxx
-- 通用唯一标识码
ONBOOT=yes
-- 保证下次开机启动时激活网卡设备
IPADDR=10.0.0.0
-- IP地址
PREFIX=24
-- 子网掩码数,这里是24位
GATEWAY=10.0.0.254
-- 网关地址
DNS1=223.5.5.5
DNS2=223.6.6.6
-- 主DNS,默认覆盖以及优先于/etc/resolv.conf的配置生效
文件生效
-
重启网络服务,使所有网卡的配置文件生效
systemctl restart network or service restart network
-
只需让单独的ethX网卡配置生效
#常规用法 ifdown eth0 && ifup eth0 ## && 前一条命令操作成功后,操作后一条命令 #扩展用法 nmcli con down eth0 && nmcli con up eth0
域名解析文件
DNS客户端配置文件
path /etc/resolv.conf
负责将网站域名解析为对应的IP地址
nameserver 223.5.5.5
nameserver 223.6.6.6
-- 表明DNS服务器的IP地址
-- 查询时按照nameserver在本文件的顺序进行,且只有当第一个nameserver没有反应时,才查询下面的nameserver
DNS客户端解析文件
path /etc/hosts
此文件设定IP与域名的对应解析表
127.0.0.1 xxx.com
系统主机名称配置文件
path /etc/hostname
此文件为CentOS7系统主机名称的永久配置文件,可以实现主机名称的修改调整
name.linux
需要重新启动,才能使配置生效
变量配置文件
文件路径
# 全局配置文件
/etc/profile
/etc/bashrc
# 局部配置文件
~/.bash_profile
~/.bashrc
文件介绍
系统变量,系统环境变量,以及系统别名功能进行永久配置生效的文件
全局配置文件:对系统中所有用户生效
局部配置文件:对系统中指定用户生效
文件加载的优先顺序
- 用户家目录中的.bash_profile
- 用户家目录中的.bashrc
- /etc/bashrc
- /etc/profile
文件生效
-
重新连接系统主机
-
操作命令
source /etc/profile or . /etc/profile
设置变量
# 普通变量
name = Linux
变量名 = 变量值
# 环境变量
export NAME = Linux
声明 变量名 = 变量值
注:只有编辑配置文件才会永久生效,以上的操作方法是临时生效
调用变量
# 普通变量
echo $NAME
# 环境变量
env
or
set
系统别名配置
系统中的别名就是将比较复杂或参数信息繁琐的命令,进行简化输入的方式
- 将危险的命令加一些保护参数,防止误操作
- 将很多复杂的字符串或命令变为一个简单的字符串或命令
设置系统别名
# 临时配置别名
alias ipinfo01='grep "IPADDR" /etc/sysconfig/network-scripts/ifcfg-eth0'
# 永久配置别名
将上面的信息配置在环境变量配置文件中
# 临时取消别名功能
# 1. 使用绝对路径执行命令
/bin/cp xx xx
# 2. 使用转义符来执行命令
\cp xx xx
# 永久取消别名功能
unalias ipinfo01
信息提示文件
登录终端前的信息提示
path:/etc/issue /etc/issue.net
此文件的作用是显示用户登录真实终端前的提示信息
企业环境中为了防止服务器版本泄露,一般会将其中的内容情况
登录终端后的信息提示
path:/etc/motd
系统内核配置文件
path:/etc/sysctl.conf
设置Linux内核参数,可以用来替代系统默认运行的内核参数,让系统运行得更高效
查看文件内容
sysctl -a
文件生效
sysctl -p
日志文件存放目录
path:/var/log
此目录包含了记录系统及软件服务运行的日志文件,可以知道系统的运行情况以及故障原因
目录信息
-
/var/log/message
默认日志文件,系统及服务运行故障时,可以查看这个文件获取故障信息
-
/var/log/secure
系统安全的日志文件,会记录“谁,什么时候,从哪,登录系统,是否成功”
-
/var/log/dmesg
硬件及系统内核出现问题时,可以查看这个日志文件
系统硬件信息加载与存放目录
path:/proc
目录信息
-
/proc/cpuinfo
# 当前CPU信息文件(cat /proc/cpuinfo or lscpu) physical id :0 -- cpu个数 cpu cores :1 -- 一个cpu的核数
-
/proc/meminfo
# 当前内存信息(cat /proc/meminfo or free) MemTotal: xxx kB -- 系统总内存容量 MemAvailable: xxx kB -- 系统可用内存容量
-
/proc/loadavg
# 当前系统的平均负载情况(cat /proc/loadavg or uptime) 0.00 0.01 0.05 2/114 1680 -- 前三个数字分别是1,5,15分钟内的平均进程数 -- 分子是正在运行的进程数,分母是进程总数 -- 最近运行的进程ID
用户登录后执行脚本所在目录
path:/etc/profile.d/
加载系统登录程序的目录,也是用户登录后执行的脚本所在的目录,目录内的程序以文件的形式存在(一般以sh为扩展名)
远程操作
远程登录 - XShell
需要Linux启用SSHD服务,该服务会监听22端口
上传下载 - XFtp
vi和vim编辑器
三种常见模式
- 正常模式
- #vim xxx 使用vim打开一个文件时默认模式,也叫命令模式,允许用户通过各种命令浏览代码、滚屏等操作
- 插入/编辑模式
- 使用vim打开一个文件时默认模式,也叫命令模式,允许用户通过各种命令浏览代码、滚屏等操作
- 命令模式
- 在普通模式下,先输入冒号:,接着输入命令,就可以通过配置命令对vim进行配置了,如改变颜色主题、显示行号等
- 可视化模式
- 在普通模式下敲击前盘上的 v 键,就进入可视化模式,然后移动光标就可以选中一块文本,常用来完成文本的复制、粘贴、删除等操作
- 替换模式
- 如果我们想修改某个字符,不需要先进入插入模式,删除,然后再输入新的字符,直接在普通模式下,敲击R键就可以直接替换
vim命令
光标移动命令
-
单个字符移动
- h:左移
- l:右移
- j:下移
- k:上移
- xh:左移x个字符
-
单词移动
- w:光标移动到下个单词的开头
- b:光标移动到前一个单词的开头
- e:光标移动到下一个单词的末尾
- E:移动到单词的结尾
- ge:移动到上个单词的词末
- 2w:指定移动的次数
-
行移动
- $:光标移动到当前行的行末
- :set list 打开末尾行号$
- 0:光标移动到当前行的行首
- ^:光标移动到当前行的第一个非空字符
- 2|:移动到当前行的第2列
- fx:光标移动到当前行的第1个字符x上
- 3fx:光标移动到当前行的第3个字符x上
- tx:光标移动到目标字符x的前一个字符上
- fx和tx可以通过 ; 和 , 进行重复移动,一个正向一个反向
- %:用于符号间的移动,它会在一对括号间跳跃
- $:光标移动到当前行的行末
-
文本块移动:
- (: 移到当前句子的开头
- ): 移到下一个句子的开头
- {: 移到当前一段的开头
- }: 移到下一段的开头
- [[: 移到当前这一节的开头
- ]]: 移到下一节的开头
-
在屏幕中移动
- xG: 跳转到指定的第x行,G移动到文件按末尾,``(2次单引号)返回到跳转前的位置
- gg: 移动到文件开头
- x%: 移动到文件中间,就使用50%
- H: 移动到home
- M: 移动到屏幕中间
- L: 移动到一屏末尾
-
ctrl+G: 查看当前的位置状态
滚屏与跳转
- 半屏滚动: ctrl+u/ctrl+d
- 全屏滚动: ctrl+f/ctrl+b
- 定位光标的位置
- zz: 将光标置于屏幕的中间
- zt: 将光标移动到屏幕的顶部
- zb: 将光标移动到屏幕的底部
- 设置跳转标记
- mx,my,mz设置三个位置
x,
y,`z跳转到设置
文本插入操作
- i: 在当前光标的前面插入字符
- a: 在当前光标的后面追加字符
- o: 在当前光标的下一行行首插入字符
- I: 在一行的开头添加文本
- A: 在一行的结尾处添加文本
- O: 在光标当前行的上一行插入文本
- s: 删除当前光标处的字符并进入到插入模式
- S: 删除光标所在处的行,并进入到插入模式
- u: 撤销修改
文本删除操作
- 字符删除
- x: 删除当前光标所在处的字符
- X: 删除当前光标左边的字符
- 单词删除
- dw: 删除一个单词(从光标处到空格)
- daw: 无论光标在什么位置,删除光标所在的整个单词(包括空白字符)
- diw: 删除整个单词文本,但是保留空格字符不删除
- d2w: 删除从当前光标开始处的2个单词
- d$: 删除从光标到一行末尾的整个文本
- d0: 删除从光标到一行开头的所有单词
- dl: 删除当前光标处的字符=x
- dh: 删除当前光标左边的字符=X
- 行删除
- dd: 删除当前光标处的一整行=D
- 5dd: 删除从光标开始处的5行代码
- dgg: 删除从光标到文本开头
- dG: 删除从光标到文本结尾
- 行合并
- J: 删除一个分行符,将当前行与下一行合并
文本复制、剪切与粘贴
- y: 复制,p:粘贴
- yw: 复制一个单词
- y2w: 复制2个单词
- y$: 复制从当前光标到行结尾的所有单词
- y0: 复制从当前光标到行首的所有单词
- yy: 复制一整行
- 2yy: 复制从当前光标所在行开始的2行
- p : 粘贴
- 复制文本块
- 首先进入visual模式:v
- 移动光标选择文本
- 复制与粘贴的操作
文本的修改与替换
- cw: 删除从光标处到单词结尾的文本并进入到插入模式
- cb: 删除从光标处到单词开头的文本并进入到插入模式
- cc: 删除一整行并进入到插入模式
- ~: 修改光标下字符的大小写
- r: 替换当前光标下的字符
- R: 进入到替换模式
- xp: 交换光标和下一个字符
文本的查找与替换
- /string 正向查找
- /string\c 查找且忽略大小写
- :set ic 开启忽略大小写功能
- :set noic 取消忽略大小写
- ?string 反向查找
- 设置高亮显示
- :set hls
- :set noh 取消高亮
- *按键将当前光标处的单词高亮显示,使用n浏览下一个查找高亮的结果
- :s/old/new 将当前行的第一个字符串old替换为new
- :s/old/new/g 将当前行的所有字符串old替换为new
- :90s/old/new/g 将指定行的所有字符串old替换为new
- :90,93s/old/new/g 将指定范围的行的所有字符串old替换为new
- :%s/old/new/g 将文本中所有的字符串old替换为new
- :%s/old/new/gc 依次替换每个字符串关键字
- :%s/^struct/int/g 将所有以struct开头的字符串替换为int
撤销修改、重做与保存
- u: 撤销上一步的操作。
- Ctrl+r: 将原来的插销重做一遍
- U: 恢复一整行原来的面貌(文件打开时的文本状态)
- q: 若文件没有修改,直接退出
- q!: 文件已经被修改,放弃修改退出
- wq: 文件已经被修改,保存修改并退出
- e!: 放弃修改,重新回到文件打开时的状态
编辑多个文件
文件和缓冲区的区别:
文件是保存在磁盘上的,而打开的文件的文件是在内存中,在内存中有一个缓冲区,用来存放打开的文件。vim每次打开文件时都会创建一个缓冲区,vim支持打开多个文件
- :buffers 查看缓冲区列表==ls
- :buffer N 根据缓冲区列表的编号跳转到指定缓冲区
- :bnext/bprev 遍历缓冲区列表
- :bfirst/blast 分别调到缓冲区列表的开头和结尾
- :write 将缓冲区的修改保存到磁盘上
- :edit! e! 放弃缓冲区的修改,恢复到文件打开时的状态
- :edit file 编辑另一个文件
- :wnext 保存当前缓冲区的修改并跳转到缓冲区列表中的下一个文件
- :set autowrite
标签页与折叠栏
- 标签页的新建:tabedit file/tab split
- 标签页的切换: tabn/tabp
- 按键:gt/gT
- 标签页的关闭:tabclose
- 关闭当前的标签页: tabonly
- 创建一个折叠:zf200G:将光标和200行之间的代码折叠起来
- 折叠的打开与关闭
- za: 打开和关闭折叠
- zr/zm: 一层一层地打开和关闭折叠
- zR/zM: 分别打开和关闭所有的折叠
- 折叠键的光标移动
- zj: 跳转到下一个折叠处
- zk: 跳转到上一个折叠处
- 删除折叠
- zd: 删除光标下的折叠
- zD: 删除光标下的折叠以及嵌套的折叠
- zE: 删除所有的折叠标签
- 创建的折叠当退出vim之后就失效了。
多窗口操作
- 分割窗口
- split/vsplit filename
- 窗口间跳转
- ctrl+w hjkl
- ctrl+w w
- 移动窗口
- ctrl+w HJKL
- 调整窗口尺寸
- ctrl+w +/- 调整窗口的高度
- ctrl+w </> 调整窗口的宽度
- ctrl+w = 所有的窗口设置相同的尺寸
- :resize n将当前窗口尺寸调整为N行
- 关闭窗口
- close: 关闭一个窗口
- qall: 退出所有窗口
- qall!: 放弃修改,退出所有窗口
- wqall: 保存并退出所有窗口
- wall: 保存所有窗口
关机重启
- shutdown
- shutdown -h now: 立即关机
- shutdown -h 1: 一分钟后关机
- shutdown -r now: 立即重启
- shutdown -c:取消正在执行的shutdown命令
- halt:关机
- reboot:重启
- sync:关机和重启时,先执行sync,将内存的数据写入磁盘
用户管理
家目录
/home/目录下有各个用户对应的家目录,登陆后会自动进入自己的家目录
指令
添加用户
useradd [选项] usename
创建用户成功后,会自动创建和用户同名的家目录,也可以通过useradd -d 指定目录 username
指定家目录
指定密码
passwd username // 给username修改密码
删除用户
userdel username // 删除用户但保留家目录
userdel -r username // 删除用户及家目录,一般不删家目录
查询用户信息
id username
切换用户
su - username
权限高切到权限低无需密码,反之需要,返回原来用户使用exit指令
查看当前用户
whoami/who am i
用户组
系统可以对有共性的多个用户进行统一管理
增加组
groupadd groupname
删除组
groupdel groupname
增加用户时指定组
useradd -g groupname username
修改用户的组
usermod -g groupname username
用户和组的相关文件
/etc/passwd
用户配置文件,记录用户的各种信息
每行的含义:用户名(username):口令(passwd):用户标识号(uid):组标识号(gid):注释性描述:主目录(家目录):登录shell
/etc/shadow
口令配置文件
每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group
组配置文件
每行含义:组名:口令:组标识号(gid):组内用户列表
组管理
查看文件/目录所在组
ls -ahl
修改文件所有者
chown user file
修改文件所在组
chgrp group file
权限
基本介绍
- 第0位确定文件类型
- 第1-3位确定所有者的权限
- 第4-6位确定所属组的权限
- 第7-9位确定其他用户的权限
文件的类型
-
- 普通文件
- d 目录
- l 软链接
- c 字符设备
- d 块文件,硬盘
文件的权限
- r 读,可以读取查看文件或目录内容
- w 写,可以修改文件(不代表可以删除文件),目录内可以创建删除重命名目录
- x 执行,可以被执行/可以进入该目录
文件的硬链接数或目录的子目录个数
文件所有者
文件所在组
文件的大小
如果是目录,则为4096
最后修改时间
修改权限 - chmod
- - =
// u所有者,g所有组,o其他人,a所有人 chmod u=rwx,g=rx,o=x 文件/目录名 chmod o+w 文件/目录名 // 增加权限 chmod a-x 文件/目录名 // 删除权限
- 通过数字变更权限
规则:r=4,w=2,x=1
chmod 751 name 相当于 chmod u=rwx,g=rx,o=x
修改文件所有者
chown newowner file chown newowner:newgroup file -R 如果是目录,则使其下所有子文件或目录递归生效
修改文件所在组
chgrp newgroup file -R 如果是目录,则使其下所有子文件或目录递归生效
命令行快捷键
最常用的快捷键
- tab:命令,路径,以及文件信息等的补全
移动光标
- ctrl A :光标回到行首
- ctrl E :光标回到行尾
- ctrl 方向键右 :以字符串为单位向右快速移动光标
- ctrl 方向键左 :以字符串为单位向左快速移动光标
剪切、粘贴、清除
- ctrl K :剪切(删除)光标处到行尾的字符
- ctrl U :剪切(删除)光标处到行首的字符
- ctrl W:剪切(删除)光标前的一个单词
- ctrl Y:粘贴剪切删除的文本
系统管理控制
- ctrl C :中断终端正在执行的任务 或者 取消整行命令的输入
- ctrl L :清除屏幕上的所有内容,相当于clear
- ctrl D :退出当前shell命令行
- ctrl Z :暂停执行在终端运行的任务
- ctrl S :锁定终端,使之无法输入内容
- ctrl Q :解锁ctrl s的锁定
重复执行命令
- ctrl R :搜索命令行使用过的命令
- Esc . :获取上一条命令的最后部分(空格分隔)
命令
命令语法格式:
- 中括号[]表示可选
- 参数选项表示使用一个命令的具体功能
- 命令,参数选项和文件路径之间至少要有一个空格
命令 [参数选项] [文件或路径]
// rm -f /tmp/test.txt
Linux运行级别
- 0:关机
- 1:单用户(找回密码)
- 2:多用户无网络服务
- 3:多用户有网络服务
- 4:保留
- 5:图形界面
- 6:重启
系统运行级别的配置文件/etc/inittab
命令:init [0123456]
切换到指令运行级别
找回root密码
进入单用户模式,修改root密码,因为进入单用户模式,root无需密码即可登录
帮助指令
- man
man [命令或配置文件]
- help
help 命令
-
history
查看已经执行的历史命令,也可以执行历史命令
history //查看所有执行过的指令 ! num //执行history中编号为num的指令
文件目录指令
- pwd
print working directory 显示当前工作目录的绝对路径
-
ls
查看目录的内容信息
- -a:显示当前目录所有文件和目录(包括隐藏的)
- -l:以列表的方式显示信息
- -h:查看所有者
ls [选项] [目录/文件]
-
cd
切换目录 cd [参数]
- cd ..:回到当前目录的上一级目录
- cd ~ 或者 cd :回到自己的家目录
-
mkdir
创建目录
mkdir [选项] 目录名 // 创建多个有规则的目录 mkdir test{1..3} // mkdir test1 test2 test3
-p :创建多级目录
-
rmdir
删除空目录
- -r 递归删除 (删除目录时必带参数,默认rm只能删除文件)
- -f 强制删除,不需要确认
rmdir [选项] 要删除的目录
-
touch
创建空文件
touch 文件名
-
cp
拷贝文件到指定目录
- -r 递归复制整个文件夹
- -p 复制时保存源文件的所有者,权限,以及时间等信息
cp [选项] source dest
-
rm
移除文件或目录
- -r:递归删除整个文件夹
- -f:强制删除
rm [选项] 要删除的文件或目录
-
mv
移动文件和目录或者重命名
- -f : 若目标文件已存在,则不询问直接覆盖
- -n:不覆盖已经存在的文件(安全)
- -t :指定mv的目标目录,移动多个文件到一个目录
mv oldName newName //重命名 mv file path //移动文件(优先级高于重命名) mv -t path file1 file2 //移动多个文件
查看文件内容
-
cat
查看文件内容
cat [选项] 要查看的文件
- -n: 显示行号
- -b: 显示行号,但忽略空行
- -s :连续两行以上的空行,替换为一行空白行
- -E :在每一行的行尾显示$符号
-
more
基于vi编辑器的文本过滤器,以全屏幕的方式按页显示文本文件的内容
内置快捷键
- space:向下翻一页
- Enter:向下翻一行
- q:退出more
- b:返回上一屏
- v:调用vi编辑器
-
less
用来分屏查看文件的内容,显示文件内容时并不一次将整个文件加载,而是根据显示需要加载内容
内置快捷键
- space:向下翻一页
- [pagedown]:向下翻一页
- [pageup]:向上翻一页
- q:退出
-
>和»
> 输出重定向,» 追加
ls -l >filename // 将ls -l这个指令显示的内容,覆盖到文件中
ls -l >>filename //将指令显示的内容,追加到文件末尾
-
echo
输出内容到控制台
- -n: 不要自动换行
echo [选项] [输出内容]
- head
用于显示文件的开头部分内容
head file 查看文件前10行内容
head -n 5 file 查看文件前5行内容
- tail
输出文件中尾部的内容
tail file 查看文件后10行内容
tail -n 5 file 查看文件后5行内容
tail -f file 实时追踪文档的所有更新
- ln
软连接,相当于快捷方式
ln -s [原文件或目录] [软链接名] // 创建软链接
rm -rf 软链接名 // 删除软链接
时间日期类
- 显示时间
date 显示当前时间 date +%Y 显示年份 date +%m 显示月份 date +%d 显示天 date “+%Y-%m-%d %H:%M:%S” 显示2022-4-9 20:05:00
- 设置日期
date -s 字符串时间
- cal
查看日历
cal [选项]
搜索查找
-
find
find指令将从指定目录向下递归的遍历各个目录,将满足条件的文件或目录显示在终端
- -name<查询方式> 按照指定的文件名查找文件
- -user<用户名> 查找属于指定用户名的所有文件
- -size<文件大小> 根据文件大小查找文件
find [搜索范围] [选项]
-
locate
快速定位文件路径,利用事先建立的系统中所有文件名以及路径的locate数据库实现快速定位给定的文件
updatedb //创建locate数据库 locate file //搜索文件
-
grep
过滤查找,可用于文件信息处理,可以使用正则表达式
grep [选项] [pattern] [file]
- -n 显示匹配的行及行号
- -i 忽略字母大小写,默认区分大小写
- -v 排除pattern对应的信息
- -w 以单词为单位进行过滤
压缩和解压
- gzip和gunzip
gzip file 压缩文件为*.gz文件 gunzip *.gz 解压文件
- zip
zip [选项] name.zip 压缩文件 -r 递归压缩,即压缩目录
- unzip
unzip [选项] name.zip 解压文件 -d<目录>,指定解压后文件的存放目录
-
tar
打包指令,最后打包的文件时.tar.gz文件
tar [选项] name.tar.gz 打包的内容
- -c 产生.tar打包文件
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z 打包同时压缩
- -x 解包.tar文件
任务调度
指系统在某个时间执行的特定命令或程序
任务分类
- 系统工作:有些工作需要周而复始的进行,如病毒扫描
- 个别用户工作:个别用户可能希望按时执行某些程序,如数据库备份
命令
crontab [选项]
- -e 编辑crontab定时任务
- -l 查询crontab任务
- -r 删除当前用户所有的crontab任务
参数说明
*/1**** ls -l /etc » /tmp/test.txt
设置每分钟执行一次,遍历目录并将详细信息写入/tmp/test.txt中
五个*
占位符的含义
- 先编写一个文件 /home/mytask.sh:date»/tmp/mydate
- 给mytask.sh一个可执行权限(chmod 744 /home/mytask.sh)
- crontab -e
- */1**** /home/mytask.sh
磁盘分区
分区
- mbr分区
- 最多支持四个主分区
- 系统只能按照在主分区
- 扩展分区要占一个主分区
- MBR最大支持2TB,但兼容性良好
- gtp分区
- 支持无限多个主分区(但操作系统可能限制,windows下最多128个分区)
- 最大支持18EB容量(EB = 1024PB,PB=1024TB)
- windows7 64位以后支持gtp
Linux分区原理
- Linux无论几个分区,分给哪一目录使用,总之它只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分
- Linux采用一种叫"载入"的处理方法,它的整个文件系统包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得 ###硬盘说明
- Linux硬盘分IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘
- 对于IDE硬盘,驱动器标识符为"hdx~",其中"hd"表示分区所在设备类型,“x"表示盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),"~“代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区
- 对于SCSI硬盘则标识为"sdx~",SCSI硬盘用"sd"来表示分区所在设备的类型的,其余同IDE硬盘
查看分区和挂载指令
lsblk -f
添加一块新硬盘
- 虚拟机添加硬盘
- 分区
分区命令: fdisk /dev/sdb
开始对/sdb分区:
- m 显示命令列表
- p 显示磁盘分区,同fdisk -l
- n 新增分区
- d 删除分区
- w 写入并退出
- 格式化 mkfs -t ext4 /dev/sdb1
- 临时挂载(重启后挂载取消)
- 挂载:mount 设备名称 挂载目录
- 卸载:umount 设备名称或挂载目录
- 设置自动挂载(永久挂载) vim /etc/fsta /dev/sdb1 /home/newdisk ext4 defaults 0 0 mount -a 使修改生效
磁盘情况查询
查询系统整体磁盘使用情况
df -h
查询指定目录的磁盘占用情况
du -h /目录 //默认为当前目录
- -s 指定目录占用大小汇总
- -h 带计量单位
- -a 含文件
- –max-depth=1 子目录深度
- -c 列出明细的同时,增加汇总值
目录统计
- 统计/home文件夹下文件的个数
ls -l /home | grep “^-” | wc -l
- 统计/home文件夹下目录的个数
ls -l /home | grep “^d” | wc -l
- 统计/home文件夹及其子文件夹下的文件个数
ls -lR /home | grep “^-” | wc -l
- 以树状显示目录结构
tree [option] [目录]
- -a: 显示所有文件,包括隐藏文件
- -d: 只显示目录结构中的目录
- -L:遍历目录的最大层数,level为大于0的正整数
网络配置
测试连通性
ping 目的主机
网络环境配置
1. 自动获取
2. 指定固定ip
直接修改配置文件来指定IP,并可以连接到外网
vi /etc/sysconfig/network-scripts/ifcfg-eth0
//ONBOOT=yes
//BOOTPROTO=static 以静态方式获取ip
//IPADDR 指定ip地址
//GATEWAY 网关
//DNS dns和网关保持一致即可
//重启网络服务
service network restart 或者 reboot
进程管理
显示系统执行的进程
ps -aux ps -aux | grep xxx ps -ef
- -a:显示当前终端所有进程信息
- -u:以用户的格式显示进程信息
- -x:显示后台进程运行的参数
- -e:显示所有进程
- -f:全格式
字段
- USER:用户
- PID:进程id
- PPID:副进程
- %CPU:占用cpu情况
- %MEM:占用内存情况
- VSZ:占用虚拟内存情况
- RSS:占用物理内存情况
- TTY:使用的终端
- STAT:进程运行的状态(s休眠,r运行)
- START:启动时间
- TIME:占用CPU的总时间
- COMMAND:进程执行时的命令行
终止进程
kill [选项] 进程号 //通过进程号杀死进程 killall 进程名称 //通过进程名称杀死进程,支持通配符
-9:强迫进程立即停止
查看进程树
pstree [选项]
- -p:显示进程的pid
- -u:显示所属用户
服务管理
服务本质就是进程,但是运行在后台,通常都会监听某个端口,等待其他程序的请求,如mysql,sshd,iptables(防火墙)等,因此又称为守护进程
service管理指令
service 服务名 [start | stop | restart | reload | status]
查看服务名
- setup -> 服务名称
- ls -l /etc/init.d/
服务的运行级别
vi /etc/inittab //查看或者修改默认级别
chkconfig指令
通过chkconfig命令可以给各个运行级别的每个服务设置自启动/关闭
chkconfig –list | grep xxx chkconfig 服务名 –list chkconfig –level 5 服务名 on/off
动态监控进程
top与ps命令相似,但top在执行一段时间后可以更新正在运行的进程
top [选项] k //输入pid杀死进程 u //查看某个用户的进程 P //按照CPU使用率排序(默认) M //按照内存的使用率排序 N //以PID排序 q //退出top
- -d:秒数,指定top命令每隔几秒更新,默认为3
- -i:使top不显示任何闲置或僵死进程
- -p:通过指定监控进程id来仅仅监控某个进程的状态
监控网络状态
netstat [选项]
- -an:按一定顺序排列输出
- -p:显示哪个进程在调用
软件包管理
RPM包
一种用于互联网下载包的打包及安装工具,生成具有.RPM扩展名的文件,RPM使RedHat Package Manager的缩写,相当于windows的setup.exe
RPM包的查询指令
rpm -qa //查询已安装的所有rpm软件包 rpm -q 软件包名 //查询软件包是否安装 rpm -qi 软件包名 //查询软件包信息 rpm -ql 软件包名 //查询软件包中的文件 ron -qf 文件全路径名 //查询文件所属的软件包
rpm包名的基本格式
firefox-45.0.1-1.el6.centos.x86_64.rpm
- 名称:firefox
- 版本:45.0.1-1
- 适用操作系统:el6.centos.x86_64
卸载rpm包
rpm -e rpm包名 //如果其他包依赖于要卸载的包,则报错 rpm -e –nodeps rpm包名 //强制删除
安装rpm包
rpm -ivh rpm包全路径名称
- i:install
- v:verbose 提示
- h:hash 进度条
yum
yum是一个shell前端软件包管理器,基于rpm包管理,能够从指定的服务器自动下载rpm包并安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包
基本指令
yum list | grep xx //查询yum服务器是否有需要安装的软件
yum install xxx //安装指定yum包
软件安装查看
rpm -qa httpd
-- 查看指定软件程序是否已经成功安装
rpm -ql httpd
-- 查看指定软件安装的所有数据信息
rpm -qc httpd
-- 查看指定软件安装后的配置文件
which httpd
-- 查看命令的绝对路径
rpm -qf `which httpd`
-- 查看指定操作命令或文件数据属于哪个安装包
注:利用rpm命令只能查看rpm和yum方式安装的程序
JAVAEE开发
安装JDK
- 将软件通过 xftp 上传到/opt
- 解压缩到 /opt
- 配置环境变量的配置文件 vim /etc/profile
- JAVA_HOME = /opt/jdk1.7
- PATH = /opt/jdk1.7/bin:$PATH
- export JAVA_HOME PATH
- 注销用户后生效
tomcat安装
- 解压缩到 /opt
- 进入tomcat的bin目录,启动tomcat ./startup.sh
- 开放端口8080 使外网可以访问tomcat
- vim /etc/sysconfig/iptables
- -A INPUT -m state NEW -m tcp -p tcp –dport 8080 -j ACCEPT
- 重启防火墙
Eclipse安装
- 解压缩到 /opt
- 启动eclipse 配置jre和server
- 编写测试程序
mysql的安装
- 卸载旧版本
- rpm -qa | grep mysql 检查是否安装有mysql
- rpm -e mysql
- 安装编译代码需要的包
- yum -y install make gcc-c++ cmake bison-devel ncurses-devel
- 下载并解压mysql
- 进入MySQL
- cd mysql
- 编译安装
- cmake -DCMAKE_INSTALL_PREFIX=/user/local/mysql
- -DMYSQL_DATADIR=/user/local/mysql/data -DSYSCONFDIR=/etc
- -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
- -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1
- -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306
- -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1
- -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8
- -DDEFAULT_COLLATION=utf8_general_ci
- mark && make install
- 配置mysql
- 设置权限
- cat /etc/passwd 查看用户列表
- cat /etc/group 查看用户组列表
- 如果没有就创建
- groupadd mysql
- useradd -g mysql mysql
- 修改/user/local/mysql权限
- chown -R mysql:mysql /user/local/mysql
- 设置权限
- 初始化配置
- 进入安装路径 cd /user/local/mysql/
- scripts/mysql_install_db –basedir=/usr/local/mysql –datadir=/user/local/mysql/data –user=mysql
- 启动mysql
- 进入 /user/local/mysql
- cp support -files/mysql.server /etc/init.d/mysql
- chkconfig mysql on
- service mysql start
- 修改root密码
- cd /user/local/mysql/bin
- ./mysql -uroot
- SET PASSWORD = PASSWORD(‘root’);