Linux笔记
1.了解linux
(1)操作系统
(2)开源(开放源代码)
(3)免费
(4)品质好,低成本
为什么学习Linux
(1)稳定且效率比较高
(2)多用户多任务
(3)更加安全文件、用户策略
(4)可移植性好
Redhat红帽
Centos社区企业操作系统
Ubuntu(乌班图):拥有出色的桌面系统
[if !vml]
[endif]
打开linux虚拟机
vmware>文件>打开(选中CentOS 64 位演示.vmx),导入后启动虚拟机即可
登录Linux系统
用户名:root 密码:123456
[if !vml]
[endif]
输入登记密码时界面上看不到任何字符,正常输入后按Enter即可
root: 当前登录的用户名
localhost:主机名
~ :当前所在的目录,此处为“家”目录
Linux内核官方下载网站:https://www.kernel.org/
安装Xshell(第三方linux管理工具)
打开Xshell,连接到Linux
新建》
[if !vml][endif][if !vml]
[endif]
[if !vml][endif][if !vml][endif][if !vml]
[endif]
[if !vml]
[endif]
点击“连接”,输入正确的用户名和密码即可成功连接到Linux中
Linux命令结构:
命令名称 【命令参数】【命令对象】
注意,它们之间要有空格隔开
命令参数:采用长格式--或者短格式-
man –-help (长格式)
man -h (短格式)
命令对象:被处理的文件、文件夹、目录、用户等
man: 显示某个命令的帮忙文档(例:man ls)
支持翻页
Q退出
Linux命令大全(中文):
http://man.linuxde.net/
清屏:clear
xshell优点
1.通过上下方向键可以查看之前执行的命令
2.支持Tab键补全
3.支持翻页
列出目录内容:
ls-a 显示所有的文件(包括隐藏文件,以.开头)
ls 显示所有的文件(不包括隐藏文件)
ls -l 显示文件的详细信息,等同于ll
文件命名规则:
(1)区分大小写
(2)最多255的字符
(3)除了“/”外,其它都是有效的字符
(4).开头的属于隐藏文件(ls -a)
查看文件类型:file 文件名称
查看当前工作目录:pwd
Linux文件系统结构
[if !vml]
[endif]
Linux文件系统为一个倒转的单根树状结构
文件系统的根为/
路径使用/分割
bin:存放系统常用命令
dev: 存放外部设备
etc: 存放所有系统管理所需要的配置文件和子目录
root: 系统管理员主目录
tmp: 存放临时文件或目录
var: 存放系统日志
绝对路径 和 相对路径
绝对路径:以/开头,递归每级目录直到目标和路径,不受当前所在工作目录的影响
相对路径:以当前目录为起点,到达目标的路径受当前所在目录影响
cd 切换目录
.. 返回上一层目录
. 当前目录
~ 用户家目录
创建\删除文件:
通过touch命令可以创建一个空文件或更新文件时间
通过rm命令可以删除文件或目录
-f 强制删除
-r 递归删除非空的文件夹)
格式:rm
-rf 文件名或目录名
支持的通配符
*匹配0个或者多个任意字符
?匹配1个任意字符
【0-9】匹配一个数字范围
【abc】匹配一个字母范围
【^abc】匹配列表以外的字符
创建、删除目录
创建文件夹格式:mkdir 文件夹名称
-p 递归创建文件夹
-v 显示创建的过程
rmdir删除空的文件夹
格式:rmdir空文件夹名称
rm -rf 文件夹名称:删除非空的文件夹
复制文件、目录
格式:cp源文件(目录) 目标文件(目录)
-r 递归复制整个目录树
-v 显示复制过程
移动、重命名文件或目录
格式:mv源文件 目标文件
-f 覆盖原有的文件
查看历史命令
history
!序号
查看与修改日期时间 (date)
修改日期:date -s 20001012
修改时间:date -s 12:23:21
修改日期与时间:date -s “20081023 12:23:21”
把时钟时间设置为系统时间:clock -s
查看日历(cal)
当月日历:cal
当年日历:cal -y
当年第几天:cal -j
查看运行时间
[if !vml]
[endif]
15:28:04 系统当前时间
up4:56 主机已运行的时间
2users 用户连接数
loadoverage: 0.00 , 0.01 , 0.05 统计最近1分钟、5分钟、15分钟的系统平均负载
VI文本编辑器
命令vi可以启动Vi编辑器
格式:vi文件名
如果目标文件存在,vi会打开该文件
如果目标文件不存在,vi会新建该文件
Vi模式:三种模式(命令模式、输入模式、末行模式)
[if !vml]
[endif]
命令模式:选择、复制、粘贴等操作
移动光标
3j 光标所在行往下移动3行
gg 返回首行首列
G 返回末行首列
3G 返回第3行
复制粘贴
yy 复制光标所在行
3yy 从光标向下复制3行
p 粘贴到光标下一行
2p 粘贴2次
删除
dd 删除光标所在的行
3dd 从当前向下删除3行
替换
r 替换光标所在的字符内容
撤销
u 撤销
搜索
/要搜索的单个字符 (n 下一个、N 上一个)
?要搜索字符串 (n 下一个、N 上一个)
输入编辑(内容编辑)
i 光标前面插入内容
a 光标前面插入内容
o在光标新建下一行中插入
末行模式
:set nu 显示行号
:set nonu不显示行号
:wq!强制保存并退出
:w 保存
:q 退出
:q!不保存,强制退出
查看文件内容(cat、head、less、more、tail)
格式:cat 文件名 (显示文件内容从上往下)
-n 显示行号
head (显示文件头几行内容,默认前10行)
head -n5
a.cfg (显示文件前5行内容)
more 全屏按页显示文件内容
空格 向下翻一页
b 向上翻一页
回车 向下翻一行
q 退出阅读
less全屏按页显示文件内容,支持键盘翻页键
空格 向下翻一页
b 向上翻一页
回车 向下翻一行
q 退出阅读
支持键盘翻页键
tail 显示文件的末尾几行内容(默认末10行)
tail -n3b.txt 显示文件后3行
tail -n+5b.txt 显示文件从第5行到末尾的内容
wc命令计算数字
-c 统计字节数
-l 统计行数
-w 统计字数(连在一起算一个字,空格隔开的算另外一个)
用sed命令
sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。
Head –n10 a.txt | tail –n 5 也可以只查看文件的第5行到第10行
du -h 文件名 查看文件大小
查看后台运行的程序及运行状态(jobs)
ping www.baidu.com>ping.log&
jobs 查看当前所有后台的作业
ctrl+z 将前台放到后台,会变成停止状态
fg 序号 将后台放到前台
bg 序号 让停止的作业在后台继续运行
关机、重启
shutdown用于关机、重启计算机
-h 关闭计算机
-r 重启计算机
shutdown-h now 立即关机
shutdown-h 23:00 23:00定时关机
shutdown-h +10 10分钟后关机 (shutdown-c 取消关机)
shutdown-r now 立即重启
reboot 立即重启计算机
poweroff 立即关闭计算机
logout 注销登录的用户
归档、压缩
gzip用来对单个文件压缩
压缩:gzip要压缩的文件名
解压:gzip
-d 压缩后的文件名(gunzip 等同于gzip -d)
对多个文件进行归档和压缩
(1)归档:tar -cvf abcd.tar *.txt
(2)压缩:gzip abcd.tar
归档并压缩:tar -zcvf abcd.tar.gz *.txt
解压到指定的文件夹
tar -zxvfabcd.tar.gz -C ./A/ (把abcd.tar.gz解压到当前路径下的A文件夹中)
-c 新建备份文件
-v 显示详细信息
-f 指定备份的文件
-z 使用gzip压缩/解压缩
-x 从备份中还原文件
-C 解压到指定的文件夹
查找文件
find-name 文件名 (查找当前目录及子目录文件)
find 文件名 (查找当前目录文件)
挂载设备
mount
/dev/设备名 /mnt(挂载点)
mount/dev/cdrom /mnt/
卸载设备
umount 文件挂载点 umount /mnt/
用户、用户组
(1)必须有一个用户身份,用户ID
(2)组用来方便管理用户
(3)每一个用户有一个主组,可以有一个或多个附属组
(4)每个组也有一个组ID
(5)系统中的文件有一个所属用户及所属的组
超级管理员UID 0:系统管理员
系统用户:UID 1~999
普通用户UID:1000~
使用id命令查看当前用户的信息
使用passwd命令修改当前用户密码
组
每一个组都有一个组ID
组的信息保存在 /etc/group中
每个用户有一个主组,同时可以最多有31个附属组
查看登录的用户
w:显示有哪些用户已经登录并且在干什么
who whoami
创建一个用户
(1)在/etc/passwd中添加用户信息
(2)如果使用passwd命令创建密码,会在密码信息保存在/etc/shadow中
(3)为用户创建一个新的家目录
(4)将/etc/skel中的文件复制到用户家目录中
(5)建立一个与用户名相同的组,新建用户默认属于这个同名组
创建用户:useradd 用户名
设置密码:passwd 用户名
查看用户ID、主组、附属组信息:id 用户名
useradd 支持的参数
useradd 用户名-g 主组名-G 附属组名1,附属组名2……
修改用户信息
格式:usermod参数 用户名
-l 新用户名 ( usermod -l 新用户名旧用户名)
-g 用户所属的主组 (usermod -g root -G
sys test999)
-G 用户所属的附属组
删除用户
userdel 用户名 (删除用户,但不删除家目录)
userdel
-r 用户名 (删除用户以及家目录)
创建、修改、删除组
创建组:groupadd 组名
修改组:groupmod -n 新组名 要修改的组名
修改组ID:groupmod -g 新组ID 要修改的组名
删除组:groupdel 组名
切换用户
su 用户名 (切换到指定的用户,但不使用新的运行环境)
su – 用户名 (切换到指定的用户,使用新的运行环境)
权限
权限是操作系统用来限制对资源访问的机制(权限一般分为“读、写、执行”)
三个权限分别用三个数组表示:
r=4
w=2
x=1
例:rw=4+2=6 rwx=4+2+1=7
修改文件所属用户、组
chown 用户名 文件名 (修改文件所属的用户)
chown -R 用户名 文件名/夹 (递归修改目录下的所有文件所属的用户)
chgrp 组名 文件名 (修改文件所属的组)
chgrp -R 组名 文件名 (递归修改文件所属的组)
[if !vml]
[endif]
修改GUO权限
格式:chmod模式 文件名 (修改用户和组对文件的操作权限)
u 用户
g 主组
o 附属组
+ 加入权限
[if !supportLists]- [endif]删除权限
r 读
w 写
x 执行
用数字表示GUO权限
chmod 654a.txt (rw- r-x r--)
grep命令搜索文本内容
grep‘50’anaconda-ks.cfg
-I 忽略大小写
-n 显示结果所有的行号
-v 输出不带关键字的行
-Ax 在输出结果所在行之后的指定行数x
-Bx 在输出结果所在行之前的指定行数x
输出环境变量的值
echo$PATH
echo$LANG
管道与重定向
[if !vml]
[endif]
分类关键字定义例子
重定向> 将STDOUT重定向到文件(覆盖)echo “linux” >
outfilels
> a.txt
>> 将STDOUT重定向到文件(追加)echo “linux” >>
outfiledate
>> a.txt
2>将STDERR重定向到文件(覆盖)ls not 2> a.txt
2>>将STDERR重定向到文件(追加)ls not 2>> a.txt
&>将STDOUT与STDERR结合(标准输出+标准错误)ls not &> a.txt
< 重定向STDINgrep ‘50’ <
anaconda-ks.cfg
管道|将一个命令的STDOUT作为另一个命令的STDINls –l | grep txt
cat -n anaconda-ks.cfg | head -n20 | tail -n5 ( 输出文件的16~20行的内容)
systemctl管理服务的启动、重启、停止、重载、查看状态的命令:
Sysvinit命令(CentOS 6系统)Systemctl命令(CentOS 7系统)作用
service serviceName startsystemctlstart serviceName启动服务
service serviceName restartsystemctlrestart serviceName重启服务
service serviceName stopsystemctlstopserviceName停止服务
service serviceName reloadsystemctlreload serviceName重新加载配置文件(不终止服务)
service serviceName statussystemctlstatusserviceName查看服务状态
firewalld(防火墙服务名) network(网络服务名)
systemctl start firewalld
systemctl stop firewalld
systemctl status firewalld
systemctl设置服务的开机启动、不启动、查看各级别下服务启动状态的命令:
Sysvinit命令(CentOS 6系统)Systemctl命令(CentOS 7系统)作用
chkconfig serviceName onsystemctlenable serviceName开机自动启动
chkconfig serviceName offsystemctl disable serviceName开机不自动启动
chkconfig serviceNamesystemctlis-enabledserviceName查看特定服务是否为开机自启动
基本网络参数:
可上网: IP地址 子网掩码 网关 DNS
跨网段通信:IP地址 子网掩码 网关
局域网通信:IP地址 子网掩码
查看IP地址: ip addr(7或以上版本) ifconfig(7以下版本)
网络信息配置
vi /etc/sysconfig/network-scripts/ifcfg-ens32
[if !vml]
[endif]:
网卡的禁用: ifdown ens32
网卡的启用: ifup ens32
ss命令(查看系统安全,了解)
ss -l 显示本地所有打开网络连接端口
ss -pl 显示每个进程具体打开的socket (又称“套接字”),
ss sport = :22 (查看22端口是否被占用)
ss -t -a (显示所有的tcp协议socket)
ss -u -a (显示所有的udp协议socket)
进程管理(top)
top 实时动态查看系统运行情况(相当于Windows中的任务管理器)
s 刷新时间
ctrl + c 退出top命令
[if !vml]
[endif]
vmstat 可实时动态监视操作系统的虚拟内存、进程、CPU活动。
实例1:每2秒输出一条结果 vmstat 2
[if !vml]
[endif]
Procs(进程):
r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)
b: 等待IO的进程数量
Memory(内存):
swpd: 使用虚拟内存大小,如果swpd的值不为0,但SI,SO的值长期为0,这种情况不会影响系统性能
free: 可用内存大小
buff: 用作缓冲的内存大小(目前正在需要用的)
cache: 用作缓存的内存大小 (一般保存的时间会比缓冲长)
Swap (交换分区)
si: 每秒从交换区写到内存的大小(数据量)
so: 每秒写入交换区的内存大小
IO :(现在的Linux版本块的大小为1024bytes)
bi: 每秒读取的块数
bo: 每秒写入的块数
system (系统):
in: 每秒中断数,包括时钟中断
cs: 每秒上下文切换数
CPU(以百分比表示)
us: 用户进程执行时间(user time)
sy: 系统进程执行时间(system time)
id: 空闲时间(包括IO等待时间)
wa: IO等待时间
st:CPU花费在执行系统上运行的虚拟机的时间(stolen time)
显示活跃和非活跃的内存
vmstat -a 1
[if !vml]
[endif]
ps 报告当前系统进程状态(相当于windows任务管理器中的进程标签)
ps -A 显示所有进程数
ps -A | grep ssh (只显示ssh的进程)
kill -9 pid PID号 (杀掉指定的PID号进程) 例如:kill -9 pid 3243
通过进程名杀掉进程:
[if !vml]
[endif]
TTY列为进程名
pkill -kill -t pts/1
下载
curl 命令是一个利用URL规则在命令行下工作的文件传输工具。
(1)将下载的文件显示到屏幕上
格式:curl URL地址 例如:curl https://www.bing.com/ 。
(2)将下载的数据以原始名称保存到文件中(-O 大写字母O)
格式:curl -O URL地址
例如:curl
-O https://b-ssl.duitang.com/uploads/item/201403/27/20140327155011_JTvzt.jpeg
(3)将抓取的页面内容保存到指定文件中 (-o 小写字母o)
格式:curl -o 指定的文件名 URL地址 例如:curl
-o home.html https://www.bing.com/
Xftp工具:windows与linux之间的文件传输工具
[if !vml]
[endif]
常用的RPM软件包命令:(离线安装)
[if !vml]
[endif]
yum软件仓库命令:(在线安装)
Yum软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术,Yum软件仓库可以根据用户的要求分析出所需软件包及其相关依赖关系,然后自动从服务器下载软件包并安装到系统
[if !vml]
[endif]
yum install -y sysstat
查找命令的位置:
which 命令名称
在linux下部署Oracle11g数据库