目录
一、Linux的简单介绍
1,Linux简介
2,Linux 构成
3,Linux 特性
二、在虚拟机上安装Linux系统
1,安装,挂载
2,用户界面
3,终端
三、Linux常用命令
1,文件查找命令
2,打包压缩类命令
3,Linux进程管理
4,服务管理
5,Linux 用户管理
6,软件安装
7,Linux的其它命令
一、Linux的简单介绍
1,Linux简介:
Linux 是一种类Unix的操作系统。 类 类似 like
GNU GNU IS NOT UNIX *软件计划
GPL 通用公共许可协议 *软件 免费 开源
Linux 内核 (kernel) 诞生于1991年 作者 Linus Torvalds ,遵循GPL ,*软件。
2,Linux 构成:
内核 kernel + shell 壳程序 + 实用管理工具
内核: 系统调度、进程控制、设备驱动、内存管理、文件管理...
shell: 壳程序、用户界面、命令解释器、翻译官的角色。 Linux默认使用的bash
3,Linux 特性:
*软件
多用户
可移植性
...
主要应用场景: 作为服务器操作系统
发行版: 基于Linux内核,加上系统管理等相关软件组合在一起构成的一个完成操作系统。 不同组织不同的企业发布的版本名称不一样。
常见的Linux发行版: RedHat Suse Unbuntu Debian RedFlag CentOS ...
GUI 图形用户界面 , X-Window
桌面 KDE GNOME
-------------------------------------------------------------
二、在虚拟机上安装Linux系统
1,安装,挂载
rhel5.4 RedHat Enterprise Linux 5.4
操作系统的光盘镜像: rhel-server-5.
计算机主板上CMOS BIOS boot
硬盘: sda sdb sdc
分区: sda1 sda2 sda3 .... sdc5
挂载点: 文件系统上的目录
挂载: 将磁盘分区映射到文件系统目录上
mount /dev/sdb5 /home
将第二块硬盘第5个分区 映射到 /home 目录
分区: 将硬盘划分多个区域
Linux上至少有需要两个分区 文件系统
根分区 挂载到/目录的分区 ext2/3/4
交换分区 swap
文件系统: 磁盘分区上管理文件的规则和协议
window: FAT FAT32 NTFS
linux: ext2/3/4 xfs swap
格式化: 向磁盘分区写入文件系统
根账号 root
密码: 123456
2,用户界面:
GUI图形界面:
CLI字符界面:
切换方式: Ctrl+Alt+Fn (F1~F6) Alt+Fn Alt+F7
3,终端:
虚拟终端:: /dev/tty1~tty6
伪终端: /dev/pts/1~pts/n
多用户系统
备份、恢复
-----------------------------------------------------------------------------------
三、Linux常用命令
1,文件查找命令
可执行文件的查找
which
whereis
find [查找范围] [查找条件] 查找所有文件 (在文件系统中遍历)
查找范围 一个特定的目录
查找条件:
-name 文件名
-iname 文件名不区分大小写
-size 文件尺寸 k M G +n 大于 -n 小于 n 等于
-user 文件的属主
-group 文件的属组
-perm 文件的权限,用数字来表示文件权限
-type 文件的类型 c b d f l ...
-atime,amin 文件的访问时间 time 天 min 分
-ctime,cmin 文件的修改时间
...
条件组合:
逻辑操作: 与 -a 或 -o 非 not ,!
对找到的结果进行处理:
使用 {} 作为位置符号代表find找到的文件
-exec ... \; 直接执行命令
-ok ... \; 提示执行命令
locate 文件名,查找跟文件名相似的所有文件
从索引数据库去查找 /var/lib/mlocate/ 数据库每天仅更新一次
updatedb 手动更新
grep 从文件(文本文件)内容中检索字符串,把包含该字符串的行显示出来
grep 关键字 文件名
-v 反显
-i 忽略大小写
'^...' 以什么开头
'...$' 以什么结尾
'^$' 表示空行
du disk 文件 统计文件所占磁盘空间的大小
du -sh ...
2,打包压缩类命令
压缩: 将大的文件使用某种算法变成小的文件
*.rar *.zip *.z *.7z ...
zip
zip *.zip 目标文件
gzip
gzip 目标文件 --> *.gz
bzip2
bzip2 目标文件 --> *.bz2
解压: 将压缩文件还原成原始文件
unzip *.zip
gunzip *.gz
bunzip2 *.bz2
打包: 将多个文件变成一个文件
tar
-c 打包
-x 解包
-t 查看包的内容
-v 显示打包的过程信息
-f 设置包名 *.tar
-z gzip
-j bzip2
tar -cvf *.tar 目标文件
解包:
tar -xvf *.tar
查包:
tar -tvf *.tar
打包压缩
tar -czvf *. 目标文件
tar -cjvf *.tar.bz2 目标文件
解包解压缩
tar -xzvf *.
tar -xjvf *.tar.bz2
*. = *.tgz
-C 指定tar解包的路径
write 用户名 ,向本机的其他用户发送消息,Ctrl + C 结束
ping ip地址或主机名 测试网络连通性 , 网络层 ICMP协议
ifconfig 显示网络配置信息 ip address
网卡配置文件: /etc/sysconfig/network-scripts/ifcfg-eth0
重启网络服务: service network restart
shutdown -h now 立刻关机
shutdown -h 10 在10分钟之后关机
shutdown -c 取消当前的关机进程
reboot 重启
shell应用技巧
命令补齐 tab键
命令历史: history 方向键 ↑和↓ 选择历史命令, 或者是 !编号
命令别名 alias :
alias cls=clear ; unalias cls ; alias
输入输出重定向
输出重定向
> 覆盖
>> 追加
1> 标准输出重定向
2> 错误输出重定向
输入重定向
<
管道
命令连接符
命令替换符
-------------------------------------------------------------------------------------
3,Linux进程管理
进程: 动态,程序运行的时候在内存中的映射;
程序: 静态,以文件的方式保存在磁盘上。
进程分为
父进程
子进程
前台进程: 普通的程序直接在前台shell之上运行
后台进程: 在命令后加入'&'即可 非交互式程序
jobs: 查看后台运行的进程
任务(工作)编号 状态 进程名
jobs -l
任务(工作)编号 进程编号pid 状态 进程名
Ctrl+z 暂停当前进程到后台
Ctrl+c 强制结束前台运行的进程
fg 工作编号 让此进程在前台运行
bg 工作编号 让此后台进程在后台运行 Stopped --> Running
ps aux 查看进程信息 (静态)
ps -elf 查看所有进程信息 (ppid父进程编号)
top 查看进程信息 (动态)
pstree 显示进程树
-u 进程的用户信息
-p 进程的pid
kill -9 pid 结束掉某个进程
killall -9 进程名
pkill -9 进程名
w 查看所有登陆的用户信息
pkill -9 -t tty2 将登陆到tty2终端的用户踢下线
Linux系统开机运行的第一个进程
init
/sbin/init
配置文件: /etc/inittab
Linux 运行级别
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this) 关机
# 1 - Single user mode 单用户模式
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking) 多用户模式不支持NFS
# 3 - Full multiuser mode 完全的多用户模式(字符界面)标准
# 4 - unused 保留(未使用)
# 5 - X11 图形界面 标准
# 6 - reboot (Do NOT set initdefault to this) 重启
id:5:initdefault:
可以通过修改配置文件 /etc/inittab 设置系统的运行级别
还可以通过命令的方式设置:
init 运行级别编号
关机命令
init 0
重启命令
init 6
查看运行级别:
runlevel
who -r
-------------------------------------------------------------------------------------------------
4,服务管理
服务:以后台守护进程方式运行的程序
Deamon
sshd 远程登录的服务端
查看和改变服务的启动状态
chkconfig --list 查看服务的启动状态
chkconfig --level 运行级别编号 服务名称 on|off (下次启动时生效)
服务的管理 (立即生效)
service 服务名 status | stop | start | restart
状态 停止 启动 重启
service sshd status
apache web服务器 httpd
查看本机的所有网络连接
netstat -na
netstat -tunl 查看监听的端口
查看本机的所有磁盘及分区
fdisk -l
shell脚本
vim
#!/bin/bash
echo 'Hello world!'
pwd
date
for file in `ls /etc`; do
echo "the file is ${file}"
done
安装CentOS7版本 最小安装 Mini
yum方式去安装你需要的任何软件
ip addr 可以获取ip地址
rhel5 init 管理系统启动
service 服务名 status | stop | start | restart
centos7 systemd
systemctl status|stop|start|restart 服务名
systemctl stop firewalld 停止防火墙
--------------------------------------------------------------------------------------
5,Linux 用户管理
完全多任务多用户的操作系统
用户信息配置文件
/etc/passwd
root 根用户 uid 0
bin... 伪用户 uid 1~499
student 普通用户 uid 500
用户名:密码占位符:用户编号uid:组编号gid:用户描述信息:用户家目录:用户的shell
用户密码配置文件
/etc/shadow
用户组配置文件
/etc/group
/etc/gshoadow 组密码文件
组名:组密码:组编号GID:组的成员用户
添加用户
useradd [-选项] 用户名
-u uid
-g gid
-d 家目录
-s 设置shell
-c 描述信息
-e 指定失效时间
用户管理类命令:
id
finger
su switch user 切换用户
su - 用户名 # 载入该用户的环境变量
sudo 表示命令以root用户身份运行
who 查看当前系统登录的所有用户
w 查看当前系统登录的所有用户
修改用户密码
passwd 用户名
passwd -S 用户名 查看密码状态
修改用户
usermod [-选项] 用户名
...
删除用户
userdel -r 用户名 删除用户(删除用户的家目录)
-----------------------------------------------------------------------------------
6,软件安装
源代码软件包
二进制软件包
RPM软件包: 红帽子公司的软件包的管理方式 *.rpm ,大部分Linux发行版都是采用RPM方式管理软件包。
挂载: 将存储设备映射到目录
/dev/sda3 /usr
/dev/cdrom /mnt/cdrom
mount 设备文件名 目录
挂载光盘:
mount /dev/cdrom /mnt/cdrom
卸载光盘:
umount /dev/cdrom
umount /mnt/cdrom
查看磁盘及挂载情况
df -h
查询rpm软件包
rpm -q 软件名 查看指定软件是否安装
rpm -qa 查看本机已经安装的所有软件
rpm -qi 软件名 查看软件的详细信息
rpm -ql 软件名 查看软件的所有文件的列表
rpm -qf 文件名 查看文件所属的软件包名
安装rpm软件包
rpm -ivh *.rpm
去掉警告
rpm --import /etc/pki/rpm-gpg/R*
卸载rpm软件
rpm -e 软件名
痛点:rpm包之间的依赖关系
vim-enhanced软件包依赖vim-common软件包
-------------------------------------------------------------------------------------
7,Linux的其它命令
systemctl stop firewalld 停止防火墙
systemctl status|stop|start|restart 服务名 Centos里面的状态/关闭/启动/重启服务
service 服务名 status | stop | start | restart Redhad的状态/关闭/启动/重启服务
service iptables stop 停止防火墙
ip addr/address 获取IP地址
ifconfig 获取IP地址(需安装net-tools.x86_64工具包)
fdisk -l 查看本机所有磁盘及分区
netstat -na 查看本机的所有网络连接
netstat -tunl 查看监听的端口
kill -9 pid 结束掉某个进程
ps aux 查看进程信息 (静态)
top 查看进程信息 (动态)
ssh ip地址 远程连接服务器
Ctrl+z 暂停当前进程到后台
Ctrl+c 强制结束前台运行的进程
jobs: 查看后台运行的进程(自己启动了哪个服务就有哪个服务)
jobs -l :查看后台运行的进程外加进程编号pid
yum list package --- rpm -qa
yum list | grep install
yum install package --- rpm -ivh
yum search 命令 查看命令所在软件包,一般人容易记住命令忘记包名
yum info package 查询软件的详细信息
yum remove package --- rpm -e
yum update package
yum repolist 查看yum源列表。。
(注:CentOS和RedHat支持yum,而Ubuntu不支持yum,只能用apt)
make 编译
make install 运行
df -h 查看光盘情况
eject -d 查看光盘物理地址(我们的显示为cdrom)
mount /dev/cdrom /mnt/cdrom 设备挂载命令
dd if=/dev/cdrom of=./ 制作光盘镜像
alias cls=clear;unalias cls 取别名和删除别名
wc(word count的缩写) -l行数 -w单词数 -c字符数
wget 下载文件
查询rpm软件包
rpm -q 软件名 查看指定软件是否安装
rpm -qa 查看本机已经安装的所有软件
rpm -qi 软件名 查看软件的详细信息
rpm -ql 软件名 查看软件的所有文件的列表
rpm -qf 文件名 查看文件所属的软件包名
rpm -ivh *.rpm 安装rpm软件包
rpm -e package 卸载rpm软件
注:无法解决rpm包之间的依赖关系
which 从path下查询可执行命令
whereis 从文件索引数据库下查询,可查命令地址及帮助文档
locate 数据库索引,使用的是绝对路径,可使用部分匹配
find 遍历磁盘(可指定路径),如果不指定路径,则效率很低
updatedb 手动更新数据库
grep 从文件(文本文件)内容中检索字符串,把包含该字符串的行显示出来
grep 关键字 文件名
-v 反显
-i 忽略大小写
'^...' 以什么开头
'...$' 以什么结尾
'^$' 表示空行
find [查找范围] [查找条件] 查找所有文件 (在文件系统中遍历)
查找范围 一个特定的目录
查找条件:
-name 文件名
-iname 文件名不区分大小写
-size 文件尺寸 k M G +n 大于 -n 小于 n 等于
-user 文件的属主
-group 文件的属组
-perm 文件的权限,用数字来表示文件权限
-type 文件的类型 c b d f l ...
-atime,amin 文件的访问时间 time 天 min 分
-ctime,cmin 文件的修改时间
...
条件组合:
逻辑操作: 与 -a 或 -o 非 not ,!
对找到的结果进行处理:
使用 {} 作为位置符号代表find找到的文件
-exec ... \; 直接执行命令
-ok ... \; 提示执行命令
du disk 文件 统计文件所占磁盘空间大小
du -sh 文件夹 统计文件夹总共占用磁盘空间大小
zip *.zip 目标文件 -->*.zip
gzip 目标文件 --> *.gz
bzip2 目标文件 --> *.bz2
unzip *.zip zip还原
gunzip *.gz gz还原
bunzip2 *.bz2 bz2还原
tar -czvf *. 目标文件 打包压缩
tar -cjvf *.tar.bz2 目标文件 打包压缩
tar -xzvf *. 解包解压缩
tar -xjvf *.tar.bz2 解包解压缩
注:*. = *.tgz
ifconfig 显示网络配置(需先下载net-tools包)
ip addr/address 显示网卡配置
ifdown ens32 关闭ens32网卡
ifup ens32 启动ens32网卡
free 查看空闲内存
top 动态整体查看资源情况
sar CPU资源消耗
vmstat 内存相关消耗
iostat 磁盘相关消耗
netstat 网络使用情况
ps aux 和top相反,静态整体查看资源情况