----------------------------学习第一天----------------------------------
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 (验证权限) |