韩顺平linux开篇
切换用户:su 或者 logout 用户名 :logout 后面还要加 root
一:linux系统管理员 注重管理
二:linux程序员: 注重开发 需要C/C++,java,php,jsp...
1:linux软件工程师——PC
2:linux嵌入式开发——单片机,芯片
学习linux的流程:
一:linux平台上的开发,包括vi,gcc,gdb,make,jdk,tomcat ,mysql......和linux基础操作
二:加厚c语言功底 《C专家编程》或java语言
三:学习unix换金高级编程《unix环境高级编程》
四:linux应用开发或者linux嵌入式开发
内容介绍:
一:基础部分:
1:linux基础知识
2:linux常用命令80个
3:linux分区/vi/权限……
二:实用部分
1:Samba安装与配置
2:linux网络环境配置
3:crontab使用
4:jdk/apache/mysql/ssh/rpm安装与配置
5:linux下java网络配置 (很好)
6:shell初步介绍
书籍推荐:
1:鸟哥私房菜
2:linux从入门到精通
3:linux内核完全解析
第一章:基础介绍
1:linux的初步介绍——linux是什么,以及是用来干嘛的
2:linux的第一次接触——常用命令80个
3:linux用户管理
4:linux常用命令
5:linux下所有者、所在组和其他组的介绍
6:linux下文件和目录权限机制
Linux无法超越的优点:
1:免费/开源
2:支持多线程/多用户 (多线程——线程可以并发)
3:安全性好
4:对内存和文件管理有优越的方法——
linux最小只要4M内存——所以可以做嵌入式开发
缺点:操作相对困难
1960年 MIT麻省理工学院 30个人同时使用
1965年 MIT, GE,bell贝尔实验室 决定分时操作系统由30人上升为300人分时操作,叫做multis计划—火星计划
1969年 火星计划终于失败了,Ken Tompson(C语言创始)开发了一个file server system文件系统,并且在bell得到推广。
1973年 Ken和Dennis Richres在文件管理系统之上开发了一个系统UNIX——开源
源码内核共享出现了几个公司:IBM推出了AIX系统
SUN开发solaris系统
HP的hp unix
伯克利分校
1991—1994 Linus Torvalds在PC386——minix移植到pc linux第一版
Redhat
s.u.s.c 欧洲流行
红旗linux
一:命令
1:登录: root 回车 输入密码 登录时尽量少用root账户登录,避免操作失误
用普通用户登录,登陆后用 su- 命令来切换成系统管理员身份
2:进入图形界面: startx 回车 一般程序员不装图形界面
点击 log out 退出图形界面
3:关机: shutdown –h now 立即进行关机
shutdown –r now 现在重新启动计算机
reboot 现在重新启动计算机
4:su- 命令来切换成系统管理员身份
5:logou 注销
二:vi编辑器的使用—以防别人来考你
书籍:《vi的使用.pdf》 不用看了
引例:
约瑟夫问题——丢手帕问题: 链表或者数组
5个人围成一圈1—5号,规定数到4时候出列。自己画图数
从1号开始数,数到4是4号出列,4号出列——1234
从5号开始数1,数到4的时候是3号,3号出列5123
又从5号开始数,数到5号出列,5125
从1开始数,1212,2出列
把vi编辑器当做记事本就行了
任务1:linux开发java
vi开发:使用vi在linux下,开发一个简单的java程序Hello.java,并且在linux下运行成功
开发步骤:
1:Vi Hellow.java 回车
2: 输入i, 进入到插入模式,可以写东西了
public class Hello{
public static void main(String[larys]){
System.out.println(“hello,world”);
}
3:输入esc,进入命令模式
4:输入冒号:光标定位到下面了
两个选择: 1:保存退出 wq
2:直接退出,不保存 q!
找不到文件,文件去哪了呢
敲击命令:ls 回车:会看到当前目录的所有文件
ls –l 回车:会看到文件的详细资料
5:编译:javac Hello.java
命令:javac Hello.java 回车 javac 文件名 成功没有消息,编译失败有消息
再次输入ls –l :会发现多了一个文件 Hello.class
6:运行程序:java Hello //不是写java Hello.class
虽然运行的是class文件,但是不写java Hello.class
回车直接打印Hello,world
任务2:如何在linux下开发c程序 cpp程序或者c++程序
命令: vi Hello.cpp 回车
#include<stdio.h>
int main()
{
printf(“hello!”)
return 0;
}
esc
输入冒号:
保存 wq
ls –l
gcc Hello.c 生成两个文件:Hello.class Hello.cpp
gcc Hello.cpp //gcc是c的编译
再ls 多出来一个a.out程序,默认的
运行c程序: ./a.out 打印出来Hello!
问题:如果再来一个c程序, a.out会被屏蔽
解决方案:
gcc –o xiaobu Hello.cpp //按照xiaobu来命名 o代表output的意思
注意:程序写错了,保存之后,编译之后又错误提示
解决办法:在打开那个文件,再次编辑 vi …
三:linux下的文件目录管理
Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。
/:linux文件系统的上层根目录
1:/root目录:存放root用户的相关文件,管理员的主目录
2:/home目录:存放普通用户的相关文件 一般用户的主目录或FTP站点目录 //新建 xiaobu
3:/bin目录:存放常用命令的目录 存放用户可执行的程序
4:/sbin目录:要具有一定权限才可使用的命令 存放系统启动时说需执行的程序
5:/mnt目录:默认挂载光驱和软驱的目录 装置的文件系统加载点,例如罐区,软盘
6:/etc目录:存放配置相关文件 有关系统配置和管理的文件
7:/var目录:存放经常变化的数据 具变动性质的相关程序目录log
8:/boot目录:存放引导文件相关的文件 操作系统启动时所需的文件 //不能删除
9:/usr目录:安装一个软件的默认安装文件夹 存放用户的使用系统命令和应用程序等信息 类似windows里面的program文件夹
10:/dev目录:接口设备文件目录 ,如had表示硬盘
11:/proc目录:目前系统核心与程序执行的信息
12:/tmp目录:用来存放暂存盘的目录
命令
cd / //cd命令是切换目录,再加一个 / ,
再用命令 ls看一下目录下的文件:bin dev home lib misc opt root tmp var……
或者用命令 dir显示当前目录下的文件:bin dev home lib misc opt root tmp var……
cd bin/
再用 ls看一下
或者ls –la
如果想显示当前在哪个路径/目录下面:命令pwd 回车
Pwd: print working directory 命令显示整个路径名
cd /home/ //切换到home目录下面
pwd // 显示在哪个路径下面
/home //显示的那个路径下面
四:linux的用户管理
1:Useradd 用户名——添加用户
2:passwd 用户名——修改密码
3:userdel 用户名——删除用户 他写的东西程序要保留
4:userdel –r 用户名——删除用户以及用户主目录
1:添加一个用户:只有root用户或者具有root权限的人才可以
useradd xiaoming 回车就添加成功了 //没有提示就表示成功了
2:设置密码
passwd xiaoming 回车
New password:
设置成功提示:all authentication tokens updated successfully
所以home目录下面会有xiaoming目录:
home 下面ls或者dir
会出现xiaoming
pwd //显示在哪个目录下面
logout //登录
xiaoming 回车
passward: 输入密码
提示符由#变成了$
再输入pwd
/home/xiaoming
五:linux的常用命令1:指定运行级别
用root用户
输入: init 3 或者init 5
命令:init[0123456
运行级别:
0:关机
1:单用户
2:多用户状态没有网络服务
3:多用户状态有网络服务 //默认状态
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5,要修改默认的运行级别可修改文件/etc/inittab的
id:5:initdefault:这一行中的数字
用root用户:
输入: vi /etc/inittab 回车
修改: id:3:initdefault
保存?
问题:如果改成6之后,重新启动,怎么样改回来
解决修改错误配置的方法 或者如何找回丢失的密码
解决:开机数秒的时候按下“e”,在进入grub引导界面时候,按下e
选中第二行kernel /vmlinuz-2.4.20-8 ro root=LABEL=/
再输入一个e,就选中这个第二行
进去之后输入: 空格 1 [单用户级别] kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ 1
再回车,按b,直接进入当用户模式,就可以改配置文件了
不输入3和5,没有意义 因为只有当用户级别,系统不会看id:3:initdefault这行
单用户1也可以修改密码
改密码:进入进行了,单用户不用输入密码的
改密码时候 不用输入原密码
六:linux的常用命令2—用google
pwd 显示当前工作目录
cd 改变目录
ls 列出文件和目录
ls –a 显示隐藏文件
ls –l 显示长列表格式
ls -al
mkdir 建立目录
rmdir 删除空目录
例:mkdir aaa 回车 //文件夹
再用ls –l来看一下就行了
rmdir aaa //删除目录
如果目录里面有东西,则得用另外的
touch 建立空文件夹
cp 复制
cp –r dir1 dir2 递归复制(复制子目录信息)
mv 移动文件和改文件文件名
rm 删除文件和目录
rm -rf 删除所有内容(包括目录和文件) r递归 f强制
ln 建立符号连接
ln -s 源目标
ln -s /etc/inittab inittab //inittab指向实际文件/etc/inittab
例:
把a.out 拷贝到home下的xiaobu目录下:
cp a.out /home/xiaobu/
注:/home/x 之后按tab键,会出来剩下的 xiaobu 按两下,会出来提示
more 显示文件内容,带分页 下一页是空格键 上一页是 pageup+ctrl键
less 显示文件内容带分页
grep 在文本中查询某一个关键词
| 管道 命令
在linux和unix系统中 |就是管道命令 ——怎么理解?
把上一个命令的结果交给|的后面的命令处理
例:
ls –l /etc/ 回车 //东西太多,没看完,上面看不到
ls -l /etc/ |more
先建立一个文件,任意输入字母,要从里面找到某一个关键词
grep “include” Hello.cpp
显示行数:
grep -n “xiaobu” Hello.cpp
man 手册的意思maual 相当于dos下的help
man grep
find 搜索文件及目录
1:在特定的目录下搜索并显示制定名称的文件和目录
find / -name aaa.java //在根目录下查找 aaa.java文件
find /root/ -name aaa.java //在root目录下查找aaa.java文件
2:搜索一段时间内被存取/变更的文件或者目录
find /home –amin -10 十分钟内存取的文件或目录
find /home –atime -10 十小时内存取的文件或者目录
find /home –cmin -10 十分钟内更改的文件或者目录
find /home –ctime +10 十小时前更改过的文件或者目录
3:搜索指定大小的文件
find /home –size +10k 查找/home目录下大小为10k的文件或者目录
重定向命令: 例如统计信息等数字
ls –l > a.txt 列表的内容(一个结果)写入文件a.txt中 (> 覆盖写)
ls -al >> aa.txt 列表的内容最佳到文件aa.txt的末尾 (>> 追加写)
从文件中输入信息database_program<database_data
例:
grep –n “xiaobu” aaa.java
grep –n “xiaobu” aaa.java > xiaobu.txt 把上面那个结果存储到xiaobu.txt中去了
ls 之后发现有xiaobu.txt
看下里面是什么东西
vi xiaobu.txt
里面就是这个信息
第七章:文件目录权限+文件所有者、所在组、其他组
在linux中的每个用户必须属于一个组。
概念:
1:所有者:一般为文件的创建者,谁创建了该文件,就成为该文件的所有者
用ls –ahl命令可以看到文件的所有者
用chown 用户名 文件名 来修改文件的所有者
2:所在组
当某个用户穿件了一个文件后,这个文件的所在组就是该用户所在的组
用ls –ahl 命令可以看到文件的所有组
用chgrp 组名 文件名 来修改文件所在的组
3:其他组
除开文件的所有者和所在组的用户外,系统的其他用户都是文件的其他组
4:改变用户所在的组
在添加用户时,可以指定将该用户添加到哪个组中,同样的用root的管理权限可以改变某个用户所在的组
usermod -g 组名 用户名
usermod -g 目录名 用户名 改变该用户登陆的初始目录
例:用户的添加 用root用户
两个组:A B
三个用户: a,b,c
A组包括a,b
B组包括c
1:如何在linux中添加组:root用户
groupadd A //添加了组A 要查看linux中所有组的信息:vi /etc/group
cat /etc/group 只查看,不修改
groupadd B //添加了组B
2:查看组
输入:cat /etc/group | more 查看组
3:创建用户,并同时指定将该用户分配到哪个组
user -g 组名 用户名 g是group的意思
useradd -g A a
useradd -g A b
useradd -g B c
4:查看linux中所有用户信息
vi /etc/passwd
cat /etc/passwd
5:给他们分配密码
passwd a 回车
passwd b 回车
passwd c 回车
——————————————————————————————————————
第二歩:
用a登录到linux创建文件
1:登录a用户名
logout
login: a
2:创建一个文件mytest1.java
vi mytest1.java
wq保存
ls –l查看信息
-rw---r—r-- 表示各类用户对该文件的操作权限
第一个字符:代表: 文件 — ; 目录 d ; 链接 l ;
其余字符每三个一组rwx 4+2+1=7 读:r 写:w 执行:l
rw- :文件的所有者对该文件的权限
权限: r: 可读 用4表示
w:可写 用2表示
x: 可执行 用1表示
r-- :文件所在组对该文件的权限
r--: 其他组的用户对该文件的权限
3:
问题:
用b用户登录之后,不能打开a目录下的mytest1.java文件
cd a
提示:permission denied 不行
所以要a用户允许b进入到a的总目录:
如何修改文件的访问权限的问题:
cd ..
到home目录下
ls –l
结果:
dwrx------ :所以b用户不能进入
修改:
chmod 777 a
提示:operation not permitted
因为用的是b用户,只有两个用户可以改变:root和a用户
又登录a用户logout
login:a
ls
cd ..
ls -l
看下自己是谁:
who am i
修改:
chmod 777 a
777: 4+2+1 对所有者的权限修改:对所有者所在组的权限修改:对其他组的用户的权限修改
再用b用户进去:
login:b
ls
cd ..
ls
cd a/
dir
结果:mytest1.java
ls -l
结果:-rw-r—r-- 1 a A mytest1.java
//b只读mytest1.java
现在可以读了:
vi mytest1.java
把c用户移动到另外一个组A里面:
要在root的管理权限修改:
usermod -g 组名 用户名
另外,可以用usermod -d 目录名 用户名 改变改用户登陆的初始目录
login: root
usermod -g A c
用cat来查看结果:
cat /etc/passd
第二天:
目录:
1:如何在linux下搭建java ee开发环境:四个:jdk eclipse mysql数据库 。。。
2:linux下可以使用realpay吗
3:linux下可以使用qq吗
4:linux分区讲解——挂载的概念
5:redhat9.0的安装演示
一:jdk的安装
安装步骤:
1:把一个mypacket.iso挂载到linux操作系统上
虚拟机vm里面设置,CD-ROM 使用ISO镜像 浏览
命令:mount /mnt/cdrom
再进去就可以了:
cd /mnt/cdrom/
————————————————————————————————
命令
mount /mnt/cdrom/ 回车
cd /mnt/cdrom/
ls
结果:多了很多文件,就是iso里面的
pwd
结果:/mnt/cdrom
如果不需要这个挂载
cd / 进入根目录
umount /mnt/cdrom/
验证:再去看测个文件夹即可
cd /mnt/cdrom
ls
结果:没有
方法二:用其他方式把windows的文件拿到linux中用
Vm虚拟机 设置 选项 共享文件夹——添加
2:把安装文件拷贝到home目录下面去
命令:cp 文件名 /home
cp j2(tab键直接出来) /home
验证:切换到home目录下面查看,有那个文件
cd /home/
ls
3:cd /home 切换到home目录下面
4:安装
命令: ./j2sdk文件.bin 解压缩
查看某个目录实在哪个分区
df 目录全路径
查看linux系统分区的具体情况
fdisk -1
例:
想知道home目录与哪个分区挂载的
df /home 回车
Linux的安装:双操作系统或者虚拟机安装
安装文件iso文件
新建虚拟机
选择red hat
选择位置(即从windows里面分一块出来)
分配空间大小
点击 菜单栏上的 虚拟机 按钮
点击设置,CDROM ,使用ISO文件来启动,浏览redhat文件,进入安装界面
换一张盘也是这里
1:CD Found
Tab键切换到skip //ok代表对ISO文件进行检测,skip不检测
2:选择简体中文
3:键盘配置:选 U.S. English
鼠标配置 检测到啥就是啥
4:个人桌面:家庭普通使用
工作站:软件开发或者系统管理
服务器:做网站
定制:
选定制
5:磁盘分区——用Disk Druid手动分区 不用自动分区
新建:
点击:挂载点
/boot 100m
swap 交换分区 一般是物理内存的两倍,不要大于256m 用256m
/ 根分区 尽可能大
网络配置:以后解决
6:选择软件包
桌面一个: X串口系统 + GNCME 桌面环境(一定要)
应用程序:编辑器,图形化互联网,基于文本的互联网,办公,生产率,视频和音频,图形
服务器:之后自己装 邮件服务器 FTP服务器 SQL服务器
开发: 开发工具,内核开发,桌面开发………
第三天:
目录:
1:linux下的shell
2:tcp/ip基础
3:linux网络环境配置
4:rpm包管理
5:samba安装和配置
Windows和windows的两个之间用与网络邻居
Windows和linux之间用samba服务器
一:linux下shell概念

Linux编程推荐书籍:《linux命令、编辑器和shell编程》
常用的shell分类:
Shell名称 命令名称
Bourne /bin/sh
C /bin/csh
Kom /bin/ksh
1:查找shell命令: ls -l /bin/*sh
2:参看目前使用的是哪种shell
env //该命令可以显示当前操作系统的环境变量
env | more 加个管道
结果:SHELL=/bin/bash
3:修改shell
直接输入:
chsh -s 输入新的shell 如/bin/csh
chsh -s /bin/csh
4:命令补全功能
例如:mkdir
mk 再按来你两下tab键,会出现两个字母为mk的命令
cat p 再按两下tab键, 会出现开头字母为p的所有文件或者目录
5:查阅历史记录命令
history 想知道最近执行的命令
history | more 分页显示
history 5 显示最近使用的5个命令
!5 执行历史编号为5的命令
!ls 执行最后一次以ls开头的命令
二:网络协议tcp/ip基础
Osi模型(理论):7层
应用层application
表示层presention
会话层session
传输层transport
网络层ip
数据链路层link
物理层physical
TCP/IP模型(现实):4层----在电脑里面的
应用层application:smtp,ftp,telnet
传输层transport:解释数据
网络层ip:定位ip地址和确定连接路径
链路层link:与硬件驱动对话
案例:qq间相互通讯
qq1发送hello,包到一个包里面
经过应用层加一个app头,表示是哪个程序发过来的,软件有关
经过传输层:加一个tcp头。 此时,tcp app hello包 构成一个tcp段
再经过ip层:再加一个ip头, 是发送到哪一个ip地址去 ,此时称为数据包
再经过链路层:在数据包的两头加上帧头和帧尾。 此时是一个可以在网络上传输的东西了
把上面的直接发送给网卡,网卡传送到路由器,很多的路由器(距离决定)
到了对方机器的网卡,
去掉一些东西
Ip地址与包的路由传递
计算机—网关 网关再与因特网相连
有网卡都会与一个ip地址(可以自己指定),相当于门牌号
每个internet上的主机和路由器都有一个ip地址,它包括网络号和主机号,所有的地址都是32位(4个字节)的,IP地址按照国际标准的划分为a,b,c,d,e五种类型
a: 0 7位网络号 主机号 (8位的一个网络号,24位的主机号)
1.0.0.0至127.255.255.255
b: 10 14位网络号 主机号 (16位的一个网络号,16位的主机号)
128.0.0.0至191.255.255.255
c: 110 21位网络号 主机号 (24位表示的网络号,8位表示的主机号)
192.0.0.0至223.255.255.255
d: 1110 多点播送地址 224.0.0.0至239.255.255.255
e: 11110 留作将来使用 240.0.0.0至247.255.255.255
1.追踪路由:tracert 目标ip/域名
2.测试看个ip是否畅通: ping 目标ip
3.在windows查看ip情况的命令是 ipconfig
4.在linux/unix下查看ip情况的命令是ifconfig
几个特殊的ip地址:
局域网广播: 11111111111111111111111111111111
对一个子网广播: 网络号 1111111111111111111111111
回路: 127 任意值(除去全0和全1) 例127.0.0.0.1 测一下自己的网
//255是广播地址 全1
IP地址与包的路由传递
Linux的网络配置
第一种方法:
1:用root身份登录,运行setup命令进入到text mode setup utiliy对网络进行配置,
这里可以进行ip,子网掩码,默认网关,dns的设置
2:这时网卡的配置没有生效,运行/etc/rc.d/init.d/network restart 命令我们刚才做的设置才生效
setup之后,
choos a tool:
Authentication configuration
Firewall configuration 配置防火墙
Keyboard configuration 配置键盘
Network configuration 配置网络
System services 配置系统服务
第二种方法:
1:ifconfig eth0 x.x.x.x对网卡进行设置 //eth0网卡
2:ifconfig eth0 network x.x.x.x对子网掩码设置
对广播地址和dns使用默认的
注意:这样配置网络将会立即生效,但是临时生效,重新启动就没了
第三种:最底层的修改方法——在linux中,所有的设备都是文件,好处,编程方便
1:直接修改这个文件: /etc/sysconfig/network-scripts/ifcfg-eth0
用命令 vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改这个文件里面各个属性包括ip,子网掩码,广播地址,默认网关
2:这时网卡的配置没有生效,
运行命令/etc/rc.d/init.d/network restart 刚才的设置才生效
Linux的网卡和windows的网卡互通:必须在同一个子网
RPM管理:
一种用于互联网下载包的打包及安装工具
他生成具有 .RPM扩展名的文件。
RPM是redhat package manager的 缩写,redhat软件包管理工具
这一文件格式名称虽然打上了redhat的标志,但是是开放的,所以其他版本的linux也有
Rpm是什么
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 -q xinetd file bash
rmp –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 -i RPM包全路径名称 :安装包到当前系统 i为install
rpm -ivh RPM包全路径名称 :安装包到当前系统有提示信息
v为verbose提示 h为hash进度条
删除RPM包:
rpm -e RPM包的名称 :例如rpm -e jdk
升级RPM包;
rpm -U RPMbao 全路径名
rpm -U cvs-1.11.2-10.i386.rpm
samba
windows主机之间用网上邻居来访问共享资源
linux主机之间用NFS来实现资源共享
samba服务软件能够使windows和linux之间实现资源共享
linux和windows共享文件: 只要在linux这边安装samba服务即可
安装samba:
1:检查是否安装了samba: rpm -qa | grep samba 安装了要卸载
此命令会检查出已经安装了samba软件包,若是已经安装了,下面会出现samba软件包的具体名称.如果安装了要卸载
2:如果有,卸载: rpm -e samba 不行
rpm –e --nodeps samba
3:把自己的安装文件,挂载到linux下面
4:把samba开头问文件,拷贝到 /home ,准备安装
cp /mnt/cdrom/samba* /home
5:开始安装
切换到home目录下面去 cd /home
先装common文件 rpm -ivh samba-common-2.2.7a-7.9.0.i386.rpm
再装client文件 rpm –ivh samba-client-2.2.7a-7.9.0.i386.rpm
最后安装 rpm -ivh samba-2.2.7a-7.9.0.i386.rpm
再查询:rpm -qa samba
6:创建一个用户xiaobu: useradd xiaobu
设置密码: paawd xiaobu
7:给xiaobu设置samba密码:
将/etc/passwd/passed中的用户都加到smbpasswd中: 都设为samba用户
cat /etc/passed | ,ksmbpasswd.sh > /etc/samba/smbpasswd
设置用户xiaobu的samba密码: smbpasswd xiaobu
8:启动samba服务器,测试
service smb start
service smb stop
service smb restart
在windows中运行: //192.
Samba的配置:
第四天:
目录:
1:设置任务调度命令crontab
2:监控网络状态信息
3:mysql数据库在linux下的使用
4:ssh (secure shell)的使用
5:ftp的安装与配置
一:任务调度命令
任务调度命令:是指系统在某个时间执行的特定的命令或者程序
任务调度分类:
1:系统工作:有些重要的工作必须周而复始的执行,如病毒扫描
2:个别用户工作:个别用户可能希望执行某些程序
任务调度的使用:
1:设置任务:crontab –e 回车进入分配任务的界面
2:每隔一定时间去执行: date > /home/mydata1
显示当前系统时间到home目录下的mydate1文件中
打开这个问价看一下:cat mydate1
3:希望每天凌晨两点去执行 date >> /home/mydate2
crontab -e 进入
0 2 * * * date >> /home/mydate2
希望每分钟去执行:
* * * * * date >> /home/mydate2
用ls去查看这个文件 mydate2
再看这个文件里面是不是命令的问题
调度文件的规则:先写时间,在写任务
分钟 :每小时中的第几分钟执行 0—59
小时 :每日的第几个小时执行 0—23
日期 :每月的第几天执行 1—31
月历 :每年的第几月执行 1—12
星期 :每周的第几天执行 0—6
命令名称:欲执行的命令名称及其参数
设置任务调度文件 : /etc/crontab
设置个人任务调度: 执行: crontab -e 命令
接着输入任务到调度文件
例如: 5 * * * * ls –l /etc/ > /tmp/to.txt 命令
4:怎么样调度多个任务
方法一:在crontab -e中直接写 缺点:太多太乱
* * * * * date >> /home/mydate2 没给我一分钟把时间写入mydate2中
* * * * * cp /home/mydate2 /root 同时每隔一分钟将这个文件拷贝到root目录下面去
方法二:把所有的任务写入到一个可执行文件(shell编程)
vi mytask.sh 进入shell编程
date >> /home/mydata3
cp /home/mydata3 /root
保存
ls -l
有mydate3.sh 但是权限是 -rw-r—r-- 不可执行的 加一个x即可
chmod 744 mytask.sh 可执行文件了
crontab –e
* * * * * /root/mytask.sh
如何终止任务调度:
crontab -r :终止任务调度 remove
crontab -l :列出当前有哪些任务调度 list
二:进程管理
进程:就是正在执行的程序
线程: (1)轻量级的进程
(2)进程有独立的地址的地址空间。 线程没有
(3)线程不能独立存在,他是由进程创建。 (fork) Thread
(4)相对讲,线程耗费的cpu和内存小于进程
在linux中,每个执行的程序都称为一个进程,每一个进程都分配一个ID号
每一个进程,都会对应一个父进程,而这个父进程可以复制多个紫禁城,例如www服务器
每个进程都可能以两种方式存在的。前台与后台
前台进程就是用户目前的屏幕上可以进行操作的
后台进程则是实际操作,但是由于屏幕上无法看到的进程,通常使用后台方式执行
一般系统的服务都是以后台进程的方式存在,而且都会常驻系统中,知道关机才结束
显示执行的进程:ps命令
ps –a :显示当前终端的所有进程信息
pa -u :以用户的格式显示进程信息
pa -x : 显示后台进程运行的参数
pa -aux | more
如何终止进程:kill/killall
当某个进程执行到一半需要停止时,或是已经消耗了很大的系统资源时候时,此时可以考虑停止该进程。
Kill 进程号 kill 16251 终止进程号为16251的进程
Kill -9 进程号 强度很高的终止
Kill all
动态监控进程top
top与ps命令的不同:top可以再执行一段时间可以更新正在运行的进程
1:监视特定用户:
top :输入此命令,回车,查看执行的进程
u :然后输入u,回车,再输入用户名即可
2:终止指定的进程
top :输入此命令 ,回车,查看执行的进程
k :然后输入 k ,回车,
在输入要结束的进程号
3:指定系统状态更新的时间
top -d 10:指定系统更新进程的时间为10s
top之后:
时间,系统启动了多久,用户数,当前系统负载情况(三个数加起来除以3大于0.6要注意)
进程数: 僵尸进程数zomble,
cpu state:cpu状态: idle空闲 越大越好
mem: 内存总数 在使用 空闲
swap: 虚拟内存
三:设置系统时间date MMDDHHMMCCYY.SS
date 命令 :显示系统时间
date MMDDHHMMCCYY.SS更改系统的时间:月月日日时时分分年年年年。秒秒
cal 3 2002 查看月历
cal 2008 查看2008年年历
四:监控网络状态信息netstat
netstat 显示网络统计信息的命令 用来显示整个系统目前的网络情况
例如:目前的连接数,数据包传递数据,路由表内容
netstat -anp | more p代表进程 an按照一定顺序来排序,按照端口来排序
ping 命令 检测主机连接
是一种网络检测工具,主要是用检测远程主机是否正常,或者是量不足及间的戒指是否为断、网线是否脱落或者网卡故障
例如:ping 对方ip地址
traceroute 显示数据包经过历程命令 直接输入 网管用的很多
用来检测数据包再网络上传输的过程,从本机到远程的足迹完整路径,帮助管理员解决
Traceroute www.baidu.com
route 查看本机路由的情况 直接输入
路由是指将数据由来源网络送往目的地网络的操作
五:mysql数据库在linux下的使用
Mysql的优点:免费,跨平台,轻,至此多并发
Mysql数据库安装:
1:把安装文件拷贝到/home下
挂载mypakage
命令:mount /mnt/cdrom/
两个文件
拷贝两个: cp mysql -* /home
切换到home目录下面
cd /home/