成功源于专注
« »
2010/07/24工作

31 Views

工作中的Linux学习 – 原创

如果您以为您不是从事嵌入式开发就可以不用了解Linux,那就大错特错了

现在的一些比较正规的企业开发,特别是大型企业的开发,都是在Linux环境下的

特别是服务端的开发,所用的服务器都是用Linux操作系统

我也没有想到我现在的工作竟然是在Linux下进行开发的

以下记录一下在工作中对Linux的学习(并非在文中会穿插一些系统架框与设计思想)

Linux发展史

1991年10月5日由荷兰赫尔辛基大学计算机系二年级学生Linus Benedic Torvalds设计出0.1版内核,后经众多的程序员的不断努力,现已成为全球应用最广泛的UNIX类操作系统。

目前linux已有Red hat,Suse, OpenLinux, Ubuntu等众多的版本,这些版本采用相同的内核,差异只在于外围的应用软件。

目前来说大型企业的应用程序都是在服务器上运行了,而为了追求稳定与安全,绝大部分都程序布署在linux系统上,而客户端可以使用window系统。如果您以为搞嵌入式才会碰Linux,那就大错特错了,需要Linux知识的工作有大型ERP系统的开发,银行系统的开发,游戏服务器等这些都是需要Linux人才了,为了避免杯具的情况,请学习Linux。

Linux与Shell

如果您是在工作中接触到Linux,那样的话没有多大的可能性是使用图形化的界面,为了节省系统的资源,一般是使用Shell来操作Linux系统,Shell其实类似Window下的Doc。

用户通过Shell来完成对内核程序的调用。其实任何的软件最终的实现都是系统内核来完成,我们平时编写的软件的都是通过对系统内核进行调用,最终完成功能,只不过我们编写的时候只关注高层,没有去了解底层。

常见的Shell类型有ash, bash, ksh, csh, zsh。

使用以下命令可以查看当前使用的Shell的类型: echo $SHELL

Linux基本操作

1.登录系统

使用连线工具, telnet连入主机

telnet 192.168.6.199

实际工作中,服务器只有一台,但是开发或维护以及使用的人却是很多的,所以不是直接在服务器上的机登录,而是在其它的机上通过网络来访问服务器,并进行相关的操作。所以要使用telnet来远程登录,输入telnet跟主机所在的Ip后,会要求输入用户名跟密码,注意linux系统是区分大上写的,然后就可以通过本地的Shell发对远程主机发送指令。

退出登录使用指令exit 或 Ctrl + D

2.关闭或重启系统

关闭主机

shutdown -h now 或 init 0

重启系统

reboot 或 init 6

3.管理用户

修改自已的密码

passwd

管理员还可以修改其它人的密码

passwd [username]

4.用户身份切换

查看当前用户

id

切换其它用户身份

su oracle 或 su – oracle

su 跟 su – 的区别在于前者只是简单的切换当前用户,后者改变用户的同是执行新用户的.profile文件

5.用户信息文件.profile

在ksh中,每个用户在登录之后,都会自动执行其主目录下的.profile文件,我们可以编辑该文件,在其中设定一些环境变量或者预执行操作

在Linux系统中,以”.”开头的文件属于隐藏文件,我们可以使用”ls -a”命令看到这些隐藏文件

在任何目录下,使用”CD”命令即可回到用户的主目录

其中”.”表示当前目录,而”..”表示上级目录

6.环境变量

环境变量可以理解为系统参数,除了系统自己的环境变量之外,在LInux系统上的很多的应用软件都支持自己的特有的环境变量。在.profile中主要是对环境变量的设定。环境变量相关的操作有

隐藏文件不可见,但是可以直接进行编辑

设置环境变量

export ORACLE_SID = [SID]

是示环境变量的当前值

echo $ORACLE_SID

显示当前用户设定的所有环境变量以及它们的值

set

7.环境变量修改实例

echo $LANG

export LANG=zh_CH.gb2312

设置环境变量很重要也很有用,假如你的服务的程序放在某个地方,而每次修改都要到这个地方进行操作,那样您可以为这个地方设置一个环境变量为$CUST,以后输入cd $CUST就可以进入该目录,节省时间跟出错率。)

8.查看命令的帮助

在Linux系统中,很多命令都带有复杂的参数,要了解这些命令的具体用法,可以使用以下三种方法:

man [command]

[command] –help

[command] -h

其中man命令是linux自带的指令说明程序,对于标准的linux指令都有效,下面的两种要视具体命令而定,有些命令不带任何参数也会弹出提示

Linux文件系统与相关的指令

1.Linux文件系统结构

根目录
/表示根目录,任何目录及文件均由此开始建立

当前目录
使用pwd查看当前目录

主目录
查看环境变量$HOME

绝对路径
以根目录(/)开始的路径称为绝对路径

相对路径
不是以根目录(/)开始的路径称为相对路径

2.通配符与正则表达式

通配符,在执行文件操作时可以使用通配符来执行模糊查询,其中”*”表示符意长度的任意字符串,”?”表示单个的任意字符串。

正则表达式
[0..9a..z]该位置为任意字符
[a..z]该位置为a~z之间的任意字符
[!a..z]为非a~z之间的任意字符。

3.文件相关指令

列出文件清单。

4.文件相关指令

touch [filename]。

touch命令的正式用法是更新一个文件或者目录的最近访问/修改时间。但是我们在应用过程中需要创建一个空文件的时候,比如说一个新的Informaix数据库),使用这条命令会十分方便。

5.文件相关指令 – 显示文件内容

cat [filename]。

more [filename]

使用more的时候单击回车,可以到下一行,单击空格可以得到下一页,单击q可以退出程序。

6.文件相关指令 – 显示文件内容

显示文件的最后n行

tail -n [number] [filename]

实时刷新显示

tail -f [filename]

7.文件相关指令 – 创建文件夹

创建目录

mkdir [dirname]

说明:创建目录时,用户必须对当前的目录有写权限,否则会导致创建失败,新建目录的默认权限受该用户当前的umask参数影响,可以一次性创建多个目录 mkdir a b c d

删除目录

rmdir [option] [dirname]

rm [option] [dirname]

在linux系统中被删除的文件无法恢复,所以使用该指令前务必确认操作

说明: -r 参数表示连同子目录一并删除
-f表示遇到只读文件也一并删除
-i表示以交互方式进行删除

7.文件相关指令 – 目录操作

切换目录

cd [dirname]

复制目录

cp -r [source] [target]

-r参数表示将其下所有子目录和文件也一并复制

移动目录

mv [old] [new]

8.文件相关指令 – 查看磁盘

查看当前的磁盘使用状况

df -h

显示目录大小

du -s [directory]

一个大型的系统应该做好硬盘的规划,可以在根目录下创建三个区,分别为/u1, /u2, /u3,然后u1为程序盘, u2为数据库, u3为备份区

8.文件相关指令 – 文件权限

更改文件权限

chmod [option] [权限模式] [filename/dirname]

三个数字代示用户自己,同群组用户,其他用户的权限,其中每个数字按照以下的计算: r – 4, w – 2, x – 1, = 0表示没有任何的权限, 7代表 + 4 + 2 + 1拥有所有的权限

通过 + / – 来赋予或者回收某个权限

-R表明更改其下所有目录跟文件的权限

9.文件相关指令 – 更改所有者

更改文件所有者

chown [group] [filename/dirname]

更改文件所有者群组

chgrp [group] [filename/dirname]

10.文件相关指令 – 查找文件

寻找文件

find [directory] -name [file]

11.文件相关指令 – 在文件中查找文符串

grep [option] [pattern] [file]

使用 -l 参数只显示文件名

重定向

在linux上有三种设备: stdin 标准输入设置,默认是键盘
stdout 标准输出设备,默认是屏幕
stderr 标准错误设备,默认是屏幕

将原本从标准设备输入输出的文件改变为从文件中输入/输出,称作重定向

示例:将当前目录中的文件清单输出到一个文件中

ls -l > as.log

使用重定向的目的是将一些命令组合起来完成更复杂的任务

重定向符号
> 表示以覆盖的方式将原本由stdou输出的资料重定向到文件中
>>表示以追加的方式将原来由stdout输出的资料重定向到文件中
<表示将文件的内容重定向到程序的stdin中
| 把一个程序的输出内容重定向到另外一个程序的stdin里

常用工具程序

tar 文件和目录打包/解压程序,通常用法如下:

tar cvfz mytar.tar.gz tiptop

tar xvfz tiptop

也许您还对以下的文章感兴趣

日志信息 »

该日志于2010-07-24 09:59由 bingobin 发表在工作分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

没有评论

发表评论 »

返回顶部