`

linux入门

阅读更多
写道
登录系统 login 输入 root
password:123
进入图形界面模式:startx
注销 :logout

进入相应的编辑器 vi
如 今天java的编辑器
vi Hellow.java
进入可以编辑:i
退出插入:Esc键
命令模式 :
文件保存 wq 文件不保存 q!
编译:javac Hellow,java
运行:java Hellow

查看目录:lx或者 ll

重启 shutdown -r now 或者reboot
关机:shutdown -h now
尽量少用root登录,用普通用户,“su -”来切换

ls 查看当前目录的所有文件
具体列表: ls -l (详细信息) ls -al(显示隐藏文件,详细信息) ls -l 显示隐藏文件

linux目录
主要目录
root 存放相关root用户信息的信息
home 存放普通用户的相关文件
bin 存放常用命令的目录
sbin 要具有一些权限才可以使用的命令目录
mnt 默认挂在光驱和软驱的目录
boot 引导系统启动的文件目录
etc 存放相关配置文件的目录
var 存放经常变化的文件目录
usr 安装程序默认的文件夹

命令 pwd 显示当前在哪个目录下

添加用户 useradd 用户名
设置密码 passwd 用户名
按提示设置密码
登录另外用户 logout (从root用户切换到普通用户) 或者 su



删除用户但不删除用户文件 userdel 用户名
删除此用户的全部文件 userdel -r 用户名
切换到根目录 cd /
切换到某个文件夹下 cd /home/

运行级别
init[0123456]
0 关机
1 单用户
2 多用户但没有网络服务
3 多用户状态有网络服务
4 系统未使用保留给用户
5 图形界面
6 重启
常用的运行级别是 3 和 5
要修改运行级别 可以修改
/etc/inittab的id:5 initdefault:的数字

切换用户 logout 或者su
修改用户运行级别
第一步:vi /etc/inittab
第二步:i 进入编辑状态
第三步: 移动光标到 /etc/inittab的id:5 initdefault: 的相应数字下把数字修改成你想要的级别
第四步:退出编辑状态 Esc 进入命令状态 :保存 wq修改成功
注意:修改运行级别 必须是root用户 普通用户无权限



如果不小心设置运行级别是 6 怎么去修改这个错误的配置呢
当用户重启服务后 一直看到重启界面
我们可以在用户进入到grub的版本引导页面时 在这里系统会停留3秒 可以快速的按 e
再次按e 就可以选择第二行 回车 进入修改级别页面 按 1 就修改了运行级别
回车进入引导界面 按 b 就进入到单用户界面 这时就可以修改用户的运行界面了


为什么在进入引导界面的时候 要修改成1 单用户运行级别呢
因为此时修改成其它级别是无效的,在单用户模式下 就可以修改用户密码,运行级别
这在linux系统中确实是一个漏洞


ls命令
 ls

  ls 命令可以说是linux下最常用的命令之一。它有众多的选项,其中有很多是很有用的,你是否熟悉呢?下面列出了 ls 命令的绝大多数选项。

  -a 列出目录下的所有文件,包括以 . 开头的隐含文件。

  -b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。

  -c 输出文件的 i 节点的修改时间,并以此排序。

  -d 将目录象文件一样显示,而不是显示其下的文件。

  -e 输出时间的全部信息,而不是输出简略信息。

  -f -U 对输出的文件不排序。

  -g 无用。

  -i 输出文件的 i 节点的索引信息。

  -k 以 k 字节的形式表示文件的大小。

  -l 列出文件的详细信息。

  -m 横向输出文件名,并以“,”作分格符。

  -n 用数字的 UID,GID 代替名称。

  -o 显示文件的除组信息外的详细信息。

  -p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通

  文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套

  接字(sockets)。

  -q 用?代替不可输出的字符。

  -r 对目录反向排序。

  -s 在每个文件名后输出该文件的大小。

  -t 以时间排序。

  -u 以文件上次被访问的时间排序。

  -x 按列输出,横向排序。

  -A 显示除 “.”和“..”外的所有文件。

  -B 不输出以 “~”结尾的备份文件。

  -C 按列输出,纵向排序。

  -G 输出文件的组的信息。

  -L 列出链接文件名而不是链接到的文件。

  -N 不限制文件长度。

  -Q 把输出的文件名用双引号括起来。

  -R 列出所有子目录下的文件。

  -S 以文件大小排序。

  -X 以文件的扩展名(最后一个 . 后的字符)排序。

  -1 一行只输出一个文件。

  --color=no 不显示彩色文件名

  --help 在标准输出上显示帮助信息。

  --version 在标准输出上输出版本信息并退出。

  只列出子目录

  1. ls -F | grep /$ 或者 alias sub = "ls -F | grep /$"(linux)

  2. ls -l | grep "^d" 或者 ls -lL | grep "^d" (Solaris)

  计算当前目录下的文件数和目录数

  下面命令可以分别计算当前目录下的文件和目录个数:

  # ls -l * |grep "^-"|wc -l ---- to count files

  # ls -l * |grep "^d"|wc -l ----- to count dir

  显示彩色目录列表

  打开/etc/bashrc, 加入如下一行:

  alias ls="ls --color"

  下次启动bash时就可以像在Slackware里那样显示彩色的目录列表了, 其中颜色的含义如下:

  1. 蓝色-->目录

  2. 绿色-->可执行文件

  3. 红色-->压缩文件

  4. 浅蓝色-->链接文件

  5. 灰色-->其他文件

  ls -tl --time-style=full-iso sshd

  ls -ctl --time-style=long-iso

建立目录 mkdir 例如 mkdir aaa 建立aaa目录(文件夹)
删除空目录 rmdir 例如 rmdir aaa 删除aaa空目录

建立空文件 touch 例如 touch aaa
删除文件 rm -rf * 连同此文件夹下的文件一并删除
rm -rf aaa 或者 rm aaa 选择 y 删除aaa文件

cd 改变目录 例如 cd /aaa/ 切换到aaa目录下
pwd 当前目录
cp 复制文件/目录 例如 cp aaa.txt/home/xiaoming 复制aaa.txt文件到xiaoming用户的home目录下

mv 移动文件
in 建立符号链接
in -s 源目标
in -s /etc/inittab inittab(inittab指向实际文件/etc/inittab/)

more 显示文件内容 带分页
less 显示文件内容带分页
grep 在文本中查询内容
| 管道命令

more install.log 把install.log按分页显示 按长空格键就自动显示下一页的内容

ls -l /etc/ 显示etc目录下的文件详细信息

在linux和unix中 | 表示是上一个命令结果 交给 | 后的命令处理

由于etc目录下的文件较多 用ls -l /etc/命令无法看到全部的文件
所以可以结合管道命令来处理 ls -l /etc/ | more
这样目录中的文件就按分页来显示

查询te.txt中是否有字符 aa 这个字符串 grep "aa" te.txt
如果有 那命令框就会显示 aa字符 否则就没有 直接跳到命令输入行

如果要显示字符出现的行数位置 grep -n "aa" te.txt

在现实生活中 有问题找警察 在linux中有问题找man man命令相当于dos下的help命令

1.作用
linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
2.格式
grep [options]
3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\:忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
4.grep命令使用简单实例
$ grep ‘test’ d*
显示所有以d开头的文件中包含test的行。
$ grep ‘test’ aa bb cc
显示在aa,bb,cc文件中匹配test的行。
$ grep ‘[a-z]\{5\}’ aa
显示所有包含每个字符串至少有5个连续小写字符的字符串的行。
$ grep ‘w\(es\)t.*\1′ aa
如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。
5.grep命令使用复杂实例
假设您正在’/usr/src/linux/Doc’目录下搜索带字符串’magic’的文件:
$ grep magic /usr/src/linux/Doc/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?
其中文件’sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。
默认情况下,’grep’只搜索当前目录。如果此目录下有许多子目录,’grep’会以如下形式列出:
grep: sound: Is a directory
这可能会使’grep’的输出难于阅读。这里有两种解决的办法:
明确要求搜索子目录:grep -r
或忽略子目录:grep -d skip
如果有很多输出时,您可以通过管道将其转到’less’上阅读:
$ grep magic /usr/src/linux/Documentation/* | less
这样,您就可以更方便地阅读。
有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,’grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 <CTRL c> ,然后再试。
下面还有一些有意思的命令行参数:
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
这里还有些用于搜索的特殊符号:
\< 和 \> 分别标注单词的开始与结尾。
例如:
grep man * 会匹配 ‘Batman’、’manic’、’man’等,
grep ‘\<man’ * 匹配’manic’和’man’,但不是’Batman’,
grep ‘\<man\>’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。
‘^’:指匹配的字符串在行首,
‘$’:指匹配的字符串在行尾,

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 意思是说大小是10kb的文件

例如 查找名称install.log的文件 从根目录中开始查找 find / -name install.log

重定向命令
ls -l > aa.txt 把目录列表信息保存在aa.txt文件中
ls -al >> aa.txt 把目录列表的信息追加到aa.txt文件中

例如 grep -n "xuchunrong" aa.txt > a.txt 意思是 把从aa.txt中查询到的信息保存到a.txt文件中

组和权限
组,一个用户属于一个组,就有相应组的访问权限
添加组:groupadd policeman
查看linux中的组 cat /etc/group | more
cat是linux中的只可看不可以修改 vi是既可修改也可查看的命令

查看组显示格式 组名:X:id编号

把一个用户移值到另一个组:
useradd -g 组名 用户名
useradd -g policeman ashuai

查看用户信息
cat /etc/passwd | more

显示格式 用户名:X :504:355::用户组目录:解析器
例如 long:X:504:355::/home/long:/bin/bash/
表示的是用户long x表示密码 为了安全性,以x显示 504 用户id
355 组id ::冒号之间的空格表示注释 /home/long 用户组目录
/bin/bash 解析器

给用户分配密码 passwd ashuai
按提示 输入密码

权限 r 代表可读 4表示 w 可写 2 x是可执行权限 1表示
ls -l 显示格式 --rw--r--r-- 第一列表示 整根虚线 是表示文件类型 如果是一根横线 就是普通文件
第一列字母 表示文件的所有者对该文件的权限 第二列文件所在组对该文件的权限
第三列就是其他组的用户对该文件的权限
如果在某一用户下查询到的文件 第一列以 drwx------显示 那就说明此用户对该文件没有任何权限 包括组也没有
就说明这个文件不属于这个用户和此用户的组 就不能访问此文件

切换目录 cd /home
cd .. 表示切换到上一级目录

如何修改文件的访问权限问题
一种方法 被访问用户自行修改 切换到被修改的用户
who am i命令 表示我是谁
chmod 777 along
这样修改的仅是一个along这个目录 但并不是along下的文件
修改文件 chmod 767 wen.text 就可以了
如果不允许其它用户对这个目录或者文件有这个读写执行权限 :chmod 760
修改后的文件显示在home目录下的along目录第一列drwxrwxrwx
为什么是777呢 因为4表示可写 2表示可写 1表示可写 加起来就是7
为什么是三个7呢 第一个7是针对所有者 第二个7针对所在组 第三个7针对其他组或者用户

ls -ahI 文件名 文件的所有者

在root用户中 可以改变普通用户所在的组
usermod -g 组名 用户名
也可以改变用户的初始目录 usermod -d 组名 用户名


chown 用户名 文件名 改变文件的所有者
chgrp 组名 文件名 修改文件所在的组

在linux上搭建j2ee开发环境
1 什么是挂载 挂载就是把需要的区挂在linux上 这么说吧
就是把一个.iso的镜像文件挂在linux上,这么说吧 一个linux系统 硬盘 电脑
三者什么关系呢 一看就便知 不用说了 假如这个硬盘分四个区 要想使用一个区
就得把这个区挂在linux上,目的,就是为了使linux有权限使用这个区
2 具体做法
在单击vm(虚拟机) set vm 选择dvd/cd-rom 在右侧就可以看到一个添加镜像文件的框 单击选择
iso镜像文件 这个镜像文件里面就像一个压缩文件 你可以把需要的文件制作成镜像文件
在命令框中 mount /mnt/cdrom 就挂载镜像文件了
因为这是在光驱里 所以得先把文件复制到home目录中
cp 文件 /home
输入文件时最好不要一个一个字母的敲 可以使用补全tab命令 在敲文件名一部分时敲键盘tab键便可
切换到安装文件目录 cd /home
执行安装 ./文件
回车 不动时选yes 表示同意
最后就在此目录下建立了安装目录 安装完成

环境配置
重要文件 /etc/profile 环境配置文件
进入vi /etc/profile
进行配置 可以用#注释配置文件信息
在linux下,很多文件是已#来注释的
保存 wq
退出登录 logout
这时注释掉的文件bin就不能用

进入编辑状态 i
java_home=安装路径
path=$path:安装路径 追加形式
classpath=.:安装路径
export java_home path classpath
export 意思是把这些引用进来
退出保存 ESC-:wq
重新登录 logout 进入登录

安装eclipse
1 挂载
2 切换到光驱目录 cd /mnt/cdrom/
3 ls
4 复制安装文件 cp 文件(结合Tab键 补全键)来输入文件 /home/
5 执行安装 tar -zxvf 文件
6 dir 看到安装文件夹
7 切换到安装文件夹 cd /文件目录/
8 查看文件 ls -l
9 启动eclipse 绿颜色是可执行文件 ./eclipse
10 回车后发现 Couldn't find ...这样的一句 告诉你找不到图形界面
11 进入图形界面 startx
12 打开中档控制台 其实就好比windows的cmd
13 切换到 安装目录 cd /eclipse/
14 启动 ./eclipse
15 其它操作跟windows一样

在图形界面下安装 单击进入中段控制台
安装Myeclipse插件
1 挂载(前面已经挂载了这些文件)
2 进入光驱 cd /mnt/cdrom/
3 cp 文件 /home/
4 cd /home/
5 ls 查看文件 找到执行文件
6 执行安装 ./执行文件名
7 后面跟windows一样
8 ls 找到安装文件目录
9 切换到安装目录下 cd /安装目录
10 启动 ./eclipse

安装tomcat
1 cd /mnt/cdrom/
2 cp 文件 /home/
3 cd /home/
4 ls
5 安装 tar -zxvf 执行文件名
6 ls
7






在VMware中装好了centos3.9的Linux,在虚拟机的cdrom中加载iso的文件.Linux系统中无法识别出?

在虚拟机下先建立虚拟机光驱的挂载点

Linux将每一个物理设备都映射成了一个文件,这些文件都放在了/dev文件(linux中目录也是文件)下面,光驱映射成的文件就是一个名为cdrom的文件。mount命令是挂载光驱的基本命令,其后可以跟参数。在挂载光驱之前首先要选好挂载点,强烈建议在不要将文件直接挂载/***的下面,这里我将文件挂载到了/mnt/cdrom下面cdrom是新建的文件。整个过程:


操作过程:

[conan221@CentOS4 ~]$ mount -t auto /dev/cdrom /mnt/cdrom/

mount: only root can do that --一般用户无法挂载cdrom,只有root用户才可以操作。

[conan221@CentOS4 ~]$


--切换用户操作:

[root@CentOS4 /]# mount -t auto /dev/cdrom /mnt/cdrom/

mount: mount point /mnt/cdrom does not exist --/mnt/cdrom目录不存在,需要先创建。

[root@CentOS4 /]# cd /mnt

-bash: cd: /mnt: No such file or directory

[root@CentOS4 /]#

[root@CentOS4 /]# mkdir -p /mnt/cdrom/ --创建/mnt/cdrom目录

[root@CentOS4 /]# ls

bin dev home lib media mnt proc sbin srv tmp var

boot etc initrd lost+found misc opt root selinux sys usr

[root@CentOS4 /]# mount -t auto /dev/cdrom /mnt/cdrom/--挂载cdrom

mount: block device /dev/cdrom is write-protected, mounting read-only --挂载成功

[root@CentOS4 /]# ls -l /mnt/cdrom --查看cdrom里面内容


linux分区详解
硬盘分区主要分基本分区(primary partion)和扩展分区
扩展分区和基本分区数目之和不能大于四个 且基本分区可以马上被使用但不能再分区 扩展分区必须再进行分区才能进行使用,也就是说它必须还要进行第二次分区,那么由扩展分区分下去就是逻辑分区,逻辑分区在数量上没有限制

linux分区理解
windows用户的,有几个分区,就有几个驱动器,每个驱动器都有一个字母来标识,然后可以指定这个字母去获得该字母对应的驱动器,得到该驱动器的文件或者目录
对redhat linux用户,无论几个分区,归根结底就只有一个根目录,一个独立的文件目录结构,它是用载入的机制,把各个区或者文件联系起来,载入到哪个区就是哪个区的文件

硬盘类型 IDE和SCSI硬盘两种,SCSI性能好,主要用于服务器,IDE硬盘主要是针对普通用户,但不能说IDE硬盘不好,只是针对造价而言,对于普通用户来说,IDE硬盘已经足够,IDE硬盘驱动标识hdx hd表示驱动类型,x为盘号(a为基本盘,b为基本从属盘,c为铺助主盘,d为铺助从属盘) 例如hda3表示为第一个ide硬盘的第三个第三个主分区或者扩展分区 sdx sd表示SCSI硬盘,表示主分区 例如sda1表示第一个主分区

挂载命令
mount [参数][设备名称][挂载点]
挂载光驱时 直接使用 mount /mnt/cdrom
或者 mount -t auto /dev/cdrom /mnt/cdrom/
卸载命令 umount [设备名称]
查看磁盘命令
df [参数]
比如 df -l
查看某个目录是在哪个分区
df [目录全路径]
查看linux系统分区的具体情况 fdisk -l
准确性最好的 df -h

查看boot目录在哪个分区下 df /boot/
卸载boot步骤
1 cd / 切换到根目录下
2 umount /boot/
3 查看 cd /boot/ 就发现文件没有了

可以重新挂载
mount /boot/
也可以某个盘挂载到某个目录下
切换到根目录 cd
1 mkdir user
2 mount /dev/sda1 /user/

查找文件大小在1999kb的文件
find -size +1999k

linux的安装
1 独立安装 2 虚拟机安装
安装分区这步是关键
/boot 分区 100mb
/swap 交换分区 一般是物理内存的两倍 但不能大于256
/ 根分区尽可能大

linux的shell
类似windows的批处理文件,主要在linux起解释命令,转换成可执行的代码 在linux中起桥梁的作用 在用户输入命令后,linux实际上是不能认识的,要想执行,就得依靠shell,所以用户在输入命令后,首先传给的是shell,转换成可执行的代码,由shell在给linux,在由linux去执行 并把结果返回给用户

shell的种类
种类很多主要的有 bin/sh bin/csh bin/ksh
查看 ls -l /bin/*sh


查看当前使用的shell类型
env [查看当前系统环境]
通过env就可以查看linux的当前的环境配置 从中就可以找到shell的配置

修改shell类型 chsh -s /bin/csh
注销登录后便可查看 logout
输入 env | more

shell的命令补全命令 tab键
比如 当你要新建一个文件 记得m开头的
m-按两下tab键 按提示输入y
就可以看到以m开头的命令
当你记得mk 输入一次tab键 就把mkdir补全了

tab命令 不但可以补全文件或者目录的输入 还可以补全命令

history 历史记录命令 可以查看最近使用的全部命令
history 5 就可以查看最近使用的5个命令
!5 表示执行编号为5的命令
!ls 表示执行最后一次执行ls的命令

tip/ip的由来
linux/unix其实就是个网络的时间,网络的基础就是tcp/ip
优秀的linux/unix程序员必须了解并掌握tip/ip

tip/ip是unix/linux世界的基础,是网络互联的标准,它不是一个协议,而是一组协议 tcp网络传输协议,ip网络地址

osi模型 七层协议 其实目前使用的只有四层
应用层 表示层,会话层,传输层,网络层,数据链路层,物理层
四层 应用层,传输层,数据链路层 网络层

从事网络开发必读的书 tip/ip的详解 三本 协议,实现,tip事务协议 作者 美国 史第文 号称网络的圣经

ip地址 ip地址按照国际标准分为a,b,c,d,e五种类型 包括网络号和主机号

查询网站ip 和网站速度 在windows的cmd ping www.baidu.com
查询终端网关 比如说本机电脑访问百度 要经历几个网关
tracert www.baidu.com

在windows查看ip情况的命令 ipconfig
在linux/unix下查看ip情况的命令 ifconfig
查看网络是否畅通 ping 目标ip

linux网络配置
第一种
1 用root身份登录,运行setup命令
进入到text mode setup utility 对网络进行配置
这里可以进行ip,子网掩码,默认网关,dns的设置
2 这时网卡配置没有生效
运行/etc/rc.d/init.d/network restart命令我们刚才
的设置才生效
第二种
ifconfig eth0 x.x.x.x 对网卡进行设置
ifconfig eth0 network x.x.x.x对子网掩码进行设置
注意这样配置的只是临时生效,网络会立即生效,当重启电脑后将恢复到原先的ip

第三种
修改/etc/sysconfig/network-scripts/ifcfg-eth0
文件属性可以修改 包括子网掩码,广播地址,默认网关

属性 device=eth0 设备
onboot=yes 表示网卡在系统启动时生效,设置为no,相当于网卡禁用
bootproto=static static表示由自己指定ip dhcp表示自动分配
NETMASK=子网掩码 GATEWAY=默认网关
或者 service network start
运行 /etc/rc.d/init.d/network restart命令生效、

ifconfig命令就可以看ip是否改变

windows跟linux怎么连接平通
在linux中只要把ip地址修改成跟windows在一个ip段的ip即可
并且子网掩码和默认网关必须相同
具体方法可以参考第三种

RPM管理,互联网下载包的打包及安装工具,它包含在linux分发版本中,它生产rpm的扩展名的文件 rpm是软件包的管理工具,公认的行业标准

rpm包格式
apache-1.3.23-11.i386.rpm
apache软件名称
1.3.23-11软件的版本号,主版本和次版本
i386是软件运行的硬件平台
rpm文件的扩展名,代表rpm包

如何查询,linux中安装了哪些rpm软件
rpm -qa

查询是否安装了mysql rpm -q mysql

查询软件信息 rpm -qi mysql

安装rpm的安装包
rpm -i rpm包全路径
安装到当前系统 i=install

rpm -ivh rpm包全路径 安装到当前系统有提示信息
有安装进度条 i=install安装 v=verbose 提示 h=hash 进度条

卸载
rpm -e jdk
如果其它软件包依赖于你要卸载的软件rpm包 将会产生错误信息
若要忽捏 -nodeps命令行选项

升级
rpm -u rpm包全路径
rpm -u cvs-1.11.2-10.i386.rpm

samba服务器 用于实现windows与linux pc机上的文件可以共享
安装samba
检查是否安装 rpm -q samba
如有 卸载 rpm -e samba 卸载不了 出现依赖此软件
可以强制卸载 rpm -e --nodeps samba 这种方式比较危险
把自己的安装文件挂载到linux上
mount命令挂载
查看 cd /mnt/cdrom/ 出现三个samba的文件
可以执行一次性samba拷贝 cp sam* /home/
准备安装 cd /home/
执行 rpm -ivh samba-common-2.2.7a.....rpm
继续装 rpm-ivh samba-client-.....rpm
继续装 rpm-ivh samba-2.2.......rpm

创建用户和密码
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

配置网络
ifconfig 查看网络信息
ifconfig eth0 192. 设置etho的ip
ifconfig etho down 禁止使用eth0
ifconfig eth0 up 打开eth0

关闭linux中的防火墙 用setup 命令打破text mode设置

生效
/etc/rc.d/init.d/network restar
/etc/rc.d/init.d/xinetd restart

在windows中输入//ip地址 就可以访问linux中的共享文件了
共享的目录是用户的默认登录目录

共享的基本设置
comment :针对共享资源所做的说明文字
comment=dir for todayhero 共享这个目录为todayhero这个用户
path:若共享的资源是目录,是指定该目录的位置
guest ok:是否允许用户不是有账号和密码访问此资源
guest ok:yes 允许用户不需要登录密码和用户就可以访问
guest ok:no 要输入用户和密码
4 hosts allow:设置主机的地址
hosts alllow=192.168.0.server.abc.com 意思是说允许来自
192.168.0.或者service.abc.com访问

host deny 设置禁止连接的主机地址
host dent = 192...... 意思说不允许来自192.....主机访问
ready only :用于设置共享的资源是否只允许只读
ready only = yes 允许只读
ready only = no 可写可读

writable:设置是否允许写入 no yes
browseable 设置用户是否可以看到共享后的此资源 no yes
available 设置是否启用资源共享 yes no



安装samba服务器的RPM包

像在linux下安装配置其他服务一样,先要安samba有关的RPM包:

1)Samba-common:包括samba服务器和客户端均需要的文件(在第一张光盘中)

2)Samba:samba服务端软件(在第一张光盘中)

3)Samba:samba客户端软件(在第一张光盘中)

说明一下,列出这些要安装的rpm包包只是为了说明清楚些,其实只要用个“samba*”就全搞定了。为了老少皆宜,我把所有操作过程都帖了过来,连不会挂载光驱的朋友都应该能看懂吧。

1)[root@linux root]# mount /mnt/cdrom
[root@linux root]# cd /mnt/cdrom/RedHat/RPMS/
[root@linux RPMS]# rpm -ivh rpmdb-redhat-9-0.20030313.i386.rpm
warning: rpmdb-redhat-9-0.20030313.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ###################################### [100%]
1:rpmdb-redhat ################################### [100%]

这一步是准备工作,把REDHAT 9的C盘中的rpmdb-redhat包安上,可以解决安装时的依赖关系错误。

[root@linux RPMS]# cd
[root@linux root]# umount /dev/cdrom
[root@linux root]# mount /mnt/cdrom

既然samba的包都在REDHAT 9的A盘,就在光驱中放入A盘,mount挂载一下。

mount: /dev/cdrom already mounted or /mnt/cdrom busy
mount: according to mtab, /dev/cdrom is already mounted on /mnt/cdrom
[root@linux root]# cd /mnt/cdrom/RedHat/RPMS/
[root@linux RPMS]# rpm -ivh samba* --aid

安装所有以samba开头的包,加上—aid参数,就把安装时所需的其他包也安上了,很方便。

warning: samba-2.2.7a-7.9.0.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ##################################### [100%]
1:libjpeg ##################################### [ 14%]
2:libtiff ##################################### [ 29%]
3:libpng ##################################### [ 43%]
4:cups-libs ##################################### [ 57%]
5:samba-common ################################## [ 71%]
6:samba ##################################### [ 86%]
7:samba-client #################################### [100%

修改配置文件

[root@linux RPMS]# vi /etc/samba/smb.conf

在[global]部分做如下修改:

1) workgroup = WORKGROUP (改一下工作组名)

2) hosts allow = 192.168.138. (写一个允许访问这服务器的网段,末尾有“.”)

3) security=user

samba有四种安全等级:

share:用户不需要账户及密码即可登录samba服务器
user:由提供服务的samba服务器负责检查账户及密码(默认)
server:检查账户及密码的工作由另一台windows或samba服务器负责
domain:指定windows域控制服务器来验证用户的账户及密码)

4) encrypt passwdords=yes (去掉前面的注释“;”)

smb passwd file = /etc/samba/smbpasswd (密码文件的位置)

在文件末尾添加如下内容:

[samba] (共享文件夹名)
comment=This is my samba server (这是注释行,可以不写东西)
path=/samba (指定要共享文件的位置)
writable = yes
browseable =yes
read only = yes
create mode=0664 (这是文件权限)
directory mode=0777 (这是目录权限)

保存退出。vi编辑器使用,按“i”,修改添加;先按“esc”,再按“:”输入“wq”即是保存退出,输入“q!”是不存盘退出。

启动samba服务

[root@linux samba]# service smb start (启动samba服务)
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
[root@linux samba]# testparm (检查配置文件的正确性)
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[samba]"
Loaded services file OK.
Press enter to see a dump of your service definitions

创建一个samba用户

该用刻户在windows下有没有都无所谓。

1)建一个系统用户

[root@linux samba]# useradd samba (建一个名叫samba的用户)
[root@linux samba]# passwd samba (给samba用户添加密码)
Changing password for user samba.
New password: (密码要六位以上,不显示在屏幕上)
BAD PASSWORD: it does not contain enough DIFFERENT characters
Retype new password: (确认密码)
passwd: all authentication tokens updated successfully.

2)然后创建samba帐户

[root@linux samba]# smbpasswd -a samba
(-a必须加,为了生成密码文件smbpasswd,该密码是windows登陆Linux的samba用户密码)
New SMB password:
Retype new SMB password:
unable to open passdb database.
Added user samba.

3)查看一下生成的用户名、密码

[root@linux samba]# vi /etc/samba/smbpasswd
samba:500:A9C604D244C4E99DAAD3B435B51404EE:ACB98FD0478427CD18949050C5E87B47:[UX ]:LCT-468268E6:

4)重新启动samba服务

[root@linux samba]# service smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]

最后阶段,进行测试

1)先按照主配置文件所指定的位置,建好要共享的资源。

[root@linux usr]# mkdir samba (建/usr/samba文件夹)
[root@linux usr]# chmod 777 /usr/samba (samba服务器受本地文件系统权限和共享权限两种权限,而且是取最严格的权限,为了方便就把本地权限都给足好了)
[root@linux usr]# cd samba
[root@linux samba]# vi aaa.txt

2)在Windows客户机的地址栏中输入samba服务器ip(如“\\192.168.138.110)


端口使用情况
windows下端口:netstat - an
shh 多用户访问服务

任务调度(crontab) 周而复始的在某一时间做重复的工作

任务调度的使用
1 crontab -e
2 每隔一定时间去执行 date > /home/mydate1
希望,每天凌晨2:00去执行 date >> /home/mydate2
可以在crontab -e 中加入0 2 * * * date >> /home/mydate2

设置任务调度文件 /etc/crontab
设置个人任务调度 执行crontab -e 命令 接着输入任务调度文件
如 5 * * * * ls -l /etc/ > /tmp/to.txt意思说每小时第五分钟执行 ls -l /etc/ > /tmp/to.txt 命令

时间格式 分钟 小时 日期 月历 星期 命令名称

如何怎样去调度多个任务
1 在crontab -e 直接写
例如 * * * * * date >> /home/mydate2
* * * * * cp /home/mydate2 /root
2 可以把所有的任务,写入到一个可以执行的文件(shell编程)
vi mytask.sh
date >> /home/mydata3
cp /home/mydata3 /root
何时执行放到crontab -e 中便可以了

如何终止任务
crontab -r 终止所有调度任务
crontab -l 列出所有调度任务


进程:正在执行的程序
线程:轻量级的进程
相对进程来说,线程没有独立的地址空间,线程不能独立存在
它是由进程创建的(fork)Thread 线程耗费的cpu,和内存小于进程

在linux中每个执行的程序都称为一个进程,每一个进程都分配一个
id号。每一个进程,都会有一个夫进程,而这个夫进程可以复制多个进程,例如www服务器,进程分前台与后台,所谓前台就是用户
屏幕上可以进程操作的,后台进程则是在实际操作,但由于屏幕上无法看到的进程通常使用后台执行
一般系统的服务都是以后台的进程方式存在,而且都会常驻在
系统中,直到关机才结束

查看进程情况
ps
ps -a 显示当前终端的所有进程
ps -u 以用户的格式显示进程信息
ps -x 显示后台进程运行的参数
ps -aux 显示进程比较齐全

结束进程
强制结束 kill -9 进程id
结束 kill 进程id

查看进程动态的使用情况 top

在前台页面最头部 显示了 当前系统时间 系统启动时间 用户数 系统负载情况
进程数 僵尸进程数 停止进程数 cpu使用情况 内存使用情况 swap虚拟内存的情况

退出查看进程ctrl -c 进入命令输入 q
在命令输入框 top -d 10 表示10钟刷新进程数
在进入进程框 输入u 在输入root 显示root用户的进程数 这样可以指定监控用户的进程
ctrl -c 退出网络监控环境 进入用户命令输入框

获得当前系统时间 date

查看月历2002年2月 cal 2 2002 这样可以查看指定的月历
查看当年月历 cal 2002

显示网络统计状况的命令 netstat -an
显示网络统计状况,并连同显示进程id netstat -anp
强制结束进程 kill -9 进程id

测试两台主机连接是否正常 ping ip地址

测试多个路由连接异常 traceroute
例如 :测试连接sohu出现了异常 traceroute www.souhu.com

路由:所谓路由就是将数据由来源网络送往目的网络的操作
当命令输入回车后 当在一个路由地址断了就在那停止不动时就说明此处路由出现问题

也可以这样测试 traceroute 目的ip

mysql数据库安装
挂载 mount /mnt/cdrom
复制 cp mysql-standard-5.0.27-linux-i686.tar.gz
解压缩 tar -zxvf mysql-standard-5.0.27-linux-i686.tar.gz
文件夹改名 mv 文件夹名 自定义名
groupadd mysql 建立mysql组
查询数据库是否安装 rpm -qa mysql
安装了 卸载 rpm -e --nodeps mysql
useradd -g mysql mysql 创建mysql用户并放入到mysql组
初始化mysql 进入到解压缩后的文件夹下
scripts/mysql_install_db --user mysql
修改所有权限 chown -R root .
修改data文件夹权限 chown -R mysql data
data是一个数据库文件夹
chgrp -R mysql . 修改组
启动 bin/mysqld_salf --user=mysql &
是否启动 3306 netstat -anp | more
切换到bin目录 ./mysql -u root -p
按提示输入密码
进入mysql控制台 show databases;
退出 quit

设置在任何目录都可以访问mysql应用程序

首先查看环境变量 env | more
path =:
查看配置环境变量的文件
cd /root
ls -al | more
.bash_profile文件

vi .bash_profile 修改path
path=$path:$home/bin:/home/mysql/bin/
保存即可 重新登录就可以直接执行mysql程序

启动 mysql -u root -p

mysql的使用
建表 建数据库
记得连接驱动包 要放在jdk的主目录的 /jre/lib/ext/
创建一个java连接mysql的类 javac java

备份恢复mysql数据库
备份:mysqldump -u root -p密码 数据库名>data.bak
恢复:mysql -u root -p密码 数据库名< data.bak

例如 备份
1 进入mysql的安装目录 cd /home/mysql
2 文件列 ls
3 切换 cd /bin 找到 mysqldump可执行文件
4 执行数据备份 ./mysqldump -u root -p123 数据库名>/home/myspdb1
5 查看备份文件 cd /home
6 cat myspdb1

例如 恢复
执行 mysql -u root -p
执行 show databases;
切换到数据库下 use 数据库名
删除表 drop table users;
退出数据库quit
执行恢复 mysql -u root -p123 数据库名 < /home/myspdb1
执行查看

ssh安装
什么是ssh
ssh(secure shell)是一款集远程操作linux,和进行文件上传和下载的软件 那是相当好用呀,在软件公司几乎所有的linux程序源都会使用ssh 安全,方便是它最大的特点

下载 SSHSecureShellClient-3.2.9.exe工具
在windows下安装即可使用
linux下 sshd默认是安装的 并且是启动的 网络服务监听的端口是22

查看端口 netstat -anp | more
发现tcp 有22端口 再看foreign address 上面显示的都是0.0.0.0
表示没有外来的连接到这个tcp

使用 前提是linux的ssh已经启动 并且要确认linux和windows是通的
用ping可以查看是否通
查看linux的ip ifconfig

当前目录 pwd
相对路径 从当前目录去访问某个文件或者文件夹
绝对路径 从根目录去访问某个文件


拷贝文件夹
cp -r 文件夹名/ /home
再次拷贝 就是覆盖 继续会有提示是否覆盖 如果文件过多 就会很麻烦
cp -rf 文件夹名/ /home


压缩和解压缩


显示日期
date
显示指定的格式
date +%Y/%m/%d
显示当前日历
cal
显示某年日历
cal 2005
显示某年某月的日历
cal 7 2005

计算器
bc
接着输入一个算术表达式回车就可以查看结果
退出当前的计算器
quit

显示环境变量
echo $PATH

为什么在linux中都可以执行
/bin/ls
这是环境变量的作用

查看文件内容
cat 文件名 | more
more不可以前后翻页

前后翻页
cat 文件名 | less

显示文件内容的前20行 默认显示10行
head -n 20 文件名
显示文件后20行 默认显示10行
tail -n 20 文件名

查看文件属性 编码
file 文件名

 

分享到:
评论
1 楼 tangzlboy 2012-03-30  
非常好,非常详细,非常中用。

相关推荐

Global site tag (gtag.js) - Google Analytics