Linux笔记
1.了解linux
(1)操作系统
(2)开源(开放源代码)
(3)免费
(4)品质好,低成本
为什么学习Linux
(1)稳定且效率比较高
(2)多用户多任务
(3)更加安全文件、用户策略
(4)可移植性好
Redhat红帽
Centos社区企业操作系统
Ubuntu(乌班图):拥有出色的桌面系统
打开linux虚拟机
vmware>文件>打开(选中CentOS 64 位演示.vmx),导入后启动虚拟机即可
登录Linux系统
用户名:root 密码:123456
输入登记密码时界面上看不到任何字符,正常输入后按Enter即可
root: 当前登录的用户名
localhost: 主机名
~ :当前所在的目录,此处为“家”目录
Linux内核官方下载网站:https://www.kernel.org/
安装Xshell(第三方linux管理工具)
打开Xshell,连接到Linux
新建》
点击“连接”,输入正确的用户名和密码即可成功连接到Linux中
Linux命令结构 :
命令名称 【命令参数】【命令对象】
注意,它们之间要有空格隔开
命令参数:采用长格式--或者短格式-
man –-help (长格式)
man -h (短格式)
命令对象:被处理的文件、文件夹、目录、用户等
man: 显示某个命令的帮忙文档(例:man ls)
支持翻页
Q退出
Linux命令大全(中文):
清屏:clear
xshell优点
1.通过上下方向键可以查看之前执行的命令
2.支持Tab键补全
3.支持翻页
列出目录内容:
ls -a 显示所有的文件(包括隐藏文件,以.开头)
ls 显示所有的文件(不包括隐藏文件)
ls -l 显示文件的详细信息,等同于ll
文件命名规则:
(1)区分大小写
(2)最多255的字符
(3)除了“/”外,其它都是有效的字符
(4).开头的属于隐藏文件(ls -a)
查看文件类型:file 文件名称
查看当前工作目录:pwd
Linux文件系统结构
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
查看运行时间
15:28:04 系统当前时间
up 4:56 主机已运行的时间
2 users 用户连接数
load overage: 0.00 , 0.01 , 0.05 统计最近1分钟、5分钟、15分钟的系统平均负载
VI文本编辑器
命令vi 可以启动Vi编辑器
格式:vi 文件名
如果目标文件存在,vi会打开该文件
如果目标文件不存在,vi会新建该文件
Vi模式:三种模式(命令模式、输入模式、末行模式)
命令模式:选择、复制、粘贴等操作
移动光标
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 -n3 b.txt 显示文件后3行
tail -n+5 b.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 文件名 查看文件大小
df -h 用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
查看后台运行的程序及运行状态 (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 -zxvf abcd.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 组名 文件名 (递归修改文件所属的组)
修改GUO权限
格式:chmod 模式 文件名 (修改用户和组对文件的操作权限)
u 用户
g 主组
o 附属组
+ 加入权限
- 删除权限
r 读
w 写
x 执行
用数字表示GUO权限
chmod 654 a.txt (rw- r-x r--)
grep命令搜索文本内容
grep ‘50’anaconda-ks.cfg
-I 忽略大小写
-n 显示结果所有的行号
-v 输出不带关键字的行
-Ax 在输出结果所在行之后的指定行数x
-Bx 在输出结果所在行之前的指定行数x
输出环境变量的值
echo $PATH
echo $LANG
管道与重定向
分类 |
关键字 |
定义 |
例子 |
重定向 |
> |
将STDOUT重定向到文件(覆盖) |
echo “linux” > outfile |
>> |
将STDOUT重定向到文件(追加) |
echo “linux” >>
outfile |
|
2> |
将STDERR重定向到文件(覆盖) |
ls not 2> a.txt |
|
2>> |
将STDERR重定向到文件(追加) |
ls not 2>> a.txt |
|
&> |
将STDOUT与STDERR结合(标准输出+标准错误) |
ls not &> a.txt |
|
< |
重定向STDIN |
grep ‘50’ < anaconda-ks.cfg |
|
管道 |
| |
将一个命令的STDOUT作为另一个命令的STDIN |
ls –l | grep txt |
cat -n anaconda-ks.cfg | head -n20 | tail -n5 ( 输出文件的16~20行的内容)
systemctl管理服务的启动、重启、停止、重载、查看状态的命令:
Sysvinit命令(CentOS 6系统) |
Systemctl命令(CentOS 7系统) |
作用 |
service serviceName start |
systemctl start serviceName |
启动服务 |
service serviceName restart |
systemctl restart serviceName |
重启服务 |
service serviceName stop |
systemctl stop serviceName |
停止服务 |
service serviceName reload |
systemctl reload serviceName |
重新加载配置文件(不终止服务) |
service serviceName status |
systemctl status serviceName |
查看服务状态 |
显示所有已启动的服务: systemctl list-units --type=service
firewalld (防火墙服务名) network(网络服务名)
systemctl start firewalld
systemctl stop firewalld
systemctl status firewalld
systemctl设置服务的开机启动、不启动、查看各级别下服务启动状态的命令:
Sysvinit命令(CentOS 6系统) |
Systemctl命令(CentOS 7系统) |
作用 |
chkconfig serviceName on |
systemctl enable serviceName |
开机自动启动 |
chkconfig serviceName off |
systemctl disable serviceName |
开机不自动启动 |
chkconfig serviceName |
systemctl is-enabled serviceName |
查看特定服务是否为开机自启动 |
基本网络参数:
可上网: IP地址 子网掩码 网关 DNS
跨网段通信:IP地址 子网掩码 网关
局域网通信:IP地址 子网掩码
查看IP地址: ip addr(7或以上版本) ifconfig(7以下版本)
网络信息配置
vi /etc/sysconfig/network-scripts/ifcfg-ens32
:
查看网卡状态:ifconfig -a
网卡的禁用: ifdown ens32
网卡的启用: ifup ens32
ss命令(查看系统安全,了解)
ss命令用来显示处于活动状态的套接字信息。ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
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命令
vmstat 可实时动态监视操作系统的虚拟内存、进程、CPU活动。
实例1:每2秒输出一条结果 vmstat 2
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
ps 报告当前系统进程状态(相当于windows任务管理器中的进程标签)
ps -A 显示所有进程数
ps -A | grep ssh (只显示ssh的进程)
kill -9 pid PID号 (杀掉指定的PID号进程) 例如:kill -9 pid 3243
通过进程名杀掉进程:
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之间的文件传输工具
常用的RPM软件包命令:(离线安装)
yum软件仓库命令:(在线安装)
Yum软件仓库便是为了进一步降低软件安装难度和复杂度而设计的技术,Yum软件仓库可以根据用户的要求分析出所需软件包及其相关依赖关系,然后自动从服务器下载软件包并安装到系统
yum install -y sysstat
查找命令的位置:
which 命令名称
在linux下部署Oracle11g数据库