找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2147|回复: 1
打印 上一主题 下一主题
收起左侧

linux开篇

[复制链接]
跳转到指定楼层
楼主
ID:114320 发表于 2016-5-9 23:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 

韩顺平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---rr--  表示各类用户对该文件的操作权限

第一个字符:代表:  文件 — ; 目录 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-rr--  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-rr--    不可执行的  加一个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/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:114320 发表于 2016-5-10 03:11 | 只看该作者


    搞了一周的LINUX,命令行的操作不太习惯,晕的不行……用虚拟机搭建了LINUX平台,然后按OMAP3530开发板说明建立了ARM的交叉编译环境,编译了一下启动文件和LINUX内核。

    因为着急用一个IIC的加密芯片,所以要把IIC调通,无耐鸭子得上架了……对LINUX下的编程非常不习惯,跟以前的编程完全不同,以前有仿真器,可以实时跟踪程序,观察寄存器和内存的值。可现在只能写好C文件,然后编译成可执行文件,在LINUX环境下运行,只能从打印输出信息里面判断程序运行情况。就像一直在陆地上生活却一下子掉进水里,没有个着落。

    起初怀着侥幸的心理想试试看LINUX下面是不是可以直接对IIC控制寄存器的地址操作,后来发现被LINUX保护了,只能乖乖看LINUX驱动了。今天下午期待的IIC波形终于出来了,呵呵,算是对这周混沌状态的一个终结吧~

    下周顺利的话有一两天应当就能把加密芯片调通了,前段时间调过一个加密芯片,再调这个应当比较顺手了:)

    学东西越来越多,铺的也越来越宽,忘的也越来越快,有时候有些害怕,这么弄下去啥时候是个头啊……现在整出点东西都没什么激情了……随缘了……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表