重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2305|回复: 2

[原创]

[复制链接]
发表于 2014-9-3 10:59:08 | 显示全部楼层 |阅读模式

 

----------------------------学习第一天----------------------------------

Linux

Linux起源

Linux作用

访问Linux的工具

Linux的基本命令

Vi工具

Linux变量设置

Linux起源

Linux是一类Unix计算机操作系统的统称。Linux操作系统也是自由软件开放源代码发展中最著名的例子。在1991 年的10月,由一个名为 Linus Torvalds的年轻芬兰大学生带头开发的作业系统。


 

目前(2014年9月1日星期一),市面上对oracle支持得比较好的版本是:RedHat和SUSE


 

# uname –a

# lsb_release –a       或     # cat /etc/redhat-release

两个命令的区别:

uname查看内核版本

lsb_release查看分发版本(分发厂商),有的linux系统没有lsb_release命令,那么查看/etc目录下的redhat-release文件信息,其实lsb_release命令查看的就是此文件的信息


 

Linux作用

Linux其实就是一个操作系统。可以理解为和Windows一样。我们这里学习Linxu就是因为许多企业的Oracle部署在Linux上,我们学习的目的是要会简单的操作和使用Linxu,便于我们维护和排除Oracle问题。此次学习的目的仅此而已。

访问Linux的工具

secureCRT

putty

VNC viewer

Xmanager

telnet

ssh

Linux的基本命令

文件处理命令

ls

显示当前目录下有哪些文件

  ls

以长文件方式显示文件

  ls –l

按时间顺序显示

  ls –ltr

按文件大小顺序显示

  ls –lSr

pwd

显示当前目录

cd

进入或切换目录

需要注意两个特殊的目录“.”和“..”,分别代表当前目录和当前目录的父目录

# cd -         返回到上一次操作的目录命令;比如我操作了# cd /home/oracle ,然后# cd –那么将会返回到刚刚操作的# cd /home/oracle命令;

# cd 回车键    回到当前用户的宿主目录

mkdir

建立目录

例:

建立 test 目录

 # mkdir test

同时建立两个目录

 # mkdir app test

建立 一个目录树

 mkdir -p /u01/app/test

rm/rmdir

删除文件/删除目录

例:

删除test目录

 # rmdir test 或 # rm –r test

删除rm.txt文件

 # rm rm.txt

删除app目录(注:app目录下有app1,app2……appn个目录,并且app1下有rm.txt文件)

 # rm –fr app

注(选项“f”表示强制,如果不加“f”选择,那么系统会给你提示,一个目录或文件一个提示,很繁琐,所以“f”选项具有一定的危险性,使用前一定要确认清楚。

mv

移动文件、更名(重命名)

例:

移动app目录到oracle目录

 # mv app oracle

注:这是一个剪切操作,执行这个命令后当前目录下就不存在app目录了,而是被移动到了oracle目录下。

把test目录改名为app

 #mv test app

用法延生:移动并更改目录名称

如果当前目录下不存在test目录,只存在一个app目录,并且app目录下有app01目录

那需要把app目录下的app01目录移动到当前目录下,并变更目录名叫test

 # mv app/app01 test

同理还可以把test拷贝会app目录下并且变目录名为app01

 #mv test app/app01

cp

复制文件或目录

例:

把1.txt文件复制处理,命名为2.txt

 # cp 1.txt 2.txt

复制目录u01下所有文件到当前目录(u01目录下无子目录,只有文件)

 # cp u01/* .

复制目录app下所有文件到当前目录(注意app目录下有app1到appn个目录,并且目录下还有文件)

 # cp –R app/* .

注:选项“R”的运用,表示将app目录下的所有文件和子目录复制到当前目录下

把app目录整个复制并命名为app02

 # cp –a app app02

注:这种方式相当于克隆一个目录出来

cat

显示文件内容

注:cat适合查看内容比较短的文件,如果查看想/etc/services这样有很多内容的文件,cat会定屏到最后一屏,不是特别方便,所以查看长内容的文件,用more

例: # cat /etc/sysconfig/network-scripts/ifcfg-eth0

more

分页显示文件内容

语法:more [文件名]

(空格)或f   显示下一页

(Enter)      显示下一行

q或Q        退出

例: # more /etc/services

tail

查看文件的后几行

语法:tail -num [文件名]

-num 显示文件的后num行

-f 动态显示文件内容

例:

查看/etc下services文件的后30行

# tail -30 /etc/services

实时查看被添加到一个文件中的内容

 # tail –f /etc/services

head

查看文件的前几行

语法:head -num [文件名]

-num 显示文件的前num行

例: # head -30 /etc/services     显示/etc目录下services文件的头30行

ln

创建链接文件

例:

为文件1.txt创建一个软链接文件1.txt.link

 # ln -s 1.txt 1.txt.link

注:选项“s”表示创建软链接(相当于windows的快捷方式)


 

既然有软链接,必然有一个硬链接的概念,这里我稍微分析下软链接和硬链接的区别:

软链接文件和硬链接文件分别有什么特点,用在哪些方面


 

软链接 lrwxrwxrwx --> 10 时间值

类似于Windows快捷方式 跨文件系统生成


 

硬链接 cp –p+同步更新   与源文件有相同inode

硬链接不能跨文件系统


 

ls –i     i-inode i节点

硬链接可以同步更新就是应为Linux只认得i节点,硬链接文件和原文件的i节点完全相同,所以每次更新的时候就同步更新了。

文件搜索命令

find

查找文件或目录

例:

在text目录下搜索文件名为u01的文件或目录(我的text目录实际是建立在/home下,绝对路径为/home/test)

 # find /home/text –name u01

在当前目录下搜索文件名为u01的文件或目录

 # find . –name u01

在当前目录下搜索后缀为“.txt”的所有文件或目录

 # find . –name \*.txt     (注意这个“\”的写法和我们linux用的“根目录/”正好是相反的)

通配符:

*:匹配任意字符,包括0字符。如查找当前目录下以init开头的文件 # find . –name init*

?:匹配单个字符,如查找一个以init开头含7个字符的文件,那么init???

在当前目录下搜索属于用户“root”的文件或目录

 # find . –user root

在当前目录下查找大于100MB的文件(数据块block的换算: 100MB=102400KB=204800block  +表示大于,-表示小于,什么都不写,直接204800就是等于

 # find . –size +204800

在当前目录下查找24小时(1天)内被修改过属性的文件或目录

 # find . –ctime -1

注:

天   ctime、atime、mtime

分钟 cmin、amin、mmin

c-change改变,表示文件的属性被修改过,所有者,所属组,权限

a-access 访问

m-modify 修改,表示文件的内容被修改过

-表示之内,+表示超过多长时间,什么都不写,直接写上时间值表示刚好在时间上

在当前目录下搜索过去10天均未被使用过的文件

 # find . –type f –atime +10


 

连接符:

1、连接符: -a and逻辑与,-o or 逻辑或

2、连接符:-exec,   格式:find…… -exec 命令 {} \;

                                 -ok 命令 {} \; 询问确认

{}表示前面find查询的结果

\ 表示转义符(就是让使一些符合或命令使用本身的含义)

;结束

3、-type 文件类型  f 二进制文件 , l 软链接文件  , d 目录

在当前目录下查找大于180MB且小于100MB的文件或目录

 # find . –size +163840 –a –size -201800

在/etc目录下查找inittab文件,然后显示inittab文件的详细信息

 # find /etc –name inittab –exec ls –l {} \;

在当前目录下查找1.txt的文件,然后删除掉

 # find . –name 1.txt –exec rm -fr {} \;

在当前目录下查找2.txt的文件,然后删除掉(用管道的方式)

 # find . –name 2.txt | xargs rm

locate

查找文件或目录

(locate的查找速度非常快,但是如果没有更新系统目录文件的数据库,有些新建的文件是查找不到的,所以这个命令一般要和updatedb配合使用)

注:这个命令在UNIX系统里基本不提供,只在Linux系统中有提供

updatedb

建立整个系统目录文件的数据库

例: # updated

grep

在文件中搜寻字符串匹配行并输出

例:

在/etc/services文件中搜索含ftp的段

 # grep ftp /etc/services

which

显示系统命令所在目录

例: # which ls

whereis

显示系统命令所在目录

例: # whereis ls


 

which和whereis命令的区别:

which和whereis都会找到命令的绝对路径。不同的是which会找到命令的别名机制(其实Linux目录或文件的不通颜色就是别名机制控制的),而whereis会找到命令的帮助目录

帮助命令

man

获得帮助信息

注:man在显示帮助信息时是调用more来显示,所有more的内置功能,[空格]或[Enter]等

例:

查看命令ls的帮助命令

 # man ls

查看配置文件services的帮助信息

 # man services

--help

获得简短帮助信息

例:

 # ls –help

磁盘操作命令

fdisk

划分分区

例:

查看磁盘信息

 # fdisk –l

增加分区

 # fdisk

n-->p-->w

注:虚拟机增加一块新盘后用这个命令需要重启系统

mkfs

创建文件系统

# mkfs -t ext3 /dev/sdc1

语法: Usage: mkfs [-V] [-t fstype] [fs-options] device [size]

mount/umount

挂载/卸载一个文件系统

挂载一个叫做hdc1的盘 –– 确定目录 '/ mnt/hdc1' 已经存在;linux下所有的设备都是文件

  mount /dev/hdc1 /mnt/hdc1

卸载一个叫做hdc1的盘        –– 需要先从挂载点 '/ mnt/hdc1' 退出

  umount /dev/hdc1

df

显示已经挂载的分区列表

 # df –h

du

例:

以k为单位查看 'dir1' 已经使用的磁盘空间'

 du -sk dir1

以容量大小为依据依次显示文件和目录的大小

 du -sk * | sort -rn

用户和组管理命令

groupadd

创建一个新用户组

# groupadd new_group_name

groupdel

删除一个用户组

 # groupdel group_name

groupmod

修改用户组信息

例:

修改webadmin组名为apache

 # groupmod -n new_group_name old_group_name  注:新组名称在前,老组名称在后

 # groupmod -n apache webadmin

groups

查看用户隶属于哪些组

 # groups oracle

useradd

创建一个新用户

例:

创建一个隶属于oracle用户组的用户Irving

 # useradd –g oracle Irving

userdel

删除一个用户

 # userdel –r Irving     “r”选项表示同时删除用户的目录

usermod

修改用户属性

例:

修改本身属于oracle组的oracle用户为oinstall组

 # usermod –g oinstall oracle

passwd

设定密码

例:

为新添加的用户Irving指定密码为rootroot

 # passwd Irving   (根据shell提示输入rootroot并且确定就可以)

权限管理命令

chmod

改变目录权限

例: # chmod 777 Directory

chown

改名所用者

例:

改变原所用者为root的1.txt文件的所有者为oracle

 # chown oracle 1.txt

改变一个目录的所有者为oracle并同时改变该目录下所有文件的所有者均为oracle

 # chown –R oracle Directory

改变一个文件的所有人和群组属性

 # chown user:group 1.txt

 # ls –lr Directory  (验证权限)

回复

使用道具 举报

 楼主| 发表于 2014-9-3 10:59:56 | 显示全部楼层
 
压缩解压命令

gzip

压缩解压命令:gzip

命令英文原意:GNU zip

命令所在路径:/bin/gzip

执行权限:所有用户

功能描述:压缩文件

语法:gzip [选项] [文件]

压缩后文件格式:  .gz

现在常见的压缩格式

.gz

gzip

1、  只能压缩文件,不能压缩目录。

2、  不保留原文件。


gunzip

命令名称:gunzip

命令英文原意:GNU unzip

命令所在路径:/bin/gunzip

执行权限:所有用户

功能描述:解压缩.gz的压缩文件

语法:gunzip [选项] [压缩文件]

例:

# gunzip file1.gz


tar

命令名称:tar

命令所在路径:/bin/tar

执行权限:所有用户

功能描述:打包目录

语法:tar [选项] [目录]

            -c 产生.tar打包文件

            -x 解包.tar文件

            -v 显示详细信息

            -f 指定压缩后的文件名

            -z 打包同时压缩

压缩后文件格式: .tar.gz

例:

$ tar –zcvf dir1.tar.gz dir1

将目录dir1压缩成一个打包并压缩的文件


$ tar –zxvf dir1.tar.gz   解包


zip

命令名称:zip

命令所在路径:/user/bin/zip

执行权限:所有用户

功能描述:压缩文件或目录

语法:zip [选项] [压缩后文件名称] [文件或目录]

            -r  压缩目录

压缩后文件格式: .zip

例:

$ zip services.zip /etc/services    压缩文件

$ zip –r test.zip /test            压缩目录


unzip

命令名称:unzip

命令所在路径:/user/bin/unzip

执行权限:所有用户

功能描述:解压.zip的压缩文件

语法:unzip [压缩文件]

例:

$ unzip test.zip


bzip2

命令名称:bzip2

命令所在路径:/user/bin/ bzip2

执行权限:所有用户

功能描述:压缩文件

语法:bzip2 [选项] [文件]

      -k 产生压缩文件后保留原文件

压缩文件格式: .bz2

例:

$ bzip2 -k file1


bunzip2

命令名称:bunzip2

命令所在路径:/user/bin/ bunzip2

执行权限:所有用户

功能描述:解压缩

语法:bunzip2 [选项] [压缩文件]

      -k 解压后保留原文件

例:

$ bunzip2 -k file1.bz2

网络通信命令

ifconfig

查看网络设置信息

例:

显示一个eth0网卡信息

 # ifconfig eth0

修改ip地址(单次生效)

# ifconfig eth0 192.168.0.51 netmask 255.255.255.0              

启用一个 'eth0' 网络设备

# ifup eth0

 禁用一个 'eth0' 网络设备

# ifdown eth0

hostname

显示主机名

       # hostname

ethtool

显示网卡 'eth0' 的流量统计

       # ethtool eth0

netstat

显示所有启用的网络连接和它们的 PID

       # netstat -tup

服务管理命令

chkconfig

列出所有服务

# chkconfig --list

启动,停止,查看服务

# service vsftpd start/stop/status

控制系统启动时,是否启动服务

# chkconfig --level 5 vsftpd on

验证修改

# chkconfig vsftpd –list

进程管理命令

查看用户信息 w

w显示信息的含义

JCPU:以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里

PCUP:CPU执行程序耗费时间

WHAT:用户正在执行的操作

load average:分别显示系统在过去1、5、15分钟内的评价负载程度

from:显示用户从何处登录系统,“:0”的显示代表该用户是从 X Window打开文本模式窗口登录的

IDLE:用户闲置的时间。这是一个计时器,一旦用户执行任何操作,该计时器便会被重置

查看个别用户信息:w 用户名


查看系统中的进程 ps

常用选项

                   a:显示所有用户的进程

                   u:显示用户名和启动时间

                   x:显示没有控制终端的进程

                   e:显示所有进程,包括没有控制终端的进程

                   l:长格式显示

                   w:宽行显示,可以使用多个w进行加宽显示

ps常用输出信息的含义


                   PID:进程号

                   PPID:父进程的进程号

                   TTY:进程启动的终端

                   STAT:进程当前状态

                            S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止

                   NI:进程优先级

TIME: 进程自从启动依赖启动CUP的总时间

                   COMMAND/CMD: 进程的命令名

                   USER: 用户名

                   %CUP: 占用CPU时间和总时间的百分比

                   %MEM: 占用内存与系统内存总量的百分比

ps应用实例

# ps 查看隶属于自己的进程

# ps –u or –l 查看隶属于自己进程详细信息  显示信息基本差不多

# ps –le or –aux 查看所有用户执行的进程的详细信息

# ps –aux –sort pid 可按进程执行的时间、PID、UID等对进程进行排序


# ps –aux | grep sam

# ps –uU sam

查看系统中指定用户执行的进程

# ps –le | grep init

查看指定进程信息

查看特定进程

 # ps –ef|grep ora_smon

 # ps –ef|grep LOCAL=NO



杀死进程 kill

为什么要杀死进程

                   该进程占用过多的CUP时间

                   该进程锁住了一个终端,使其他前台进程无法运行

                   运行时间过长,但没有预期效果

                   产生了过多到屏幕或磁盘文件的输出

                   无法正常退出

                   ……


关闭进程:kill 进程号

kill -9 进程号 (强行关闭)

kill -1 进程号 (重启进程)

关闭图形程序:xkill

结束所有进程:killall

查找服务进程号:pgrep 服务名称

关闭进程:pkill 进程名称

文本编辑器Vim/Vi

Vim/Vi简介

Vim/Vi 是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是创建、编辑、显示文本文件。

 

Vim/Vi 没有菜单,只用命令。

                                                          www.vim.org

Vi、 Emacs、 UltraEdit


缺省进入vim/vi就是 命令模式 ,这个时候输入任何命令系统都会当作命令处理;

输入i、a、o插入命令,就会进入插入模式,这个时候vi/vim编辑器就可以像记事本一样来操作;

(插入模式到命令模式的切换用 Esc 键)

输入 : ,就是进入编辑模式,这个模式下就对文件进行一下包括保存退出的操作;

(编辑模式的命令执行完成后会自动回到命令模式)

插入命令

i:在光标前插入文本;

I:在本行开始插入文本;

a:在光标后附加文本;

A:在本行行末附加文本;

o:在光标下插入新行;

O:在光标上插入新行;


定位命令

h:方向左键

j:方向下一行

k:方向上键

l:方向右键


$:移至行尾

0:移至行首

H:移至屏幕上段

M:移至屏幕中央

L:移至屏幕下端


删除命令

x:删除光标所在处字符;

Nx:删除光标所在处后N个字符;

dd:删除光标所在行;

Ndd:删除N行;

dG:删除光标所在行到末尾的内容;

D:删除光标所在处行尾;

:n1,n2d:删除指定范围行;(比如删除1—8行的内容:1,8d 回车)


复制和剪切命令

yy、Y:复制当前行

nyy、nY:复制当前行以下n行

dd:剪切当前行

ndd:剪切当前行以下n行

p、P:粘帖在当前光标所在行下或行上


替换和取消命令

r:取代光标所在处字符;

R:从光标所在处开始替换字符,按Esc结束;

u:取消上一步操作;


搜索替换命令

/string:向前搜索指定字符串(sting表示指定字符串,如/ftc),搜索时忽略大小写:set ic;关闭忽略大小写,set noic;

n:搜索指定字符串的下一个出现位置(从前向后找);N:搜索指定字符串一个出现位置(从后向前找);

:%s/old/new/g:全文替换指定字符串;

:n1,n2s/old/new/g:在一定范围内替换指定字符串;g(表示替换时不询问确认),c(表示替换时候需要询问确认)


保存退出命令

:wq  写入退出write quite。

快捷键:    ZZ  (shift+zz)=:wq


如果文件是个的只读的文件,就会出现这样的提示,这时候我们可以加个!,如:wq!可以强行保存退出。


应用实例

n  导入文件            :r 文件名

n  在Vi中执行命令:    :!命令

应用小技巧

例:在文件services的光标所在处加入当前时间

:r !date

n  定义快捷键       :map 快捷键 触发命令

例:    :map  ^P I#<Esc>定义快捷键ctrl+p 实现在行首加上#号并回到命令模式

        :map ^E awtq630@126.com<Esc>

         :map ^B 0x  定义快捷键 ctrl+b 删除行首的字符(#号)

ps:

这“^”符号可不是直接shift+6上去的,而是“crtl+v”“ctrl+p”或者“ctrl+v+p”形成的,否则即使写得像但是是执行不了的。

需要注意的是定义Ctrl的快捷键,ctrl+v是不变的,后面是用哪个字母表示快捷键,P或者其他的,会有变化。

n  连续行注释          :n1,n2s/^/#/g               在行首加#号

                        :n1,n2s/^#//g               把行首的#号去掉(替换为空)

                        :n1,n2s/^/\/\//g            

                        ps:

                        ^ 这个符号在vi里表示行首。

n  替换  :ab Irvingmail Irving@qq.com    :unab Irvingmail(取消ab定义)

n  vi ~ /.vimrc       (设置日常使用的快捷键,这样就可以永久保存,不会随vi                  的关闭而失效)

root    /root

users   /home     zhangsan   /home/zhansan     lisi     /home/lisi

~/.vimrc = /root/.vimrc   ~宿主目录



Linux变量设置

Linux变量分类

Linux变量可分为两类:

永久的:需要修改配置文件,变量永久生效。

 临时的:使用export命令声明即可,变量在关闭shell时失效。

Linux设置变量的三种方法

1、在/etc/profile文件中添加变量【对所有用户生效(永久的)】

   用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

   例:

编辑/etc/profile文件,添加CLASSPATH变

    # vi /etc/profile

    export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

  注:修改文件后要想马上生效还要运行# source /etc/profile,不然只能在下次重进此用户时生效。


2、用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

   例如:编辑oracle用户目录(/home/oracle)下的.bash_profile

     $ vi /home/oracle/.bash_profile

    添加如下内容:

    export ORACLE_SID=orcl

    注:修改文件后要想马上生效还要运行$ source /home/oracle/.bash_profile

      不然只能在下次重进此用户时生效。

3、在shell的命令行下直接使用[export 变量名=变量值] 定义变量,

      该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,

      变量也就失效了,再打开新shell时就没有这个变量,

      需要使用的话还需要重新定义。

   例:

   export DISPLAY=192.168.133.1:0.0

变量的查看和设置方法

1 使用echo命令查看单个环境变量。例如:

   # echo $PATH

2 使用env查看所有环境变量。例如:

   # env

3 使用set查看所有本地定义的环境变量。

4  unset可以删除指定的环境变量。

-------------------------第一天学习结束-------------------------------

回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2022-10-2 01:10 , Processed in 0.084215 second(s), 17 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

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