linux基础

来源:互联网 发布:陕西网络干部学院 编辑:程序博客网 时间:2024/05/16 12:37
Linux基础教程
一、Linux简介
1、操作方式
GUI  图形用户接口
GLI  命令行接口(text mode 文本模式)
2、Linux的设计理念与windows有很大差异
Linux的桌面系统X-window
3、版本:
·发行版本:
REDHAT:小红帽;3个版本:个人版(9.0) 企业版社区版
社区版(Centos6.2) 准企业版
·内核版本:2.6
4、LAMP 自由软件
L(linux) A(apache)  M(mySQL)  P(PHP)
5、相关概念:
Free Software :自由软件
GUN :革奴计划
特点:自由地“使用,复制,修改和发布”
FSF:自由软件基金会
GPL:GNU通用公共许可证(自由)
Copyleft:反版本
二、系统安装
1、最小化原则:
能不安装的就不安装
2、Windows+Linux(双系统)
条件:先装Windows,在装Linux
硬盘分区:
主分区+扩展分区<=4
(逻辑分区) 活动分区
RAID(冗余磁盘,用于服务器)
3、虚拟机:
VMware
Vbox(Virtual box 甲骨文)
VPC(微软)
4、Linux 安装准备:
虚拟机
虚拟光盘(*.ISO) 镜像文件,*.gho(image)
Ghost:partion-to-from /image
一键       还原   备份
     6.3新增功能:
Memory test 内存测试
Write chagges to disk 将改变写入磁盘 
sdaxc(/dev/sda)
sd:硬盘类型,如:SATA,SCSI,U盘
a:表示地几块硬盘,如:sdb
x:一般用数字(1-n)表示第几个分区
如:sdb1,sdb2
/dev/sda:绝对路径(一般都是以文件形式表示)
Windows中的分区在Linux中以挂载点形式存在
5、分区:至少分两个
1. 根分区;挂载点(/)
2.交换分区;(swap),原则是物理内存的2倍,但不建议超过2G
当把(usr)单独分为一个区时尽量大点4-5G
6、登录界面:
[root @ localhost ~]#
Root:表示用户名
Localhost:host name 主机名
~:表示用户当前的家目录
/home:一般用户的家目录所在的父目录
/root:root用户的家目录
#:表示以管理员身份登录($,表示以一般用户身份登录)
三、基本操作:
1、界面更改:
图形(5)---->文本(3)
·终端下以root身份输入:init 3(一次性)
·修改配置文件(/etc/inittab),永久设置
附:vi简介:------>Vim(升级版)
一般模式:a
编辑模式:esc退出当前模式
末行命令模式:输入冒号(wq保存退出)
Reboot:重启
文本(3)------>图形(5)
·init 5或 startx(一次性)
·修改配置文件,和上面一样
终端切换:alt+F1---F6
2、网络配置:
默认的网卡配置文件(vi /etc/sysconfig/network-scripts/ifcfg-eth0):
DEVICE=”eth0” 设备名
BOOTPROTO=”dhcp(手动)/static(自动)”ip地址获得方法
ONBOOT=“yes”    系统启动时打开网卡
TYPE=“Ethernet”  网卡类型(以太网)
IPADDR=           设置ip地址
NETMASK=255.255.255.0   子网掩码
COATEWAY=            网关
设置完成后运行 ifconfig –a|less  查看ip地址
·测试:
Ping 设置的ip
·连接:
1、设置Linux计算机ip地址
2、设置物理机的网卡(VMnet1)的ip;  (必须与Linux中的ip属于同一网段)
测试物理机 ping 设置的ip
3、在虚拟机里ping 物理机的ip(测试虚拟机和物理机的连通性)
如果不通,考虑关闭防火墙(Linux:iptables –F;物理机:在控制面板)
4、远程访问
四、Linux 基本操作命令(1)
Pwd  查看当前目录
1、退出登录方式:exit     logout    ctrl+d
2、Shell(贝壳):是用户和Linux内核之间的接口程序,还是一个命令语言解释器;
3、用户
shell(文本)  X-Window(KDE.GONME)(图形)
操作系统(内核)
硬件
Who |grep|202|WC -1
4、shell类型
sh→bash(默认)
csh→tcsh
Ksh→pdksh
5 、 查看当前计算机shell
Echo $SHELL
.echo : 回显,原样输出
.SHELL: 系统变量(默认大写,如:SHELL,PATH)
.调用度量用‘$’代替
6、当前计算机支持shell:
Cat_/etc/shells(less ,more , cat 显示文件类容)
/sbin /nologin(不登录)
7、 改变shell 方法:
命令:chsh username 改变后注销生效
修改配置文件:/etc/passwd   (用户文件)
8、 ls<--->list  列表,列出当前目录内容
9、文件的颜色:
白色:普通文件      桔黄色:设备文件(/dev) 分类:块设备和字符设备
红色:压缩文件      青绿色:可执行文件(/bin ,/sbin)
蓝色:目录文件  粉红色:图片文件
青蓝色:连接文件
File : 查看文件类型
10、LINUX 的目录结构:
/:一级子目录:  (加粗重点掌握)
*Etc:配置文件 boot:引导启动 mnt:挂载点var:可变的数据;如,日志文件
bin:可执行文件 sbin:系统管理命令 lib:库
usr:程序(相当于物理机的Program Files)lost+found:丢失+找回
proc:process进程,系统信息文件;如: /pro/cpuinfo
selinux: 文件安全机制dev: 设备文件 home:家目录
media:媒体 root::root的家目录 tmp:临时文件夹(定期自动清理)
FHS:文件系统层次标准,规定了两层规范;
·第一层是 / 下面的给个目录应该要放什么文件数据
·第二层是针对/usr 及/var 这两个目录的子目录来定义
11、虚拟机与物理机数据的传输
·Linux 中建立samba服务器
·用U盘进行传输
前提条件:U盘一个,文件系统不能是NTFS。Windows中打开Vm USB服务
·物理机插入U盘,更改设备---->U盘设置--->connect(disconnect from host)连接(从主机中断开连接)
·mkdir /mnt/usb  建立一个挂载点
·fdisk -1   查看硬盘分区信息
/dev /sdx1
·mount /dev /sdx1 /mnt/usb   挂载
·cd /mnt /usb   目录切换
·卸载:umount /dev/sdx1
·断开:虚拟机软件设置disconnect(connect to host)   挂载
五、Linux 基本操作命令(2)
1、Command   not   found
命令 没有被找到
原因:1.命令打错了
 2.确实没有这个命令
 3.命令没有安装
2、Linux 下命名规则:
·Windows 下,大小写不区分;Linux 下,大小写敏感(严格区分)
·除了 / 之外,所有的字符都合法
·touch 文件名;建立一个空白文件
·rm 文件名;删除一个文件
·避免使用.(点)作为普通文件的第一个字符(隐藏文件)
·mv 原文件名 新文件名;  修改文件名
如:mv 11 .11(隐藏)
Mv .11 11(取消隐藏)
Vi /etc/sysconfig/i18n
3、命令的格式:
·要求:查看C盘windows文件夹中的内容(分页显示)
dir   c:\windows   /p
命令行   操作对象    参数
·要求:查看/tmp下的所有文件(包括隐藏文件)
ls    -a   /tmp
命令行  选项   参数
·选项如果是一个字母,则在其前面加一个‘-’;
·选项如果是一个单词,则在其前面加两个‘-’;
4、文件处理命令:
ls 显示目录文件 <------->  dir
-a:显示所有文件
-l:以长文档的格式显示
Ls –l ll
-rw-r--r-- 1 root root 7 Now 26 16:33 test3
-:表示文件的类型为普通文件
d:目录文件
l:连接文件
rw-r--r--:九个符号分为三组,每组包含三种权限
r:读 w:写x:可执行 -:无此权限
chmod a+x test3 对文件所有的三组添加x权限;
一个文件是否可以执行,取决于是否有可执行的权限,但是是否有执行效果则取决于该文件。
第一组(rw-): 用户本身对该文件的权限;
第二组(r--): 则表示用户所在的组对该文件的属性;
第三组(r--): 其他用户;
1:表示拥有该文件相同索引节点的数量;
查看文件的索引节点号(ls -i)
Root:文件的所有者;
Root:文件的所属组;
-d:查看目录;(ll –d 目录名)
which 命令
查找指定的命令所在的绝对路径;如:which ls
alies 别名
创建一个别名; 如:
alias vn0 vi /etc/sysconfig/network-scripts/ifcfg-eth0
操作技巧:
Tab:命令不全、文件名补全;
六、Linux基本命令(3)  —文件类操作
1、cd 路径  设定指定的路径为当前目录; mdcd rd
如:cd /tmp
cd / 切换到根目录
cd  切换到当前目录的家目录; 等价于cd~
cd ../.. 上一级目录的上一级目录
2、pwd  打印或者显示当前目录;
3、touch 文件名  创建一个空文件;
4、mkdir 文件名   创建一个文件夹;
mkdir -p /a/b/c  同时创建多个目录;
5、cp (copy) 复制文件或目录
Cp (路径)源文件名   (路径)目标文件名
如: cp /boot/grub/grub.conf  /bk/grub.conf.bk(异名复制=另存为  备份)
  cp /boot/grub/  /bk
Omitting directory    忽略文件夹
-R  复制文件夹 递归  (overwrite   覆盖)
-i   交互式应答;
-v   显示详细过程;
6、mv  移动文件/更改名称
mv  源文件名   目标文件名
(源,目标在同一个目录,则改名)
(源,目标不在同一个目录,则移动)
7、rm  删除文件或目录;      remove: 删除   move:移动
remove directory删除文件夹(rmdir)
rm 文件名(默认删除文件)
-i  交互式;
rmdir: 删除目录  (Directory not empty  目录不为空)
rmdir只能删除空目录;
rm -rf  目录名  强制删除非空目录;   (最常用)
                 -r删除目录;
                       -f强制地;
*例题:删除文件夹里的文件,保留文件夹
rm –rf *
8、cat 文件名  显示文件内容;    (短文档)
        ·more 文件名  显示文件内容;   (长文档,只能向下翻页)
回车键:逐行显示;
空格键:逐页显示;
q:退出
·less 文件名  显示文件内容;(长文档,可以向下向上翻页)
使用方法类似more
pageup 向上翻页,pagedown 向下翻页
9、wc 文件名  统计命令;
-l 按行统计;如: wc -l  /etc/inittab
-c 按字符统计;
10、head:头   显示文件前面的部分
-n 数字:前面的若干行; 等效于 -数字
-c 数字:前面的若干字符;
tail:尾 显示文件后面的部分
11、ln  (link)  创建链接
硬链接:ln 原文件名  硬链接名
·只是创建一个新的指向,并没有新的文件产生
·当删除文件其中的一个硬链接时,不会影响原有文件的内容
软链接:ln -s 文件名 链接名
·创建一个新的文件,该文件的链接到原始文件,相当于快捷方式
·当删除软连接文件后,软连接将失效
创建完用ll查看连接
ll –I 显示出节点号,同一个节点号指向同一个文件
cp备份和硬链接备份有什么区别?
cp因为有新文件产生,所以占用了更多的空间(双倍);
硬链接备份因为没有产生新文件,所以空间没有变化;
硬链接并没有真正的对文件实施备份,只是一个表面上的备份;
七、linux基本命令(4)
权限类操作命令;
-rw-r--r-- 2 root root 59 Dec 4 14:28 file
权限表示:
·字母:
r读  w写x执行
·数字:
有权限:1
无权限:0
rw- : 110----->6
r-- : 100----->4000-111(完全权限)
rwx : 111----->7
把每一组的权限表示转化为十进制;
权限:647
-rw-r--r--. 2 root root   113 12月  4 12:48 a
权限:624
-rw-------. 1 root root  2239 11月 18 01:20 anaconda-ks.cfg
权限:600
-rw-r--r--. 1 root root 13101 11月 18 01:12 install.log.syslog
权限:644
2、权限设置
chmod 权限表示 文件名/文件夹名
·字母:
用户本身;user--->u+增加
用户所在组:group--->g-减去(rwx)
chmod 其他用户:other--->o=赋予
所有用户:all--->a
例: chmod u=rwx,g=rx,o=x 文件名
chmod a-x 文件名
chmod u+x,g+x 文件名
permission denied 权限拒绝
权限=等级
·数字:
chmod 数字权限 文件名、文件夹名
如:chmod 777 文件名


 
文件权限总结   
代表字符 权限 对文件的含义 对目录的含义   
r 读权限 可以查看文件内容可以列出目录中的内容   
w 写权限 可以修改文件内容可以在目录中创建,删除文件   
x 执行权限 可以执行文件 可以进入目录  
3、改变文件或者文件夹的所有者
chown 用户名 文件/文件夹
例:chown admin test
·改变文件或者文件夹的所属组
chgrp 组名 文件/文件夹
例:chgrp 1202 test
·同时改变所有者和所属组
chown 用户名.组名 文件/文件夹
例:chown lisi.1202 test
4、
root(管理员)  umask=022
drwxr-xr-x.  2 root root 4096 12月  4 16:51 test1   权限为755
-rw-r--r--.  1 root root    0 12月  4 16:51 test2  权限为644
lisi(一般用户)  umask=002
drwxrwxr-x.  2 lisi lisi 4096 12月  4 16:54 test1   权限为775
-rw-rw-r--.  1 lisi lisi    0 12月  4 16:54 test2   权限为664
文件夹:加起来 ;777
文件:加起来 ;666
·文件在创建时默认没有可执行权限
·umask 权限掩码;
从权限中“拿走”相应的位,及文件/文件夹在创建时不能赋予的权限
·umask 
临时性改变; umask 111
永久性改变;修改.bash_profile(一般不建议更改)
八、Linux的基本命令(5)
1、文件搜索命令:
·which:那一个
只能搜索系统命令文件;
执行结果显示出命令的绝对路径;
which –a 显示出所有的路径而不仅只是第一个
shell built-in command ,shell的内置命令;
例:which –a ls
1.2 locate 关键字 查找带有指定关键字的文件;
·locate 执行效率高,是因为在内置的数据库中搜索;
·内置的数据会定期自动更新,但也可以手工更新(UPDATEDB)
·/tmp 临时文件夹的结构不计入数据库;
1.3 whereis    在哪
寻找特定的文件
·-b :只找binary(二进制) 格式的档案
·-m:只找在说明文件 manual 路径下的档案
·-s :只找 source 的源档案
·-u:搜寻不再上述三个项目当中得起他特殊档案
例:whereis passwd
whereis -m passwd
whereis -b passwd
1.4 find 查找
Find[搜索路径] [搜索关键字]
-按文件名搜索
·find / http.conf
·find 的单词选项前面加一个‘-’;
·搜索方位尽可能指定小范围;
-按用户名来搜;
·find / -user 用户名
-按时间搜索;
·find / -atime -1
时间: atime:访问时间天数
ctime:修改时间(status 状态) 权限,属性等
mtime:修改时间(文件的内容)
amin cmin mmin 分钟
时间控制:
-1:24小时之前的
+1:24小时之后的
1:24小时之内的
stat filename 查看文件的状态;
-按文件大小来搜索
find /etc –size +163840 –a –size -204800
·163840指的是块的数量(一块为512B)
·+:表示大于  -:表示小于    163840=80M
·逻辑连接符:
-a:and 逻辑与
-o:or 逻辑或
·在/etc目录下寻找对于80M且小于100M的文件;
-连接执行符: -exec
find / -user 1202 –exec ls –l {} \ ;
-连接确认符: -ok
find /tmp –name 文件名 –ok rm {} \ ;
小结:which locate whereis find
1.5 grep 在文件中查找匹配的字符串并显示所在行的内容;
grep [指定字符串] [源文件]
grep root /etc/passwd
2、帮助类命令;
·whatis
简单摘要显示命令
·help *
命令——help
·man (manual)手册*
1:系统命令;
5:配置文件命令;
8:常用命令;
例:man 1 passwd(命令的帮助)
man 5 passwd (配置文件的帮助)
·info(网页形式显示)
九、linux的基本命令(6)
1、打包压缩命令
·Windows中,打包压缩一次完成;
—打包压缩软件(winrar好压 360压winzip)
—压缩文件类型:*.rar *.zip *.iso *.7z *.gz *.bz2
—操作种类:压缩,查询,解压缩
·linux中,打包压缩则要分开操作;
—压缩类型:*.Z(compress 已淘汰)
*.gz (gzip)
*.bz2 (bzip2)
·gzip 压缩解压缩
—gzip 文件名 压缩
—gunzip 文件名 gzip –d <=> gunzip解压缩
注:压缩和解压缩都不保留原文件;
dir is a directory -–ignored
//dir 是一个目录--忽略
gzip 只能压缩文件,不能压缩文件夹;
·bzip2
—bzip2 文件名
—bunzip2 文件名 bunzip2 <=> bzip2 –d
注:-k 允许压缩时保留原文件;
bzip2 只能压缩文件,不能压缩文件夹;
·对文件夹的处理:先打包,再压缩;
tar 打包 (*.tar 注: *.tar需要用户自己输入)
(*.tar 文件及他包)
语法: tar [选项]打包后的文件名 原文件
—-c 产生*.tar文件 create
—-v 显示详细信息;
—-f 指定打包后的文件名 file
案例: ·tar –cvf dir.tar dir //打包
tar –cvf dir1 dir
POSIX tar archive//可移植打包;
·-t 只查询 不解包; //查询包
tar –tvf 包名;
·-x 解包//解包
tar –xvf 包名
重点:
-z:调用gzip程序处理;
-j:调用bzip2程序处理;
综上所述:
打包压缩:tar –zcvf 打包后的文件名(*.tar.gz) 原文件名
tar –jcvf 打包后的文件名(*.tar.bz2) 原文件名
查询压缩包:tar –ztvf 包名(*.tar.gz)
tar –jtvf 包名(*.tar.bz2)
解压缩包: tar –zxvf 包名(*.tar.gz)
tar –jxvf 包名(*.tar.bz2)
bzip2的压缩效果优于gzip;
2、网络通信;
·write username 向指定的用户发送信息;
Ctrl+D 结束通话;
·wall(write all) 广播消息
Ctrl+D 结束通话;
·ping 测试网络连通性
Ping 主机名/IP地址
Ping –c 3 Ip 表示只ping3次
ping –c 3 localhost
·shutdown 关机命令
Shutdown –h now 立即关机init 0
Shutdown –h +10 & 后台执行10分钟后关机
Ctrl+cshutdown –c 取消关机操作
Shutdown –r +10 10分钟之后重启
·reboot 重启命令 init 6
十、linux的基本命令(7)
1、Shell使用技巧:
·tab 补全文件名 命令名
·history 历史,查看历史命令
·alias 别名
l. 显示当前目录下隐藏的文件;(文件包括目录)
2、输入输出重定向;
·标准输入 键盘(stdin 标准输入) 0<
·标准输出 显示屏  (staout )1>
·标准错误 显示屏   (stderr )2> >>追加
·重定向:重新确定方向;(新方向——>“文件”)
例:wall < /tmp/mesg< 输入重定向(小于)
cal  显示日历
cal 2012 >/tmp/cal2012 >输出重定向
·cp –v /tmp/* /test/ >/tmp/right 2>/tmp/wrong
将正确的信息写入right文件,错误的写入wrong文件;
·将正确和错误的信息放入同一个文件:
&>>
cp –v /tmp/* /test/ & >>/tmp/log
·空设备
/dev/null (黑洞)
3、管道  |
把管道左边的命令执行结果作为管道右边命令的输入
Grep admin /etc/passwd | wc –l
4、命令连接符
顺序执行cd / ;ls;ll
&& 逻辑与命令1 &&命令2 只有1执行成功,2才能执行
|| 逻辑或命令1 ||命令2 只有1执行失败,2才能执行
十一、vi编辑器和系统启动解析
vi编辑器
vi 文件名 -->一般模式—a-->编辑模式-esc-->:-->末行命令模式
·一般模式
G  跳到末行
gg 返回首行
nG 跳到指定行(n代表数字,如:2000G 则跳到2000行)


yy 复制当前行 nyy 向下复制多行
p  粘贴在行下
dd 剪切(删除)当前行 ndd 向下剪切(删除)多行


u      取消 取消上一步操作 类似ctrl+z(Windows中)
ctrl+r 重做 恢复上一步操作 类似ctrl+y
·编辑模式
a A i I o O
·末行命令模式
:/ ? 进入末行命令模式
:set nu 设置行号
:set nonu 取消行号
搜索:
/string 按照指定的字符串进行搜索 N 上一个 n 下一个
?string 按照指定的字符串进行搜索 n 上一个 N 下一个
:set ic 忽略大小写 :set noic 取消忽略
查找
·全文搜索替换
:%s/old/new/gc 
全文搜索old并替换成new,替换前要求确认
·指定范围搜索替换
:n1,n2s/old/new/gc 
搜索n1到n2行,找到old并替换成new,替换前要求确认
·保存,退出
:q 退出 :q!强制退出
:w 保存 :w!强制保存
:wq 保存退出 :wq! 不保存退出
:w 文件名 相当于另存为
十二、启动流程解析及GRUB使用
一、power  ---------->  登录
1、POST 加电自检 power-on self test
BIOS 基本的输出系统
CMOS参数 (RAM 可读可写)——CMOS电池
2、根据BIOS里设置的启动顺序
First boot device
3、根据上述设置去相应位置加载启动程序
Windows: ntldr
Linux: lilo, grub(推荐)
4、加载内核
/boot/grub/grub.conf
Kernel 内核存储的绝对路径;
5、启动系统的启动级别
/etc/inittab
6、根据相应级别去/etc/rc.d/rc0.d-rc6.d中寻找相应的链接
登录
二、GRUB使用案例
·取消菜单隐藏
#hiddenmenu
·修改启动图片文件
/boot/grub/splash.xpm.gz
·忘记root密码(原理:启动单用户模式)
重启系统
在重启菜单处选择“e”进行更改
(在kernel的行尾,添加空格1或者空格s或空格single)
(在kernel的中间,root前空格single)
回车确认 按“b”重启;
进入系统,输入passwd更改密码;
·加密
菜单界面
启动项目
 修改配置文件/boot/grub/grub.conf
                     title 上面加密则为菜单加密
password 1234
lock
title 内部为title
password 4321
·md5加密
Md5算法 单向散列函数
#grub
#help
#md5crypt (加密)
#quit (退出)
用法:
原方法:password 1234
新方法:password ——md5 $1$uxh1z0$v4lg5QXh9X1Cu6Jhir0SQ/
·系统崩溃
一般崩溃:配置文件出错,少量文件丢失
进入拯救模式
操作类似于安装系统;
改BIOS,加光盘;
启动界面选择rescue字样;
根据提示操作;
原有系统被挂载到/mnt/sysimage
深度崩溃:
保护好数据,重装系统;
十三、软件包处理
·windows
安装 修改修复 删除
-修改:指添/或者删除部分功能;
-修复:修复损坏的软件;
Oracle 注册表(绿色软件)
·linux
安装 查询修改(升级) 删除
oracle 无注册表
·linux程序分为两类:
-debian deb
-redhat rpm(红帽子包管理)
·查询:
rpm –qa 查询已安装的软件
rpm –qa |grep httpd查询指定的软件装没;(httpd 软件名)
rpm -qa |wc –l统计已安装程序的数量;
rpm –ql httpd |wc –l 统计httpd在安装在系统中的文件数量;
·删除:
rpm –e 软件包 rpm –e zip
·安装:
rpm –ivh 包名
i:安装 v:详细信息h:进度
·升级:
-新版本软件有更多的功能
-新版软件解决旧版本存在的漏洞
rpm –Uvh 包名
作业:安装gpm(文本模式下的鼠标)  gcc
Error: Failed dependencies;
错误    失败     依赖
解决依赖关系:
redhat 利器:yum  
设置好yum源:
·互联网
安装命令:yum install 软件名
·设置本地yum源(光盘)
设置yum源为光盘:
步骤:
挂载系统光盘;
Mount /dev/cdrom /mnt/cdrom
打开目录:/etc/yum.repose.d
(重命名) CentoOS-Base
编辑CentOS-Media
修改baseurl=///光盘挂载点
baseurl=///mnt/cdrom
修改enabled=1


作业:设置本地光盘yum源;安装gcc;利用gcc编辑一个*.c文件。



原创粉丝点击