Linux系统安装及基本操作
Linux概述
- Linux内核是基于GNU发布的自由软件
GNU:目标是编写大量兼容Linux系统的自由软件
GPL:允许用户任意复制,传递,修改和再发布
LGPL
- 常见开发源码的软件
Firefos:网页浏览器
OpenOffice:网页套件
Apache
......
- Linux发行版本构成
完整的OS=Linux内核+各种自由的软件
厂商提供的辅助安装、软件包管理等程序
磁盘分区
1.概述
- 硬盘很大,分成一块块的,方便管理
- 一块硬盘可以分为两大分区:主分区和扩展分区
1.主分区:能安装操作系统,能进行计算机启动
这样的分区可以直接格式化
2.扩展分区:装文件
- 分区规则
MBR分区表类型的硬盘中最多只能有4个主分区
多余的就要使用扩展分区
如果使用扩展分区,一个硬盘上最多只能有3个主分区和1个扩展分区
扩展分区不能直接使用,经过二次划分成为逻辑分区才可使用
一个扩展分区的逻辑分区可以是任意多个
2.Linux磁盘分区
- Linux将硬盘、分区等设备都表示为文件
/dev/(hd/sd)a5
1.dev:硬件设备文件所在目录
2.hd:IDE设备
sd:SCSI设备(服务器专用硬盘)
3.a/b/c...:硬盘顺序号
4.1/2/3...:分区顺序号
- 命令
df -lh:查看所有硬盘的使用状
du -sh /etc:查看etc目录的大小
free:显示内存使用状况
arch:显示架构
cat /proc/cpuinfo:显示CPU信息
cat /proc/meminfo:显示内存信息
fdisk -l:查看现有磁盘大小
文件系统类型
- Linux默认使用EXT3(第3代扩展文件系统)、SWAP(交换文件系统)
- 一般建议交换分区的大小设置为物理内存的1.5~2倍
目录结构
- 树型目录结构
cd /:根目录
ls:列出目录下所有的文件
- 目录
1.root:启动Linux的核心文件(不能删,否则系统可能无法启动)
2.home:普通用户个人文件(对应Windows/用户)
当前登录的用户有完全操作权限
存放配置信息,不能用来登录
htp:用户所有服务
httpd
samba
user1
user2
2.bin:二进制的可执行文件,不需要超级用户权限
3.sbin:可执行程序目录,大多存放设计系统管理的文件,需要超级用户权限(root权限)
4.proc:内核镜像文件(虚拟),保存所有内核参数及系统配置信息
img都是镜像文件
5.usr:用户级文件
bin:几乎所有用户用的命令
sbin:系统管理员命令
include:C/C++头文件目录
lib:固定的程序数据
local:**本地安装软件保存位置
main:手工生产的目录
info:信息文档
doc:不同包文档信息
tmp:**临时目录
6.boot:引导加载文件所需的文件
7.lib:系统公共库文件
8.dev:设备文件
9.etc:配置文件
skel:建用户就复制该目录
sysconfig:默认系统配置信息
10.var:变量目录,存放经常变的信息
file:
lib:
local:
lock:
log:日志
run:
spool:
tmp:
catman:
mnt:临时挂载文件系统(U盘),一般情况下都是空的,建议在该目录下再建立一个目录挂载设备
tmp:临时文件目录,一旦关机就全部消失
注意:某些东西安装时某些文件默认会放在该目录下,记得改!!!!!
lost+found:文件系统修复时的恢复文件
Linux命令
1.概述
- 用于实现某一类功能的指令或程序
- 命令的执行依赖于解释器
2.分类
-
内部命令:属于Shell解释器的一部分
-
外部命令:独立于Shell解释器之外的程序文件
3.通用命令格式
命令字符 [选项] [参数]
1.注意:空格分割
2.选项:- 短格式选项(单个字符)
-- 长格式选项
多个短路式的选项写在一起只用-
3.参数:命令操作的对象
4.常见命令
systemctl set-default multi-user.target:切换界面
reboot:重构
uname -a:查看Linux版本
ls:全部列表--文件名
ll:详情列表
5.辅助操作
tab:自动补齐
\:强制换行
Ctrl+U:清空至行首
Ctrl+K:清空至行尾
Ctrl+L:清屏
Ctrl+C:取消本次命令编辑,有结果
Ctrl+Z:后台运行,没有结果
6.获得命令帮助
help:查看Bash内部命令的帮助信息
XX --help:查看XX外部命令的信息
man XX:阅读XX命令的官方手册
info:阅读信息页
q:退出
7.管道和重定向
- 管道|:将前面命令的屏幕输出结果作为后面命令的处理对象
- 重定向输出>:将正确的输出结果保存到>后的指定文件中
- col:过滤文本中一些特殊控制字符
col支持中文
LC_CTYPE=zh_CN.UTF-8
LANG=en_US.UTF-8
8.命令别名
- alias(查看所有的别名)
- alias name=value(name就是value命令的别名)
- unalias name(取消别名)
9.目录和文件管理
- 目录操作命令
pwd:打印当前的工作目录
cd:切换路径
相对路径/绝对路径
..:上一级目录
.:当前目录
/:根目录
~:当前登录的用户目录
ls:列表(列出该目录下的所有目录和文件)
ls -l:列出详细信息
第一栏位:文件属性
开头 d:目录
-:文件
c:字符文件
l:链接
后面:权限
第二栏位:文件个数,目录=1,文件=目录个数
第三栏位:该文件或目录的拥有者或创建者
第四栏位:所属的组
第五栏位:文件大小
第六栏位:文件或目录创建的时间
第七栏位:文件名
ll:相当于ls -l,列出详细信息
支持通配符:* 任意多个字符
? 一个字符(想要多个,可以????)
mkdir:创建目录
单级目录:mkdir cj
多级目录:mkdir -pv cj/a/b/c
p:连父目录一起创建,否则只建一级
v:显示创建详情
du:查看信息
-a:全部文件
-h:以人类可读的形式
-s:总数
- 文件操作命令
touch 文件名:创建文件
file 文件名:查看文件类型
cp 被复制的文件名 复制的文件名:复制文件
-r:多级目录使用其递归
rm 文件名:删除文件
-r:递归
-d:只删除空目录
-f:强制操作而不提示
mv 被移动的文件名 移动的位置:移动文件
which 命令程序名:查看命令或程序的位置
find 查找范围 查找条件:查找
ln [-s] 源文件或目录 目标文件或目录:
硬链接:以文件副本的形式存在,不占用实际空间
不允许目录创建硬链接
只有在同一个文件系统中才可以创建
在选的位置上生成一个和源文件大小相同的文件
软链接-s:以路径的形式存在
可以跨文件系统
可以对不存在的文件名进行链接
可以对目录链接
只会在选定的位置上生产一个源文件的镜像,不会占用磁盘空间
无论硬还是软,文件都保持同步变化
- 文件内容操作命令
cat 文件名:查看文件内容
more 文件名:一页页查看内容
less 文件名:一页页查看内容
head -n 文件名:查看前n行
tail -n 文件名:查看后n行
wc 文件名:统计 单词数 行数 字节数
grep 待查找内容 文件名:
- 归档及压缩命令
10.网络命令
ip addr:查看网卡信息
ifconfig:查看网卡信息
ping:有各种参数 man ping自查
scp:上传jar包
netstat:查看网络状态
netstat -a:查看所有端口
netstat -at:查看TCP端口
netstat -au:查看UTP端口
netstat -ano:查看tomcat端口
netstat -ano|grep 8080:查8080端口
ss:查看网络状态
lsof:查看当前系统进程信息
一般 lsof -i|grep 进程名
列1:进程名称
列2:进程所有者
列3:文件描述符
列4:指定磁盘名称
列5:文件大小
列6:所有节点
列7:打开文件的确切名称
telnet:网络连接命令
host:分析域名查询工具
tcpdump:抓取数据包工具,打印所有经过网络接口数据包的头信息
11.进程
ps:静态列出系统中运行的进行
ps -a:列出系统中所有运行的进行
ps -ef|frep XXX:列出需要的进程
ps -aux:显示进程信息
top:动态监听系统中不同进程
kill:杀死结束进程
kill -9 <pid>
ulimit:控制系统资源在shell和进程上的分配量
12.系统信息查询
echo $xxx:系统环境变量
uname:操作系统名
uname -a
hostname:本机映射域名
对应 /etc/hostname 文件
dmesg:开机信息
uptime:系统运行时间
du:磁盘空间情况
top:实时显示 系统资源 情况
df:文件系统磁盘空间状态
free:系统内存
cal:日历
date
13.压缩
gzip
压缩: gzip -9 要压缩的文件
解压: gzip -d 压缩文件
tar
压缩: tar -cvzf 待压缩文件名.gz 要压缩的文件名
解压: tar -xzvf 压缩的文件名.gz
14.文件编辑
- 作用
1.创建或修改文本文件
2.维护Linux系统的各种配件
- 常用文本编辑器
vi
vim:带颜色
三种
命令
按 i, a
进入输入模式
按esc退到命令
按 :
进入莫行模式
:wq
:q!
- 工作模式
命令模式、输入模式、末行模式
管理用户及文件权限
1.管理用户和组账号
- 用户和组账号概述
1.用户账户:普通用户+程序用户(一个程序装上就有一个空间,超过这个空间就不能操作,别的用户有该用户组权限就可以访问)
2.组账号:基本组(私有组)+附加组(公共组)
3.UID:用户标识符
GID:组标识号
- 用户账号管理
用户账号文件:
保存用户账号基本信息:/etc/passwd
保存用户密码基本信息:/etc/shadown
添加用户账号
useradd [选项] 用户名
-u:知道UID标记
-d:知道宿主目录
-e:指定账号失效时间
-g:指定用户基本组名
-G:指定用户附加组名
-M:不为用户建立并初始化宿主目录
-s:指定用户登录的Shell
底层步骤:1.创建home目录,将模板文件拷贝进来
2.在/etc/passwd中添加用户
3.在/etc/shadown中添加密码
设置更改用户口令
passwd [选项] 用户名
-d:清空用户密码,使空密码就可以登录
-l:锁定用户账号
-S:查看用户账号状态
-u:解锁用户账号
用户账号的初始化配置文件
新建用户时,从/etc/skel目录中复制而来
初始配置文件
~/.profile:每次登录时执行
~/.bashrc:每次进入新Bash环境时执行===个人
~/.bash_logout:每次退出登录时执行
全局配置文件
/etc/bashrc===公司
/etc/profile
删除用户账号
userdel [-r] 用户名
-r:连用户的宿主目录一并删除
- 组账号管理
组账号文件
/etc/group:保存组账号基本信息
/etc/gshadow:保存组账号密码信息
添加组账号
groupadd 组账号名
删除组账号
groupdel 组账号名
- 用户和组账号查询
查询用户身份标识:id 用户名
查询用户所属的组:groups 用户名
查询用户账号的详细信息:finger [-l] 用户名
查询已登录到主机的用户:users、w、who
- 图形画用户和组管理工具
2.管理文件/目录的权限和归属
- 查看文件/目录的权限和归属
访问权限
读取:允许查看文件内容、显示目录列表
写入:允许修改文件内容,在目录中新建、移动、删除文件或子目录
可执行:允许运行程序、切换目录
归属(所有权)
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
- 设置文件/目录的权限
chmod
chmod [ugoa] [+-=] [rwx] 文件/目录
u:属主
g:属组
o:其他用户
a:所有用户
+:增加权限
-:去除权限
=:设置权限
chmod nnn 文件/目录
nnn:三位八进制数
-R:递归修改指定目录下所有文件,子目录的权限
- 设置文件/目录的归属
chown
chown 属主 文件或目录
chown :属组 文件或目录
chown 属主:属组 文件或目录
-R:递归修改指定目录下所有文件,子目录的归属
- 使用附加权限
SET位权限:争对文件
主要用途:为可执行文件(有x权限的),权限字符:s
其他用户执行该文件时,将拥有属组或属主用户的权限
权限类型:
SUID:对属主用户增加SET位权限
SGID:对属组内用户增加SET位权限
设置
chmod ug(+/-)s 可执行文件
chmod o(+/-)t 目录名
粘滞位权限:争对目录
主要用途:设置公共目录(权限为777的...),权限字符:t
用户不能删除该目录中其他用户文件
如:tmp、var/tmp临时目录
设置
chmod mnnn 可执行文件
m=4:SUID
m=2:SGID
m=1:粘滞位
可叠加
进程管理与计划任务
1.引导流程
2.chkconfig --list 服务名称
- ubuntu中可以安装 sysv-rc-conf 来代替
- 开启某个服务: chkconfig --level 2345 network on
- centos 8:
systemctl list-unit-files 查看服务
systemctl enable smb nmb 开启指定服务
systemctl disable smb nmb 关闭指定服务
3.ps aux
- 查看当前系统中所有的进程及信息
- ps aux|grep 进程名
4.top命令
- 查看动态的进程排名信息
5.pstree -aup
- 进程树
6.进程启动的方式
- 手工启动
1.前台启动:用户输入命令,直接执行程序
2.后台启动:在命令行尾加入“&”符号
cp /dev/cdrom mycd.iso &
将cdrom中的镜像文件挂载到当前用户的home目录下的 mycd.iso中
head -10 mycd.iso
- 调度启动
1.使用at命令,设置在某个特定的时间,执行一次任务:
javascript:setTimeout()
2.使用crontab命令,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务
javascript:setInterval()
7.进程的前后台调度
- Ctrl+Z
将当前进程挂起,即调入后台并停止执行
按Q键则退出此进程
- jobs
查看处于后台的任务列表
- fg
进程的顺序号
将处于后台的进程恢复到前台运行,需指定任务序号
- Ctrl+C
中断正在执行的命令
- kill、killall
kill用于终止指定PID号的进程
killall用于终止指定名称的所有进程
-9 选项用于强制终止
kill -9 进程编号:强制杀死进程
8.计划任务
- at命令
在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务
服务脚本名称:/etc/init.d/atd
设置格式:at [HH:MM] [yyyy-mm-dd]
然后输入要执行的操作,按ctrl+D结束输入(自动转化为 <EOT>)
1.atq命令:查询当前设置的at任务列表
2.atrm命令:删除指定任务编号的at任务
- crontab命令
按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
服务脚本名称:/etc/init.d/crond
主要设置文件
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron.*/
用户定义的设置,位于文件:/var/spool/cron/用户名
命令
crontab -e [-u 用户名]:编辑
crontab -l [-u 用户名]:查看
crontab -r [-u 用户名]:删除
- 时间数值的表示
时间数值的特殊表示方法
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率