学习笔记,转自:http://wenku.baidu.com/view/74a9b53283c4bb4cf7ecd10c.html
linux视频教程第0讲.开山篇
为什么学习linux
linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用linux
linux内核:redhat 、红旗linux、ubuntu、suse、fedora,它们的内核都是一样的(Note:linux其实是一个统称,就比如面条是一个统称,可以有哨子面、阳春面、打卤面等)
linux for工作
- linux系统管理员
- linux系统的维护、配置等
- linux程序员
- 需c/c++、java,php、jsp…
- linux软件工程师(PC)
- linux嵌入式开发(单片机、芯片)
如何学习linux
第一阶段:linux平台上的开发,包括vi,gcc,gdb,make,jdk,tomcat,mysql..和linux基本操作
第二阶段:加厚c语言功底《c专家编程》或是java语言
第三阶段:学习unix环境高级编程《unix环境高级编程》
第四阶段:linux应用系统开发/linux嵌入式开发
内容讲解
基础部分
- linux基础知识
- linux常用命令80个
- linux分区/vi/权限…
实用部分
- Samba安装与配置
- linux网络环境配置
- crontab使用
- jdk/apache/mysql/ssh/rpm安装与配置
- linux下java网络编程
- shell初步介绍
推荐书籍
- 《鸟哥的Linux的私房菜基础学习篇》鸟哥、许伟、林彩娥等编著
- 《Linux编程从入门到精通》宫虎波编著
- 《Linux内核完全剖析》赵炯编著
linux视频教程第1讲.基础介绍
linux的初步介绍
linux的特点
- 免费的/开源
- 支持多线程/多用户
- 安全性好
- 对内存和文件管理优越
linux的缺点
- 操作相对困难
linux的历史
- 1960时期左右,MIT,即麻省理工学院有一台电脑,使用分时操作系统,只能同时允许30个人通过终端登录
- 1965年,MIT、GE、Bell实验室,决定将30è300个人分时系统,multis计划,即火星计划
- 1969年,火星计划失败。但Bell的Ken Thompson开发了一个file server system文件系统,在Bell实验室很受欢迎
- 在Dennis Ritchie的加入下,1973年,unix诞生,开源,源码内核共享
- IBM:AIX
- Sun:Solaris
- HP: HP unix
- 伯克利分校:BSD
- minix系统出现
- Linus Torvalds,芬兰读书,拥有PC 386,1991年计划把minix移植到pc上,1994发布linux 1.0版 linux is not unix,完全没有桌面
- redhat红帽子
- s.u.s.e
- 红旗linux
linux的第一次接触
关机命令
shutdown ‑h now立即进行关机
shutdown ‑r now现在重新启动计算机
reboot 现在重新启动计算机
进入桌面
startx
用户登录
登录时尽量少用root账户登录,因为它是系统管理员,最大的权限,难免操作失误。可以利用普通用户登录,登录后再用“su -”命令来切换成系统管理员身份
用户注销
在提示符下输入logout即可
linux视频教程第2讲. vi编辑器的使用
什么是vi编辑器
vi编辑器是linux下最有名的编辑器,也是我们学习linux必须掌握的工具,在linux下也可使用vi进行程序的开发,如java程序,c程序
如何使用vi进行开发?
在linux下使用vi开发一个简单的java程序Hello.java,并且在linux下运行成功
- 开发步骤
- java程序
- vi Hello.java
- 输入i,进入到插入模式
- 输入Esc键,进入命令模式
- 输入冒号:[wq 表示退出保存,q!表示退出不保存]
- 编译javac Hello.java
- 运行java Hello
- c程序
- gcc o Hello Hello.cpp[参数o表示可自定义生成的out文件名,否则默认为a. out]
- ./Hello
linux视频教程第3讲.用户管理.目录结构
概述
简单介绍
linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录
深刻理解linux文件目录是非常重要的
- /
- root,存放root用户的相关文件
- home,存放普通用户的相关文件
- bin,存放常用命令的目录,如vi,su
- sbin,要具有一定权限才可以使用命令
- mnt,默认挂载光驱和软驱的目录
- etc,存放配置的相关文件
- var,存放经常变化的文件,如网络连接的sock文件
- boot,存放引导系统启动的相关文件
- usr,安装一个软件的默认目录,相当于windows下的program files
常用命令介绍
- pwd,显示当前在哪个路径下
linux的用户管理
- useradd用户名,添加用户
【案例】useradd xiaoming
- passwd用户名,为新用户设密码
【案例】passwd xiaoming,修改小明的密码
- userdel用户名,删除用户
【案例】userdel xiaoming,删除用户但保存用户主目录
【案例】userdel ‐ xiaoming,删除用户以及用户主目录
- logout,当前用户推出
- who am i,当前用户是谁
linux视频教程第4讲.常用命令
linux的常用命令
- init [0123456],指定系统运行级别,类似windows的正常运行模式或安全模式
- 0:关机
- 1:单用户
- 2:多用户状态没有网络服务
- 3:多用户状态有网络服务
- 4:系统未使用保留给用户
- 5:图形界面
- 6:系统重启
常用运行级别是3和5,要修改默认的运行级别可改文件 /etc/inittab的id:5:initdefault:这一行中的数字
FAQ:不小心设置了6,导致系统启动-重启-启动循环,怎么办?
- 在进入grub引导界面时,在数秒的时候,请输入 e
- 然后选中第二行,输入e
- 在出现的界面里,输入1【1表示单用户级别】,1的前面需要加一个空格,单用户模式既可以修改模式,又可以修改密码,Enter
- 返回后,按b
- pwd,显示当前工作目录
- cd,改变目录
- ls,列出文件和目录
- ls ‐a,显示目录下的所有文件,包括隐藏文件
- ls ‐l,显示长列表格式
- mkdir,建立目录
- rmdir,删除空目录
- touch,建立空文件
- cp,复制命令
【案例】cp ‐r dir1 dir2,递归复制命令(复制子目录信息)
- mv,移动文件和改文件名
- rm,删除文件和目录
- rm ‐rf *,删除所有内容,包含目录和文件,r表示递归,f表示强制
- ln,建立符号连接,类似于建立某个文件的快捷方式
- ln ‐s源目标
【案例】ln ‐s /etc/inittab inittab,inittab指向实际文件/etc/inittab inittab
- more,显示文件内容带分页,ctrl + page up上翻,长空格下翻
- less,显示文件内容带分页
- grep,在文本中查询内容
【案例】假设存在某个文件aaa.java中含有shunping关键字,此时可以使用grep名命令来查找,grep n “shunping” aaa.java,n表示在第n行出现
- |,管道命令,在linux和unix系统
- 怎么理解?把上一个命令的结果交给|后面的命令处理
【案例】ls ‐l /etc/ | more
- man [command],帮助,类似于dos中的help
- find,搜索文件及目录。在linux中,因为文件系统是以级别式的结构来组成的,所以要在整个系统中找到特定的文件和目录并不是件容易的事。而“find”命令可以解决上述问题
- 在特定的目录下搜索并显示指定名称的文件和目录
【案例】find / -name man:意思是说从根目录开始搜索名称为man的文件或目录
- 搜索一段时间内被存取/变更的文件或目录
【案例】find /home -amin -10:十分钟内存取的文件或目录
【案例】find /home -atime -10:十小时内存取的文件或目录
【案例】find /home -cmin -10:十分钟内更改过的文件或目录
【案例】find /home -ctime +10:十小时前更改过的文件或目录
- 搜索指定大小的文件
【案例】find /home -size +10k:意思是说查找/home目录下大小为10k的文件
- 重定向命令
- ls -l > a.txt,列表的内容写入文件a.txt中(覆盖写)
- ls -al >> aa.txt,列表的内容追加到文件aa.txt的末尾
- 从文件中输入信息:database_program < database_data
- en,查看环境变量
- 压缩和解压
- 以zip和unzip处理.zip文件
- zip命令的基本使用方法
- zip file.zip *:zip后接压缩后的文件名,在它的后面输入要压缩的文件即可
- 压缩后,自动删除原文件
【案例】zip m file.zip to.txt:把to.txt文件压缩成file.zip文件,to.txt会自动删除的
- 将子目录一起压缩
【案例】zip ‐r file.zip *:将当前目录下的子目录一起压缩
- 忽略子目录的内容
【案例】zip ‐j file.zip *
- 将已压缩的或没有必要压缩的文件去掉
【案例】zip ‐n .mpg: .jpg: .gif:第一种文件中间要用“:”分开
- 压缩某一日之后的文件
【案例】zip ‐t 102002 file.zip:将当前目录下在2002年10月20日之后文件压缩
- 不压缩链接文件的原文件
【案例】zip ‐y file.zip *
- 压缩率问题,-1~-9,其中-9的压缩率最高
【案例】zip -9 file.zip *
- 将不需要压缩的文件排除在外
【案例】zip file.zip * -x file2.txt:在压缩时,将当前目录内的file2.txt文件排除在外
- 以unzip命令进行.zip文件的解压缩
- 直接解压缩文件
【案例】unzip file.zip
- 排除不需要解压缩的文件
【案例】unzip file.zip ‐x file2:除了file2文件外,其他的文件都解压缩
- 查看压缩包的内容
【案例】unzip ‐Z file.zip:查看file.zip压缩包的内容,也可以使用“-l”
“-v”来查看压缩包的内容
- 以gzip和gunzip处理.gz文件
linux视频教程第5-6讲.文件权限.用户组
用户组
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念
- 所有者
- 所在组
- 其它组
- 改变用户所在的组
所有者
一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者
用ls ‐ahl命令可以看到文件的所有者
也可以使用chown 用户名文件名来修改文件的所有者
文件所在组
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
用ls ‐ahl命令可以看到文件的所有组
也可以使用chgrp 组名文件名来修改文件所在的组
其它组
除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
文件权限
ls -l中显示的内容如下:
-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc |
- 10个字符确定不同用户能对文件干什么
- 第一个字符代表文件(-)、目录(d),链接(l)
- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)
- 第一组rwx:文件所有者的权限是读、写和执行
- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行
- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行
也可用数字表示为:r=4,w=2,x=1 因此rwx=4+2+1=7
- 1 表示连接的文件数
- root 表示用户
- root表示用户所在的组
- 1213 表示文件大小(字节)
- Feb 2 09:39 表示最后修改日期
- abc 表示文件名
改变权限的命令
chmod改变文件或目录的权限
chmod 755 abc:赋予abc权限rwxr-xr-x
chmod u=rwx,g=rx,o=rx abc:同上u=用户权限,g=组权限,o=不同组其他用户权限
chmod u-x,g+w abc:给abc去除用户执行的权限,增加组写的权限
chmod a+r abc:给所有用户添加读的权限
改变所有者(chown)和用户组(chgrp)命令
chown xiaoming abc:改变abc的所有者为xiaoming
chgrp root abc:改变abc所属的组为root
chown root ./abc:改变abc这个目录的所有者是root
chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root
改变用户所在组
在添加用户时,可以指定将该用户添加到哪个组中,同样用root的管理权限可以改变某个用户所在的组
- usermod ‐g 组名用户名
你可以用
- usermod ‐d 目录名用户名,改变该用户登录的初始目录
【综合案例】
【题1.1】建立两个用户组group1和group2,以及三个用户dennis、daniel、abigale,并且将前2个用户分配在group1用户组下,后一个分配在group2用户组下
【题1.2】以dennis用户登录,创建一个Hello.java文件
【题1.3】以daniel用户登录,观察是否可以访问/home/dennis目录以及读或写其创建的Hello.java文件
【题1.4】以dennis用户登录,修改目录/home/dennis及Hello.java文件的读写权限(更正:修改目录权限的时候,应该使用770,而不是760,否则权限不足)
【题1.5】重复【题1.3】
【题1.6】改变abigale的用户组由group2变为group1
然后,可以使用cat /etc/passwd查看并确定
【参考】
- groupadd 组名,在linux中添加组
- vi /etc/group,查看linux中所有组信息,可以看可以编辑
- cat /etc/group,查看linux中所有组信息,只可以看不可以编辑
- useradd ‐g 组名用户名,创建用户的同时指定将该用户分配到哪个组下
- vi /etc/passwd,查看linux中所有用户信息,可以看可以编辑
- cat /etc/passwd,查看linux中所有用户信息,只可以看不可以编辑
linux视频教程第7讲.J2EE环境配置
J2EE环境搭建
jdk安装步骤
- 把mypackage.iso挂载到linux操作系统上
- 在vm做好配置
- mount /mnt/cdrom,挂载光驱
- unmount /mnt/cdrom,卸载光驱
- 把安装文件拷贝到/home
- cp 文件 /home
- 安装
- ./ j2sdk-1_4_2_19-linux-i586.bin
- 查看一个文件 /etc/profile [环境配置文件]
- 配置先前安装的jdk
eclipse安装步骤
- 挂载共享文件
- 把安装文件拷贝到/home
- cp 文件 /home
- 安装
- tar ‐zxvf eclipse-SDK-3.2.1-linux-gtk.tar.gz
- 进入图形界面,运行eclipse需要桌面支持
- startx
- 启动eclipse
- ./eclipse
MyEclipse安装步骤
- 挂载共享文件
- 把安装文件拷贝到/home
- cp 文件 /home
- 安装
- ./ MyEclipseEnterpriseWorkbenchInstaller_5_1_0GA_E3_2_1.bin
- 注意点
- 进入图形界面安装支持,否则报错
- 选择已安装的eclipse的主目录
- 重新启动eclipse
- ./eclipse &
- 这时会发现,菜单栏上多了一个MyEclipse选项
tomcat安装步骤
我们知道java ee的服务器有tomcat、jboss、weblogic、websphere、resin…这些都可以安装到linux下,我们给人家安装tomcat,安装步骤如下:
- 挂载共享文件
- 把安装文件拷贝到/home
- cp 文件 /home
- 安装
- tar ‐zxvf jakarta-tomcat-5.0.30.tar.gz
- 测试
- 编写一个简单的jsp页面
- 配置tomcat和jdk
linux视频教程第8讲. linux分区详解
概述
硬盘的分区主要分为基本分区(Primary Portion)和扩展分区(Extension Portion)两种。只是针对一个硬盘来讲,基本分区和扩展分区的数目之和不能大于4个,且基本分区可以马上被使用但不能再分区。扩展分区必须再进行分区后才能使用,也就是说它必须还要进行二次分区。那么有扩展分区再分下去的是什么呢?它就是逻辑分区(Logical Portion),而且逻辑分区没有数量上限制
对windows用户来说,有几个分区就有几个驱动器,并且每个分区都会获得一个字母标识符,然后就可以选用这个字母来指定在这个分区上的文件和目录。它们的文件结构都是独立的,非常好理解。但对这些用户初上手Redhat Linux,可就有点恼人了。因为对Redhat Linux用户来说无论有几个分区,分给哪一个目录使用,它归根结底就只有一个根目录、一个独立且唯一的文件结构。Redhat Linux中每个分区都是用来组成整个文件系统的一部分。因为它采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来。这时要载入的那个分区将使它的存储空间在这个目录下获得
硬盘
对于IDE硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指IDE硬盘了。“x”为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),“~”代表分区,前四个分区用数字1到4表示,它们是主分区或扩展分区,从5开始就是逻辑分区。例如:hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示为第二个IDE硬盘上的第二个主分区或扩展分区
对于SCSI硬盘则标识为“sdx~”,SCSI硬盘是用“sd”来表示分区所在设备的类型的,其余则和IDE硬盘的表示方法一样
几个重要命令
挂载命令
mount [-parameters] [设备名称] [挂载点]
特别说明:在挂载光驱时,可直接使用 mount /mnt/cdrom
【案例】mount /dev/sda1 /test/
卸载命令
umount [挂载点]
【案例】umount /test/
查看磁盘使用情况
df [-parameters]
- df -h
- df ‐l
- df [目录全路径],查看某个目录是在哪个分区
查看linux系统分区具体情况
fdisk ‐l
linux视频教程第9讲.linux安装演示
linux视频教程第10讲.shell介绍
概述
每个人在成功登陆linux后,系统会出现不同的提示符号,例如$、~、#等,然后你就可以开始输入需要的命令,若是命令正确,系统就会依据命令的要求来执行,直到注销系统为止;在登录到注销期间,输入的每个命令都会经过解释及执行。而这个负责的机制就是shell
shell编程
其实作为命令语言互动式地解释和执行用户输入的命令只是shell功能的一个方面。shell还可以用来进行程序设计。它提供了定义变量和参数的手段以及丰富的程序控制结构。使用shell编程类似于DOS中批处理文件,称为shell script,又叫shell程序或shell命令文件
shell的分类
Shell名称 |
开发者 |
命令名称 |
Bourne |
S.R.Bourne |
/bin/sh |
C |
Bill Joy |
/bin/csh |
Korn |
David |
/bin/ksh |
shell的使用
命令历史和互动:用上下箭头键可以重复以前所输入的命令
命令完成功能:用tab键能自动完成相关命令,再次按tab可得到清单
shell脚本文件:
- 是一个文本文件
- 命令的集合
- 有执行的权限
- 执行方式(./文件名)
用户登录后自动执行的shell脚本文件
- .bashrc位于主目录下,它之前执行系统的脚本/etc/bashrc主要是基本配置数据
- 配置.bashrc文件可以指定某些程序在用户登录的时候就自动启动
- .bash_profile位于主目录下,它之前执行系统的脚本/etc/profile主要是配置环境变量
用export可以临时加入一个系统路径,如export PATH=$PATH:$HOME/bin:/root/test/t1,输出环境PATH,引用原来的值$PATH,$HOME表示工作主目录,:是路径分隔符
- 已经定义好的环境变量
- SHELL:默认shell
- PATH:路径
- USER:当前登录用户的用户名
- 显示变量内容
- echo $SHELL
- echo $USER
- echo $PATH
shell通配符
- *代表多个字母或数字
- ?代表一个字母或数字
【案例】ls a* ls a? ls f080[1-6].tif
- 转义字符\
【案例】ls /mnt/win1/My\Documents
引号
【案例】export NAME=Michael
echo Welcome $NAME, the date is date
- 单引号:不处理任何变量和命令
【案例】echo ‘Welcome $NAME, the date is date ’
- 双引号:处理变量但不处理命令
【案例】echo “Welcome $NAME, the date is date “
- 反引号:把引号中的每个单词作为一个命令,如果是变量则先求值然后作为一个命令处理
【案例】echo “Welcome $NAME, the date is `date` “
别名
- 命令:alias显示系统当前定义的所有alias
【案例】alias cp=’cp -i’
【案例】alias li=’ls –l –color=tty’
shell的修改
chsh –s 输入新的shell
查阅历史记录
- history,查看使用过的命令的历史记录
- history 5,此项说明会显示最近使用的5个命令
- !5,此项说明执行历史编号为5的命令
- !ls,此项说明执行最后一次以“ls”开头的命令
linux视频教程第11讲.tcp.ip基础
概述
TCP/IP是unix/linux世界的网络基础,在某种意义上,unix网络就是TCP/IP,而且TCP/IP就是网络互联的标准。它不是一个独立的协议,而是一组协议(TCP、IP、UDP、ARP等协议)
每个Internet上的主机和路由器都有一个IP地址,它包括网络号和主机号,现在所用的IP地址都是32位的。IP地址按照国际标准划分为A、B、C、D、E五种类型
linux视频教程第12讲.网络环境配置
第一种方法
- 用root身份登录,运行setup命令进入到text mode setup utility对网络进行配置,这里可以进行IP、子网掩码、默认网关、DNS的配置
- 这时网卡的配置没有生效,运行/etc/rc.d/init.d/network restart命令我们刚才做的设置才生效
- ifconfig
第二种方法
- ifconfig eth0 x.x.x.x对网卡进行设置
- ifconfig eth0 network x.x.x.x对子网掩码设置
- 对广播地址和DNS使用默认的
Note:这样配置网络将会立即生效,但是是临时生效
第三种方法
- 修改/etc/sysconfig/network-scripts/ifcfg-eth0这个文件里各个属性可以修改,包括IP、子网掩码、广播地址、默认网关等
- 这时网卡的配置没有生效,运行/etc/rc.d/init.d/network restart命令我们刚才做的设置才生效
Note:
- 这种方法是最底层的修改方法
- 在linux中,所有设备都是文件
linux视频教程第13讲.rpm包.samba配置
RPM包
概述
一种用于互联网下载包的打包及安装工具,它包含在某些linux分发版中。它生成具有.RPM扩展名的文件。RPM是Redhat Package Manager(Redhat软件包管理工具)的缩写。这一文件格式虽然打上了Redhat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用。可以算是工人的行业标准了
RPM包的名称格式
apache-1.3.23-11.i386.rpm
- “apache”:软件名称
- “1.3.23-11”:软件的版本号,主版本和此版本
- “i386”:是软件所运行的硬件平台
- “rpm”:文件扩展名,代表RPM包
RPM常用命令
- rpm ‐qa:查询所安装的所有rpm软件包
- rpm ‐qa | more
- rpm ‐qa | grep X
- rpm ‐q 软件包名:查询软件包是否安装
- rpm ‐q xinetd
- rpm ‐q foo
- rpm ‐qi 软件包名:查询软件包信息
- rpm ‐qi file
- rpm ‐ql 软件包名:查询软件包中的文件
- rpm ‐ql file
- rpm ‐ql jdk
- rpm ‐qf 文件全路径名:查询文件所属的软件包
- rpm ‐qf /etc/passwd
- rpm ‐qf /root/install.log
- rpm ‐qp 包文件名:查询包的信息对这个软件包的介绍
- rpm ‐qp jdk-1_5_0-linux-i586.rpm
- rpm ‐qpi jdk-1_5_0-linux-i586.rpm
- rpm ‐qpl jdk-1_5_0-linux-i586.rpm
安装RPM包
rpm ‐ivh RPM包全路径名称:安装包到当前系统
- i=install,安装
- v=verbose,提示,即有提示信息
- h=hash,进度条
删除RPM包
rpm ‐e RPM包的名称
【案例】rpm ‐e jdk
如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息,如:
【案例】rpm ‐e foo
removing these packages would break dependencies:foo is needed by bar-1.0-1
若让RPM忽略这个错误继续卸载,请使用‐‐nodeps命令行选项
【案例】rpm ‐e ‐‐nodeps foo
升级RPM包
rpm ‐U RPM包全路径名
【案例】rpm ‐U cvs-1.11.2-10.i386.rpm
samba配置
什么是samba
这些年来,windows与linux操作系统各自拥有自己的用户群和市场。然而在一般公司或学校里,可能同时有windows和linux主机,windows主机彼此之间可以利用“网上邻居”来访问共享资源。NFS也能使linux主机之间实现资源访问。而samba服务软件能够使windows与linux之间实现资源共享
SMB通信协议采用的是C/S结构,所以SAMBA软件可分阶段客户端及服务端两部分。通过执行samba客户端程序,linux主机使可使用网络上的windows主机所共享的资源。而在linux主机上安装samba服务器,则可以使windows主机访问samba服务器共享的资源
samba安装
samba的安装步骤
- 看看是否已经安装了samba
- rpm ‐q samba
- 如果有的话,就先卸载
- rpm ‐e ‐‐nodeps samba
- 把安装文件挂载到linux下
- samba-common-2.2.7a-7.9.0.i386.rpm
- samba-client-2.2.7a-7.9.0.i386.rpm
- samba-2.2.7a-7.9.0.i386.rpm
- 拷贝samba的rpm包到/home,准备安装
- 开始安装
- rpm ‐ivh samba-common-2.2.7a-7.9.0.i386.rpm
- 创建一个用户youyou
- useradd youyou
- passwd youyou
- 给youyou设置samba密码
- cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd
- smbpasswd youyou,设置密码
- 启动samba服务器,测试
- service smb start,启动
- service smb stop,停止
- service smb restart,重启
samba配置
共享资源的基本配置 /etc/samba/smb.conf
- comment:针对共享资源所做的说明文字。默认值为空字符串
【案例】comment=dir for todayhero:共享这个目录是为了todayhero这个用户
- path:若共享的资源是目录,是指定该目录的位置
【案例】path=/tmp:共享tmp这个目录
- guest ok:是否允许用户不使用账号和密码访问此资源
【案例】guest ok=yes:允许用户不使用账号和密码访问此资源
【案例】guest ok=no:不允许用户不使用账号和密码访问此资源
- hosts allow:设置连接主机的地址
【案例】hosts allow=192.168.2.1 server.abc.com:允许来自192.168.2.1 或server.abc.com
- hosts deny:设置禁止连接的主机地址
【案例】hosts deny=192.168.2.1:不允许192.168.2.1的主机访问samba服务器的资源
- read only:用于设置共享的资源是否为可读
【案例】read only=yes:允许只读
【案例】read only=no:不仅仅只读,也就是说可以写入
linux视频教程第14讲.crontab详解
概述
任务调度:是指系统在某个时间执行的特定的命令或程序
任务调度分类:
- 系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等
- 个别用户工作:个别用户可能希望执行某些程序
任务调度命令
设置任务调度文件:/etc/crontab
设置个人任务调度,执行crontab ‐e命令,接着输入任务到调度文件
【案例】5 * * * * ls ‐l /etc/ > /tmp/to.txt,意思说每小时的第五分钟执行ls命令
调度文件的规则
字段名称 |
说明 |
范围 |
分钟 |
每小时中的第几分钟执行 |
0-59 |
小时 |
每天的第几个小时执行 |
0-23 |
日期 |
每月的第几天执行 |
1-31 |
月历 |
每年的第几个月执行 |
1-12 |
星期 |
每周的第几天执行 |
0-6 |
使用任务调度
- 设置任务
- crontab ‐e
- 每隔一定时间去执行date > /home/mydate2
- 希望每天凌晨2:00去执行 date >> /home/mydate2,可以在crontab ‐e中加入:0 2 * * * date >> /home/mydate2
- 希望每分钟去执行:在crontab ‐e中加入:* * * * * date >> /home/mydate2
- 怎样去调度多个任务
- 在crontab ‐e中直接写多个命令(不推荐)
- 可以把所有的任务,写入到一个可执行文件(shell编程)
- 终止任务调度
- crontab ‐r:终止任务调度
- crontab ‐l:列出当前有哪些任务调度
linux视频教程第15讲.进程的介绍和管理
概述
- 在linux 中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号
- 每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程,例如www服务器
- 每个进程都可能以两种方式存在的,前台与后台。所谓前台进程就是用户目前的屏幕上可以进行操作的,后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束
- 进程与线程
- 进程:就是正在执行的程序
- 线程
- 轻量级的进程
- 进程有独立的地址空间,线程没有
- 线程不能独立存在,它是由进程创建
- 相对讲,线程耗费的CPU和内存要小于进程
进程的管理
ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的情况,可以不加任何参数,显示详细的进程信息
- ps ‐a:显示当前终端的所有进程信息
- ps ‐u:以用户的格式显示进程信息
- ps ‐x:显示后台进程运行的参数
ps显示的信息选项:
字段 |
说明 |
PID |
进程识别号 |
TTY |
终端机号 |
TIME |
此进程所消CPU时间 |
CMD |
正在执行的命令或进程名 |
终止进程kill/killall
若是某个进程执行一半需要停止时,或是已消了很大的系统资源时,此时可以考虑停止该进程,使用kill命令来完成此项任务
终止某个进程:kill 进程号
【案例】kill 16251:终止进程号为16251的进程
【案例】kill -9 16251:因为有些进程会捕捉某些信号,如果直接不能结束进程可以用“-9”传送信息
killall:杀死同名的所有进程
动态监控进程
top命令与ps命令很相似。它们都用来显示正在执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程
- 监视特定用户
- top:输入此命令,按回车键,查看执行的进程
- u:然后输入“u”回车,再输入用户名,即可
- 终止指定的用户
- top:输入此命令,按回车键,查看执行的进程
- k:然后输入“k”回车,再输入要结束的进程ID号
- 指定系统状态更新的时间
- top ‐d 10:指定系统更新进程的时间为10秒
top显示选项解释
- 1:52,表示系统启动了多久
- 1 user,用户数
- load average:0.00 0.00 0.00,当前系统负载情况,一般来说,参数越小,系统运行的越轻松,当平均数>0.6时,系统就很紧张了
- 38 processes,进程数
- 0 zombie,僵尸进程数,相当于这个进程没有用了,还占用资源,比如父进程来不及收回子进程
- CPU states:99.3% idle,闲置的CPU
- Mem,内存
- Swap,类似于虚拟内存
设置系统时间
- date命令:显示系统的时间,可以在直接输入“date”命令来查看系统的时间
- 利用date命令来更改系统的时间
- date MMDDHHMMCCYY.SS:月月日日时时分分年年.秒秒
- 查看月历
- cal 3 2002:查看2002年3月的月历
- 查看年历
- cal 2008:查看2008的年历
linux视频教程第16讲.监控网络状态
几个监控命令
显示网络统计信息的命令netstat
此命令用来显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、或是路由表内容,此命令直接输入即可使用
- netstat ‐anp
- an,按一定顺序排列输出
- p,表示显示哪个进程在调用
检测主机连接命令ping
是一种网络检测工具,它主要是用检测远程主机是否正常,或是两部主机间的介质是否为断、网线是否脱落或网卡故障
- ping 对方ip地址
显示数据包经过历程命令traceroute
此命令可以直接输入使用,用来检测数据包在网络上传输的过程,从本机到远程的主机完整路径,帮助管理员解决问题
显示路由表route
所谓路由是指将数据由来源网络送往目的网络的操作。在大型网络中,路由是非常复杂的,因为数据包在抵目的地时,可能经过的节点有很多,路由表是存储在路由器或一些其他链接设置上的窗体。其中记录着了到指定目的的网络路径,以及这些路径的相关数值
此命令可以直接输入使用,来查看本机路由的情况
linux视频教程第17讲.mysql安装.配置.使用
概述
mysql数据库在linux下可以充分发挥威力,mysql数据库越来越受到软件公司的青睐,为什么呢?
免费、跨平台、轻、支持多并发
在北京很多软件公司属于创业型的中、小公司,从节约成本的角度考虑,mysql特别适合中、小项目
mysql安装
- 创建mysql组
- useradd mysql
- 创建mysql用户,并放入到mysql组中
- useradd -g mysql mysql
- 进入到mysql文件夹
- 初始化数据库
- scripts/mysql_install_db ‐user=mysql
- 修改文件的所有者
- chown ‐R root .
- 修改date文件夹的所有者
- chown ‐R mysql date
- 改变用户组
- chgrp ‐R mysql .
- 启动mysql
- bin/mysqld_safe –user=mysql &
- &表示以后台的方式启动
- 检查一下进程,netstat ‐anp,查看监听端口是3306的是不是打开了
- 如何进入mysql
- cd bin
- ./mysql ‐u root ‐p回车
Notes:如果希望在任何一个目录下都可以进入mysql,则需在用户变量/root/.bash_profile中添加路径
- 测试mysql数据库是否可以在linux下正确使用
- 建立数据库和表
- 加入部分数据
- 编写一个ShowUser.java文件,在控制台显示用户
Note:特别注意mysql的驱动要存放的位置,放在jdk的主目录下的/jre/lib/ext/
备份与恢复
备份:mysqldump ‐u root ‐p密码数据库名 > data.bak
恢复:mysql ‐u root ‐p密码数据库名 < data.bak
Note:‐p和密码之间没有空格
linux视频教程第18讲.ssh安装.配置.使用
概述
ssh(secure shell)是一款集远程操作linux和进行文件上传和下载的软件,在软件公司几乎所有的linux程序员都会使用ssh。安全、方便是它最大的特点
linux上默认安装ssh服务,且默认是启动的sshd,监听的端口是22。在windows系统上安装SSH客户端,集成了secureCRT与FTP的作用
linux视频教程第19讲.补充linux重要内容
linux视频教程第20讲.linux启动过程分析
runlevel命令,可以查看当前的运行级别
linux启动过程
- BIOS自检
- 启动GRUB/LILO
- 运行linux内核并检测硬件
- 运行系统的第一个进程init
- init读取系统引导配置文件/etc/inittab中的信息进行初始化
- /etc/rc.d/rc.sysinit系统初始化脚本
- /etc/rc.d/rcX.d/[KS] * -根据运行级别X配置服务
- 终止以“K”开头的服务
- 启动以“S”开头的服务
- /etc/rc.d/rc.local执行本地特殊配置
- 其他特殊服务
linux视频教程第21讲. java网络编程
linux下网络编程是linux最让程序员着迷的地方,我们看看如何在linux进行网络编程。最终大家可以在这个基础上扩展为my QQ的程序,并且会使用到mysql数据库
你将学习到:
- 如何使用java进行socket编程
- 如何在java中对mysql数据库操作
- windows和linux网络通讯
- 了解什么是网络服务这个晦涩的概念
linux系统作为服务端,代码如下:
windows作为客户端,代码如下:
后记
VM上的Redhat Linux 9.0共享文件夹
步骤如下:
- 启动虚拟机LINUX操作系统,打开Vmware→工具栏→VM→Install Vmware Tools,出现对话框,选择Install,这时在mnt目录下的cdrom目录就可以看到我们要装的软件:
- VMwareTools-5.5.0-13124.i368.rpm
- VMwareTools-5.5.0-13124.tar.gz
- 打开超级终端,输入命令:cd /mnt/cdrom 进入到光驱的目录下
- cp VMwareTools-5.5.0-13124.tar.gz /tmp 把这个文件拷贝到tmp下
- cd /tmp 进入tmp目录,输入ls查看刚才的文件是否在这个目录下
- tar zxvf VMwareTools-5.5.0-13124.tar.gz 解压这个文件
- cd vmware-tools-distrib 进入tmp目录下的vmware-tools-distrib目录
- ./vmware-install.pl 执行这个文件,所有提示都按“Enter”键。安装结束后重启
- 打开Vmware→工具栏→VM→Settings→出现对话框,选择工具栏Options→选左边Shared Folders→选右边的Add→下一步→在出现的对话框的里点Browse(Host folder),来选择所要共享的目录→下一步→选择Enable this share,单击“完成”。在/mnt/hgfs下就有你共享的文件夹
相关推荐
关系型数据库自诞生以来已经有20多年的历史。在其早期,由于硬件资源有限和优化器的不成熟,性能问题非常普遍,因此性能优化是重点考虑的因素。尽管当今的硬件和软件已经取得了巨大进步,但与信息量的爆炸式增长相比...
Oracle 数据建模与关系数据库设计是Oracle公司提供的官方教材,针对的是数据库课程的教师使用指南。文档涉及数据建模和关系数据库设计的主题,属于数据库领域的核心知识点,尤其适合于希望深入理解和应用Oracle...
step process for accurately modeling user data on a Crow's Foot Relational Model Diagram, and then demonstrating how to implement this model on any relational database management system. The second ...
这是一本oracle 数据库设计的教材 data compared to information conceptual data modeling tracing entities evolution of an entity definition 等等
this book is a simplified approach towards the subject of "Relational Database Management System" It covers the following chapters: Database Systems,Database Systems Concepts and Architecture, Data ...
根据提供的文件信息,这段内容是对一本名为《Data Modeling And Relational Database Design》(数据建模与关系数据库设计)的教材进行描述,该教材为学生指南,课程代码为20000GC12,版本号为1.2,出版日期为2001年...
### 数据建模与关系数据库设计概述 #### 一、数据建模的重要性 数据建模是信息系统开发中的一个重要组成部分,它涉及到定义数据结构的过程,这些结构能够有效地存储和管理信息。良好的数据模型能够确保数据的一致...
Designing Relational Database Systems Designing Relational Database Systems
### 关于《Pro SQL Server 2012 关系型数据库设计与实现》的知识点解析 #### 一、SQL Server 2012 概述 - **版本介绍**:SQL Server 2012 是微软公司推出的一款企业级关系型数据库管理系统(RDBMS),它提供了强大...
这本书是关于设计数据库系统。我的目的是给你的知识,你需要采取一个混乱的,复杂的,真实世界的情况,并把它成为一个有效的数据库设计。阅读这本书后,你仍然能够观看数据库在湖面上嬉戏,但如果我做我的工作做好,...
数据字典 The Relational Database Dictionary
在IT领域,尤其是在数据库管理与设计方面,"Oracle数据模型与关系数据库设计"是一个核心主题,涉及了如何构建高效、可扩展且易于维护的数据库系统。以下是对这一知识点的深入探讨,旨在帮助读者理解其重要性和实践...
Relational databases have been around now for more than 20 years. In their early days, performance problems were widespread due to limited hardware resources and immature optimizers, and so ...
Pagerank Matlab代码多关系网络中的链接预测代码(.m文件) 王望() 吉塔·苏克坦卡() 该存储库包含LPSF模型(使用...Multi-relational Collaboration Networks}, booktitle = {Proceedings of the IEEE/ACM Inte
Database theory and practice have evolved considerably since Codd first defined the relational model, back in 1969. This book draws on decades of experience to present the most up to date treatment of...