----------------------linux从安装到使用----------------------------
【图文详情请到本博主资源库去下载word文档进行查看,下面只是文字】
一. Linux
什么时候使用linux操作系统?
答:作网站服务器运行的操作系统就是linux
apache、php、mysql等服务软件需要安装在此系统里边。
该系统特点:稳定、免费、网络功能丰富(apache/redis/memcache/邮箱/mysql等等)、安全
做一个虚拟的裸机电脑。
使用软件制作裸机电脑:vmware、virtualbox
禁用其他网卡,只保留本地连接网卡:
1. 攒一个虚拟裸机电脑
2. 安装操作系统
创建第一个swap交换分区,大小是2048M。
交换分区:把硬盘的一点空间开辟出来当做内存使用,被开辟的内存空间就是交换分区空间。目前,虽然不使用交换分区,但是有的linux系统要求必须设置。
交换分区大小建议是内存2倍。
给/boot创建一个分区,系统启动核心文件都在boot目录下存放。
该分区效果“专款专用”,200M的空间专门给启动系统的时候使用。
最后把剩余可用空间都分配给/根目录分区。
之后重新引导
3. 系统安装后的配置
4. 简单指令
二. 操作系统分区原理
1. win系统分区原理
类似:倒着的森林
2. linux系统分区原理
类似:倒着的一个“大树”
总结:
1. 安装系统
2. 指令
cd ls init whoami pwd su
3. 分区原理
三. 根目录文件介绍
1. 内核文件与发行版
Linux操作系统是1991年芬兰 赫尔辛基大学一个大学生林纳斯.脱瓦斯 发明的一个类Unix操作系统。林纳斯 开发的部分就是操作系统系统的“内核文件”。
发行版:指的是由软件发行公司,把一定的Linux内核版本、应用程序和相应的系统管理软件和安装程序,组装成一个发行套件。
发行版:内核版本文件 + 外围软件(图形化界面、安装程序、办公软件、记事本、编译器、解释器等等)
例如:
Redhat: 内核文件 + 外围软件
CentOS: redhat发行版 + 企业相关软件
发行版本号码,由发行商自己决定,一般与内核版本的数字不一样。
全世界的linux系统的种类有上百种,它们都是linux不同的发行版。
目前Linux中国的发行版本(Linux Distribution)主要有Red Hat(红帽子), Slackware, Caldera, Debian, RedFlag(红旗), Blue Point(蓝点), Xteam Linux(冲浪), Happy Linux(幸福Linux), Xlinux、ubuntu等若干种,推荐同学们使用的发行版本是CentOS,其是对红帽(red hat)封装的企业版。
记住的目录: /home /dev /var /etc /usr
四. 目录操作
目录创建、移动、改名字、复制、删除
1.相对路径与绝对路径
目录1:/home/jinnan/tianjin/liaoning/dalian/jinzhou我
目录2:/etc/sysconfig/network-script/
jinzhou---->network-scirpt: cd /etc/sysconfig/network-script [绝对路径]推荐
cd ../../../../../../etc/sysconfig/network-scirpt [相对路径]
jinzhou---->dalian : cd ../ [相对路径]推荐
cd /home/jinnan/tianjin/ningliao/dalian [绝对路径]
在linux系统里边到达一个地方或获得一个文件,绝对路径和相对路径做选择性使用。
五. 简单文件操作
文件的查看、创建、追加内容
六. 用户和组的操作
linux系统对用户、组别、被操作的文件有独特的设置:
用户与组别对应、组别与被操作的文件对应(类似权限控制RBAC)
后期系统使用过程中管理员root就只需要关心用户是属于哪个组别的即可
/etc/passwd存储的用户信息:
用户操作指令:
七. 给用户设置密码,使其登录系统
密码需要输入两次
使得geyou用户登录系统:
八. linux发展野史
stallman
1953年出生,为了自由软件事业,至今未婚
大师有一台电脑,是中国江苏产的龙芯电脑,此电脑并非个人财产,是自由软件基金会的
70年代上大学,美国哈佛大学,同时受聘于麻省理工学院人工智能实验室 做程序员,开发自由软件。
自由软件标准:开源、免费
70---80年代 unix系统诞生,一个多任务、多用户,受众非常广泛的操作系统
操作系统:
多用户、多任务:unix/linux
单用户、多任务:windows系统
单用户、单任务:小霸王游戏机
80年代,加州大学伯克利分校的几个研究生 发布了一个unix的商业版BSD版
同期 麻省理工学院人工智能实验室 的成员纷纷单飞 或 组团开公司 搞“商业软件”
此时实验室就剩下stallman一个人了
大家都搞商业软件,大师对此感到气愤与无奈。
1984年,GNU项目启动
相继gcc、Emasc等软件被开发出来
成立FSF自由软件基金会
为软件授权CopyLeft CopyRight
GPL协议
1989年 gnome桌面程序
1991年,林纳斯发明了类unix操作系统 linux
stallman利用自己的三寸不烂之舌说服林纳斯把linux内核纳入GNU项目
至此,GNU项目渐入佳境。。。
GNULinux系统贡献比例
林纳斯:3%
GNU: 30%多
全世界许多自由软件爱好者: 60%多
总结:
1.系统根目录文件介绍
/home 家目录
/var 项目部署目录
/usr 软件安装目录
/etc 主要配置文件目录
/dev 硬件设备目录
2.目录操作
创建:mkdir -p newdir
移动改名字: mv dir1 dir2/newdir
复制改名字:
cp -r dir1 dir2/newdir
cp filename dir/newfile
删除:
rm -rf filename
3.文件简单操作
a) 查看:cat more less head -n tail -n wc
b) 创建: touch filaname
c) 追加内容 : echo 内容 >/>> filename
4.用户和组操作
用户操作:
创建:useradd -g gid -u uid -d home_dir 用户名
修改:usermod -g gid -u uid -d home_dir -l newname 用户名
删除:userdel -r 用户名
组操作:
创建:groupadd -g gid 组名
修改:groupmod -g gid -n newname 组名
删除:groupdel 组名
5.给用户设置密码
>#passwd 用户名
> passwd //给本身用户设置密码
作业:
1.给系统创建3个组别
给每个组别添加2个用户
给每个组别的其中一个用户设置密码,使其可以登录系统
2.练习目录和文件操作
-------------------------linux常用命令区-----------------------------------
1. 查看目录下有什么文件信息
> ls //list查看当前目录下有什么文件
> ls -l 或ll //list -list 通过详细内容形式查看目录下的文件内容
> ls 目录 //查看指定目录下文件名字信息
> ls -l 目录 //以详细列表形式查看指定目录下文件名字信息
> ls -a //list all 查看全部文件,包括隐藏文件
> ls -al //list list all 以详细列表形式查看全部文件,包括隐藏文件
> ls -i //查看目录下文件名字的索引号码
2. 目录切换
> cd 目录名字
> cd .. //向上级目录切换
> cd ~ //快速切换回自己的家目录
3. 查看当前操作位置
> pwd
4. 查看操作者信息(是谁在操作系统)
> whoami
5. 不同用户间的切换
> su - //切换为root用户
> su - root //效果同上
> su 普通用户名称 //向普通用户切换
exit //当前用户退回到之前用户
su多次使用,用户会“累加”,建议“su” 和 “exit”匹配使用
jinnan--->root--->jinnan--->root--->jinnan
6. 图形模式与命令模式进行切换
># init 3 //图形 向 命令模式切换
># init 5 //命令 向 图形模式切换
7. 查看指令对应的可以执行程序文件位置
> which 指令
8. 目录操作
1)创建目录 make directory
> mkdir newdir
> mkdir -p newdir/newdir/newdir //递归方式创建多级目录
newdir新目录多于1个层次(2/3/4等)就设置-p参数,如果就一个新的目录则无需-p参数
> mkdir dir/newdir
> mkdir dir/dir/newdir
> mkdir -p dir/newdir/newdir
2) 移动(改名字)目录 move
(目录/文件 都可以操作)
> mv dir1 dir2 //dir1移动到dir2目录下,并给改名字为"原名"
> mv dir1 dir2/newdir //dir1移动到dir2目录下,并给改名字为newdir
> mv dir1/dir2 dir3/dir4 //dir2移动到dir4目录下,并给改名字为"原名"
> mv dir1/dir2 dir3/dir4/newdir //dir2移动到dir4目录下,并给改名字为 newdir
> mv dir1/dir2 ./ //dir2移动到 当前 目录下,并给改名字为"原名"
> mv dir1/dir2 ./newdir //dir2移动到 当前 目录下,并给改名字为newdir
3) 复制(改名字)目录 copy
(目录/文件 都可以操作)
//① 复制普通文件
> cp file1 dir1 //file1被复制到dir1目录下一份,并给改名字为“原名”
> cp file1 dir1/newfile //file1被复制到dir1目录下一份,并给改名字为newfile
//② 复制目录 -r参数要求
//recursive递归方式拷贝目录
> cp -r dir1 dir2 //dir1被复制到dir2目录下一份,并给改名字为“原名”
> cp -r dir1 dir2/newdir //dir1被复制到dir2目录下一份,并给改名字为newdir
> cp -r dir1/dir2/dir3 dir4/dir5 //dir3被复制到dir5目录下一份,并给改名字为"原名"
4) 删除 remove
> rm filename //普通文件删除
> rm -r dir //删除目录[无视层次]需要-r参数
> rm -rf 文件 //recursive force 递归强制删除文件
//force 避免删除隐藏文件的提示
> rm -rf / //递归强制方式删除系统里边的全部内容
9. 文件操作
1) 查看文件内容
> cat filename //在终端显示文件全部内容
> more filename //通过"敲回车"方式从第一行逐行查看文件内容
//不支持回看
//q键 退出查看
> less filename //"上下左右"键方式查看文件各个部分内容
//支持回看,q键 退出
> head -n filename //查看文件“前n行”内容
> tail -n filename //查看文件“末尾n行”内容
> wc filename //计算文件行数
2) 创建文件
> touch filename
> touch dir/filename
3) 追加内容(文件不存在会“自动”创建)
> echo 内容 > filename //给文件“覆盖写”方式追加内容
> echo 内容 >> filename //给文件纯追加内容
10. 用户操作
user,配置文件/etc/passwd
1) 创建 add
># useradd username //创建用户会同时创建同名组
># useradd -g 组编号 username //创建用户的同时设置组别
># useradd -g 组编号 -u 用户编号 -d 家目录 username
//创建用户同时,指定组别、用户编号、家目录
2) 修改 modify
># usermod -g gid username //修改组别是常见操作
># usermod -g gid -u uid -d 家目录 -l newname username
//修改组别、用户编号、家目录、名字
注意:家目录修改后需要手动创建,不同于创建用户家目录设置
创建用户时设置家目录,该目录会自动创建
修改用户家目录时,该目录不会自动创建(需要手动创建)
3) 删除 delete
># userdel username //删除用户(删除passwd文件对应信息),此时其家目录需要手动删除
># userdel -r username //删除用户的同时也删除其“家目录”
11. 组别操作
group, 配置文件/etc/group
1) 创建 add
># groupadd groupname
2) 修改 modify
># groupmod -g gid -n newname groupname
3) 删除 delete
># groupdel 组名
//注意:只有空组(内部没有用户信息)才允许删除
12. vi编辑器使用
1) 命令模式-->编辑模式切换(插入/Insert)
a "光标" 向后移动一位
i "光标" 和 "内容" 没有变化
o "新"起一个空白行
s "删除"光标所在字符
2) 尾行模式作用
:q quit退出编辑器
:wq write quit 保存并退出
:w write 保存
:q! 强制退出(不要保存)
:w! 强制写保存
:wq! 强制保存退出
:set number 或 set nu //给编辑器设置行号
:set nonumber 或 set nonu //取消行号设置
:数字 光标跳转到数字所在行
:/内容/ 或 /内容 //内容查找,小写n(next)下一个
大写N(next)上一个
内容替换 "cont1"被替换为"cont2"
:s/cont1/cont2/ //把光标所在行的"第一个"cont1替换为cont2
:s/cont1/cont2/g //把光标"所在行"的全部cont1替换为cont2
:%s/cont1/cont2/g //把"整个文档"中的全部cont1替换为cont2
3) 命令模式操作
① 光标移动
a. 字符级
上(k) 下(j) 左(h) 右(l) 键
b. 单词级
w word下个单词首字母
e end下(本)个单词尾字母
b before上(本)个单词首字母
c. 行级
$ 行尾
0 行首
d. 段落级(两部分内容中间有空行,彼此成为段落)
{ 上(本)个段落首部
} 下(本)个段落尾部
e. 屏幕级(不给翻屏)
H 屏幕首部
L 屏幕尾部
f. 文档级
G 文档尾行
1G 文档第一行
nG 文档第n行
② 内容删除
dd 删除光标所在行
n+dd 包括当前行在内向下删除n行内容
x 字符级删除,删除光标所在字符
cw 光标所在字符删除至单词结尾(是删除单词的便捷方式)
同时会进入编辑模式
③ 内容复制
yy 复制光标所在行
n+yy 包括当前行在内向下复制n行内容
p 对复制(删除)好的内容进行粘贴操作
④ 便捷操作
u undo撤销,从文件打开后的所有操作都可以撤销
r 对单词字符进行替换
. 重复执行"最近"的一条指令
J 合并上下两行
13. 权限设置
1) "字母相对方式"设置权限
权限: r读 w写 x执行
用户: u主人 g同组 o其他组
chmod u+/-rwx, g+/-rwx, o+/-rwx 文件
不同用户通过",逗号"分隔
在同一个用户里边,+/-只能用“一个”
"rwx"在同一个用户里边可以设置一个或多个
"ugo" 每次权限操作可以设置一个或多个用户
>chmod u+rw filename //主人增加读、写
>chmod g-rx filename //同组删除读、执行
>chmod u-w,g+x filename //主人删除写,同组增加执行
>chmod o+w,o-x filename //其他组用户“增加写、删除执行”
2) "数字绝对方式" 设置权限
读:4 写:2 执行:1
权限类型:
0: 没有权限
1: 执行
2: 写
3: 写、执行
4: 读
5: 读、执行
6: 读、写
7: 读、写、执行
chmod ABC filename //ABC分别代表主人、同组、其他组用户权限
>chmod 764 filename //主人读、写、执行, 同组读、写, 其他读
>chmod 777 filename //满贯权限
>chmod 000 filename //所有用户没有任何权限
字母和数字方式取舍:
权限修改的比较"少",就使用字母方式
权限修改的比较"多",就使用数字方式
14. 在文件中查找指定内容
grep 内容 (绝对/相对路径)目标文件
> grep sbin /etc/passwd //在passwd文件中查找sbin字样,会把sbin所在行的内容都输出
15. 查看文件占据磁盘空间大小
du -h 文件/目录
> du -h 文件名称 //以k M的形式查看文件占据磁盘空间大小
16. 文件查找
find 现值查找目录 选项 选项值 选项 选项值....
具体选项:
① name 根据文件名字查找指定的文件
find 目录 -name 完整文件名称
> find / -name passwd[完整名称] //"递归遍历"系统全部目录查找名字等于passwd的文件
> find /etc -name passwd[完整名称] //递归遍历/etc及内部所有目录查找 名字等于passwd的文件
>find 目录 -name "an*"[部分名称] //模糊查找文件名字以an开始的
② 对查找的目录层次进行限制
-maxdepth 限制查找的最"深"层次
-mindepth 限制查找的最"浅"层次
> find / -name passwd -mindepth 3 -maxdepth 4 //在3到4个层次的目录里边定位passwd文件
③ 根据文件大小进行查找
size 单位
> find ./ -size 50c //在当前目录下查找大小[等于]50个字节的文件
单位:
数量 单位 实际大小
100 -------> 512字节:【100*512字节】
50c -------> 字节 : 【50字节】
50k -------> 千字节: 【50*1024字节】
50M -------> 兆字节 【50*1024*1024字节】
> find ./ -size +50c //在当前目录下查找大小[大于]50个字节的文件
> find ./ -size -50c //在当前目录下查找大小[小于]50个字节的文件
17. 开关机指令
># reboot //重启
># poweroff //关机