Linux操作系统文档
一、 Linux操作系统概述
l 为什么要学习Linux操作系统:
1、 大部分服务端都是使用Linux操作系统(Django,爬虫,科学运算等项目是部署到服务器中的)
2、 一些企业和学校(国外学校)采用Linux进行研发和教学
3、 很多嵌入式开发使用Linux系统
4、 大数据、云计算,采用Linux操作系统(CentOS)
l Linux系统的特点:
1、 开放、开源、多用户的网络操作系统
2、 可靠地系统安全、良好的移植性
3、 出色的运行速度
4、 基于UNIX
5、 加入了GNU组织(GNU---自由软件组织 CopyLeft)
l Linux的组成:
1、内核:是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。最新版5.0
2、Shell(外壳):是系统的用户界面,提供了用户和内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。但它不仅是命令解释器,而且还是高级编程语言,shell编程。
3、文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法,Linux支持多种文件系统,如ext3,ext2,NFS,SMB,iso9660等。类似于window的fat32
和ntfs
5、 应用程序:标准的Linux操作系统都会有一套应用程序例如X-Window,Open Office等。
l Linux版本
1、 内核版本,最新版本为5.0 版本 http://www.kernel.org/
2、 发行版本,一些厂商将Linux系统内核与应用软件和文档包装起来,并提供一些安装界面和系统设定管理工具的一个软件包的集合,例如RedHat Linux,CentOS,Debian,Ubuntu, Novell/SuSE Linux等。
RedHat : Rhel(企业版) CentOS(社区版)
Debian:Debian Ubuntu(桌面)
二、Linux系统安装
l 安装vmware虚拟机
(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
l 在VM中安装Linux操作系统
三、 Linux目录结构
l 基本目录结构
bin 存放二进制可执行文件(cd,ls,cat,mkdir等)
boot 存放用于系统引导时使用的各种文件
dev 用于存放设备文件
etc 存放系统配置文件
home 存放所有用户文件的根目录
lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt 系统管理员安装临时文件系统的安装点
opt 额外安装的可选应用程序包所放置的位置
proc 虚拟文件系统,存放当前内存的映射
root 超级用户目录
sbin 存放二进制可执行文件,只有root才能访问
tmp 用于存放各种临时文件
usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
var 用于存放运行时需要改变数据的文件
四、 Linux系统环境(CentOS)
l 分为命令交互通道和图形界面交互通道,默认进入图形界面交互通道。
Ctrl+Alt+F2 由图形通道进入命令通道
Ctrl+Alt+F1 由命令通道进入图形通道
d
1、 图形界面交互模式下的
terminal: 图形界面的命令终端,它是图形界面交互通道的延伸,要依赖于图形界面(类似于命令交互通道)
2、 命令交互通道
[zrgk@localhost ~]$
zrgk 用户名
localhost 主机名
~ 路径 ,假如当前的路径正好是 该用户存放数据的根目录 ,则显示~
$ 用户类型 $表示普通用户 #超级用户
五、 Linux常用命令
l 查看系统版本
Cat /etc/redhat-repase
详细内核信息: cat /proc/version
系统使用Linux3.10内核64位操作系统,gcc()
l Linux基本命令
1、 cd 切换目录
例如: cd Desktop 切换到桌面
cd .. 切换到上级目录(Linux中cd和..之间必须有空格)
2、man(manual) 帮助命令,相当于windows中的 help
例如: man ls 查看 ls命令的使用方式 按q退出
3、ls 查看目录内容
ls –l 查看详细信息 也可以直接使用 ll
ls –a 查看全部文件(包括隐藏文件)
4、mkdir 创建目录
例如: mkdir java 创建一个java目录
cd java
mkdir JEE 在java目录下,又创建一个JEE目录
6、 tab 自动补全
7、 touch 创建一个普通空白文件
例如: touch aa.txt
8、 echo 把内容重定向到指定文件中,如果文件有则打开,无则创建
例如: echo “helloworld” > aa.txt 覆盖原有数据
echo “helloworld” >> aa.txt 追加方式
9、 cat 查看文件内容
例如: cat aa.txt
10、 more 查看文件内容,分页显示,按空格翻页
11、 cp 复制
例如:cp aaa.txt ./java/jee 把aaa.txt 拷贝到 java/jee目录下
cp aaa ./java/jee –r 拷贝文件夹
11、mv 剪切、重命名
mv bbb.txt ./java/jee 把bbb.txt 剪切到 java/jee 目录下
mv bbb.txt aaa.txt 把bbb.txt 重命名为aaa.txt
12、 rm 删除
rm aaa.txt 删除aaa.txt
-f : 假如要删除的文件不存在,也不提示 rm aaa.txt -f
-i : 删除前提示 ,默认不删除,要删除,输入y rm aaa.txt -i
-d : 删除空白目录
rm python–d python必须是一个空白目录(不包含任何文件的文件夹)
-r :递归删除 rm –r python 删除python这个文件夹 有提示
rm –rf python 没有提示
13、 wc 统计字符数
154 233 3418
154 :行数
233 :单词数
3418 :字符数
例如: wc aa.txt
14、 ln 创建链接文件
默认创建的是硬连接,好比复制 ,但是两个文件会同步
ln aaa.txt bbb 硬连接
ln –s aaa.txt bbb 软连接 类似于windows中创建一个快捷方式
15、 pwd 查看当前路径的绝对路径
16、 passwd 设置密码(需要先输入原密码,再设置新密码)
17、 su 切换用户
su root
su zrgk
由其他用户切换到root目录不需要输入密码
由root用户切换到其他用户不需要输入密码
l Linux系统命令
1、 stat 查看文件的详细信息
例如:stat aaa.txt
2、 who与whoami
who 查看在线的用户
whoami 查看当前自己的用户
3、 hostname 显示主机名
4、 uname 显示系统信息
uname –a 显示完整的系统信息
5、top 显示当前耗时的进行的信息 ,每3秒刷新一次
cltr+c 中断
6、 ps 显示当前进程的快照 (没有自动刷新的效果)
7、 du 显示文件大小信息
8、 df 磁盘使用情况
9、 ifconfig 查看或配置网卡信息,相当于windows中的ipconfig
设置虚拟机ip地址:
1、 设置vmware的连接方式
ü NAT模式:共享宿主机的ip地址,在网上邻居找不到(默认)
这里说的共享主机ip,不是和宿主机的ip完全相同
而是一种内部映射(类似于网吧中的一个光纤(一个ip),带多台电脑)
ü 桥接方式:需要单独设置ip,可以在网上邻居查找
ü 仅主机模式:只有宿主机才能访问虚拟机,其他机器不能访问虚拟机
2、 图形界面设置ip地址
3、 命令方式设置ip地址 切换到root用户
查看以太网卡名: ifconfig
手动配置
重启网络服务: service network restart
10、ping命令 和windows的ping命令相同
11、clear 清除 windows cls
12、kill 杀死进程
Kill pid (pid指进程id,使用top命令或ps命令查看)
13、netstat 网络连接详细信息
14、useradd 操作用户
1
切换到root用户 cat /etc/passwd 查看所有用户信息
例如:zrgk:x:500:500:zrgk:/home/zrgk:/bin/bash
zrgk 用户名
x 密码 已加密 加密文件存放在 /etc/shadow 目录下
500 账号id user id
500 组id group id
home/zrgk 该账号存放文件的默认位置
/bin/bash 该账号shell脚本的解析方式 (sh、bash、rbash)
2 创建账号:
useradd lixin –d /home/lixin –s /bin/bash
lixin 用户名
-d 指定该用户的home路径
-s 指定该用户的shell脚本解析方式
操作步骤:
1 创建 /home/lixin 目录
2 执行 useradd 命令
3 用passwd命令改密码
4 使用su命名切换用户
六 打包、压缩(解压)文件
常见压缩文件格式:
Windows rar 、zip
Linux gz、bzip、zip
1、tar 打包命令 (归档文件)
tar –cxzjvf 打包后的文件 欲打包的文件
- c :创建的一个归档文件 ,即打包文件夹
- x :拆包
- z :以gzip 格式压缩,默认压缩倍数 6倍 (0-9)
- j :以bzip2格式压缩
- v :显示打包或者拆包的文件信息
- f : 后面紧接一个 归档文件
例如: tar –cvf news.tar ./java 把当前目录下的java目录打包
tar –xvf news.tar 拆包
2、 gzip 压缩文件
--压缩:
gzip news.tar 对归档文件直接进行压缩,生成 new.tar.gz文件
--解压:
gzip –d new.tar.gz 把压缩文件解压成归档文件
3、 打包及压缩
--打包及压缩
tar –czvf news.tar.gz ./java 对java文件进行打包及压缩
--拆包及解压缩
tar –xzvf news.tar.gz 对new.tar.gz 进行解压
七、管理软件
Windows .exe 安装、卸载
安装:双击执行.exe 文件
卸载:该软件的唯一标识(包名, 当软件做到公认时,包名就会简短,例如MySQL、QQ等)
Linux:
ubuntu : 对debian的升级 所以 *.deb 格式
安装:sudo dpkg –i 要安装的文件 (I install)
卸载:sudo dpkg –r 包名
red hat :*.rpm rpm命令
CentOS : 是Red Hat的社区版 *.rpm
rpm –ivh xxx.rpm 离线安装
yum –y install xxx 在线安装
n Vi/vim 软件,相当于windows中的记事本,但是功能比记事本强大
1 安装vim CentOS系统,默认安装了vim
Ubuntu 系统 需要安装
没有安装手动安装: yum -y install vim*
2 使用 vim
例如:vim aaa.txt 使用 vim 打开 aaa.txt 文档
操作模式:
1 一般模式:默认进入的模式,这个模式不能编辑文档,只能查看文档
在一般模式中 按 i (insert) 进入 编辑模式
2 编辑模式:
该模式可以编辑文档,按esc进入一般模式
3 命令模式:在一般模式中 按 :进入命令模式
q 安全退出,当没有操作该文档,则直接按q退出vim
q! 当修改了内容,不想保存 q!强制退出
wq 保存退出
set number 显示行号
set nonumber 不显示行号
4 vim中翻页
ctrl+f ctrl+b
5 vim中检索(查找) 按/键
更多使用: http://www.runoob.com/linux/linux-vim.html
八、 使用ssh远程安全访问Linux系统
8.1 SSH
传统的网络服务程序,FTP、POP、telnet 本质上都是不安全的,因为它们在网络上通过明文传送口令和数据,这些数据非常容易被截获。SSH叫做Secure Shell。通过SSH,可以把传输数据进行加密,预防攻击,传输的数据进行了压缩,可以加快传输速度。
OpenSSH
SSH是芬兰一家公司开发。但是受到版权和加密算法限制,现在很多人都使用OpenSSH。OpenSSH是SSH的替代软件,免费。
OpenSSH由客户端和服务端组成。
CentOS系统中默认安装了OpenSSH
n 通过windows ssh客户端来访问linux服务端
Windows系统 使用 putty 软件访问 Linux服务端
- 支持中文设置
https://blog.csdn.net/xdfwsl/article/details/3031116?utm_source=blogxgwz1
n 使用winscp 软件,进行客户端和服务器端文件传输
8.2 安装Python
8.3 安装django部署环境
8.4 IDE及常用工具安装
8.5 安装JDK、配置环境变量、运行HelloWorld程序
1. 安装JDK
步骤:
1、进入root用户
9 把Linux版本的JDK(jdk1.7) 文件 拷贝到 /opt
3、解压:
如果是.gz文件 使用 tar -xzvf 命令解压
如果是 .bin文件(可执行文件) 使用 ./xxx.bin 执行后就自动解压
4、在bin 目录下编写HelloWorld.java 程序 编译、运行
(在bin 目录下运行 javac命令和java命令时,需要加 ./)
./javac HelloWorld.java
./java HelloWorld
5、设置环境变量
1 vim etc/profile
2 一定要加在文件的末尾
export JAVA_HOME="/opt/jdk1.7.0_51"
export PATH="$JAVA_HOME/bin:$PATH"
3 刷新配置,让配置生效
source /etc/profile (一定要刷新,不刷新不能生效)
4 编写HelloWorld.java 编译、运行
九、 设置Linux系统防火墙
service iptables stop 关闭防火墙
service iptables start 开启防火墙