发布新日志

  • Linux关于vi替换命令的使用说明

    2010-06-02 10:39:02

    Linux关于vi替换命令的使用说明
      vi/vim 中可以使用 :s 命令来替换字符串。以前只会使用一种格式来全文替换,今天发现该命令有很多种写法(vi 真是强大啊,还有很多需要学习),记录几种在此,方便以后查询。
     
      :s/vivian/sky/ 替换当前行第一个 vivian 为 sky
     
      :s/vivian/sky/g 替换当前行所有 vivian 为 sky
     
      :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
     
      :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
     
      n 为数字,若 n 为 .,表示从当前行开始到最后一行
     
      :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
     
      :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
     
      可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
     
      :s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
     
      :%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/
     
      1.:s/vivian/sky/ 替换当前行第一个 vivian 为 sky
     
      :s/vivian/sky/g 替换当前行所有 vivian 为 sky
     
      2. :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky
     
      :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky
     
      (n 为数字,若 n 为 .,表示从当前行开始到最后一行)
     
      3. :%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky
     
      :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
     
      4. 可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
     
      :s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/
     
      5. 删除文本中的^M
     
      问题描述:对于换行,window下用回车换行(0A0D)来表示,linux下是回车(0A)来表示。这样,将window上的文件拷到unix上用时,总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。
     
      。 使用命令:cat filename1 | tr -d “^V^M” > newfile;
     
      。 使用命令:sed -e “s/^V^M//” filename > outputfilename.需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M.你必须要手工进行输入,而不是粘贴。
     
      。 在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:%s/^V^M//.
     
      。 :%s/^M$//g
     
      如果上述方法无用,则正确的解决办法是:
     
      。 tr -d "\r" < src >dest
     
      。 tr -d "\015" dest
     
      。 strings A>B
     
      6. 其它
     
      利用 :s 命令可以实现字符串的替换。具体的用法包括:
     
      :s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1
     
      :s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1
     
      :。,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1
     
      :1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1
     
      :g/str1/s//str2/g 功能同上
     
      从上述替换命令可以看到:g 放在命令末尾,表示对搜索字符串的每次出现进行替换;不加 g,表示只对搜索
     
      字符串的首次出现进行替换;g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作。
  • linux 文件重定向

    2010-06-02 10:28:48

    “>”重定向覆盖原来的文件;“>>”追加到文件的末尾。

    1、重定向标准输出,可以使用“>”符号,举例:
      dir my_dir > filelisting.txt
    将把 dir 命令的标准屏幕输出重定向到文本文件 filelisting.txt 文件里
    2、重定向标准错误,可以使用结构“2>”,举例:
      dir my_dir 2> errorlisting.txt
    以上命令将送标准输出到屏幕上,如果没有错误信息,将没有任何信息写到 errorlisting.txt 文件里。如果出错,则没有什么东西输出到屏幕,而文件 errorlisting.txt 将包含错误信息。
    3、dir my_dir > file_and_error_listing.txt 2>&1(&1表示和前面相同)以上命令先重定向标准输出到文本文件里,然后再重定向标准错误到和标准输出同样的位置。
    4、还可以使用符号“|”(管道命令把一个命令的标准输出送到另外一个命令的标准输入。下面例子里,dir 命令的标准输出通过管道输入到命令 more 里(输出满屏的时候自动暂停):   dir | more
    5、使用“tee”命令把标准输出同时写到文件和屏幕:dir | tee filelisting.txt
    6、Linux下还有一个特殊的文件/dev/null,所有重定向到它的信息都会消失得无影无踪。当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
    7、以下命令是把标准输出和错误都定向到文件
    #ls /dev &>filename
    "&"在这里代表标准输出和标准错误,这里无论是正常输出还是错误信息都写到filename中了
    8、重新定义文件标识符可以用i>&j命令,表示把文件标识符i重新定向到j,你可以把"&"理解为"取地址"
    请看以下例子
    #exec 5>&1
    表示把文件标识符5定向到标准输出,这个命令通常用来临时保存标准输入。

    Linux tee命令功能说明:读取标准输入的数据,并将其内容输出到标准输出和文件。
    语  法:tee [-ai][--help][--version][文件...]
    补充说明:tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件;如果tee后面没有指定文件,则只将其内容输出到标准输出设备,tee 只支持单个或两个输出,类似于水管工人使用的 T 型管。

    参  数:
    -a     或     --append                  附加到既有文件的后面,而非覆盖它.
    -i-i    或     --ignore-interrupts   忽略中断信号。
    --help                                      在线帮助。
    --version                                  显示版本信息。
    例子:
    make 2>&1 | tee make.log

    command   >   filename   把把标准输出重定向到一个新文件中  
    command   >>   filename   把把标准输出重定向到一个文件中(追加)  
    command   1   >   fielname   把把标准输出重定向到一个文件中  
    command   >   filename   2>&1   把把标准输出和标准错误一起重定向到一个文件中  
    command   2   >   filename   把把标准错误重定向到一个文件中  
    command   2   >>   filename   把把标准输出重定向到一个文件中(追加)  
    command   >>   filename   2>&1   把把标准输出和标准错误一起重定向到一个文件中(追加)

  • UNIX/LINUX中的文件及目录权限

    2009-04-24 12:57:43

    怎么样设置

    来源:linuxdby.com
    window.google_render_ad();在UNIX中,所有的文件及目录都拥有自己的访问权限,来限制用户的访问,提高系统的安全性.
    每个文件及目录都有三个级别的权限:所有者级别(u),组访问级别(g),其他用户访问级别(o).每个级别都有三个权限:读(r),写(w),执行(x).
    例如:

    #ls -la
    -rwxrwxrwx 1 root root 6789 Nov 1 09:01 abc.c
    drwxr-xr-x 2 root root 51 Nov 1 10:20 tool


    abc.c为一个文件,第一个rwx表示文件所有者(即文件属主)的权限为读写执行.第二个rwx表示同组用户的权限为读写执行.每三个rwx表示其他组用户的权限为读写执行.
    tool为一个目录,每一个rwx表示目录所有者(即目录属主)的权限为读写执行.第二r-x表示同组用户的权限为读执行.第三个r-x表示其他组用户的权限为读执行.
    我们可以用"1","0"来表示权限的设置与否.没有设置权限"-",用"0"表示,设置了权限(不管是r,w或x),用"1"表示.


    用0,1表示 转换为八进制数表示
    没有权限 --- 000 0
    执行权限 --x 001 1
    写权限 -w- 010 2
    写执行权限 -wx 011 3
    读权限 r-- 100 4
    读执行权限 r-x 101 5
    读写权限 rw- 110 6
    读写执行权限 rwx 111 7


    下面便让我们看一看该怎么样设置权限.举例如下:
    #chmod u+rwx abc.c 设置abc.c文件属主的权限为rwx
    #chmod g+rwx abc.c 设置abc.c文件同组用户的权限为rwx
    #chmod o+rwx abc.c 设置其他组的用户对abc.c文件有读,写,执行权限
    这种设置等效于:
    #chmod 777 abc.c
    也等效于:
    #chmod a+rwx abc.c (a表示所有用户)
    让我们再看一个例子:
    #chmod 755 lpsed
    等效于:
    #chmod u+rwx lpsed
    #chmod g+r-x lpsed
    #chmod o+r-x lpsed
    表示所有的用户对文件lpsed都有读及执行权限,只有文件属主可以改变文件.即写权限。
  • Linux中的目录结构

    2007-08-14 21:24:33


    二、目 录

    1、什么是文件系统

    2、文件系统的类型

    3、目录结构的详细解读

    4、一些重要子目录的解读

    5、附录:目录结构的简明查阅手册

    三、正 文

    我想,不光是我,对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步。下面大家跟飘扬一起来学习吧………….

    1、什么是文件系统

    当您使用Linux的时候,如果您通过ls –l / 就会发现,在/下包涵很多的目录,比如etc、usr、var、bin ... ... 等目录,而在这些目录中,我们进去看看,发现也有很多的目录或文件。文件系统在Linux下看上去就象树形结构,所以我们可以把文件系统的结构形象的称为树形结构。

    linux文件系统的最顶端是/,我们称/为Linux的root,也就是 Linux操作系统的文件系统。Linux的文件系统的入口就是/,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。

    2、文件系统的类型

    LINUX有四种基本文件系统类型:普通文件、目录文件、连接文件和特殊文件,可用file命令来识别。

    普通文件:如文本文件、C语言元代码、SHELL脚本、二进制的可执行文件等,可用cat、less、more、vi、emacs来察看内容,用mv来改名。

    目录文件:包括文件名、子目录名及其指针。它是LINUX储存文件名的唯一地方,可用ls列出目录文件。

    连接文件:是指向同一索引节点的那些目录条目。用ls来查看是,连接文件的标志用l开头,而文件面后以"->"指向所连接的文件。

    特殊文件:LINUX的一些设备如磁盘、终端、打印机等都在文件系统中表示出来,则一类文件就是特殊文件,常放在/dev目录内。例如,软驱A称为/dev/fd0。LINUX无C:的概念,而是用/dev/had来自第一硬盘。

    3、目录结构的详细解说

    文件系统的组织结构分析,我们能分析什么呢?也就是当我们列/目录时,所看到的 /usr、/etc ... ... /var 等目录是做什么用的,这些目录是不是有些特定的用途。无论哪个哪个版本的Linux系统,都有这些目录,这些目录应该是标准的。当然各个Linux发行版本也会存在一些小小的差异,但总体来说,大体还是差不多。

    言归正传,下面飘扬将讲到本文最核心的部分:linux文件系统的目录结构。

    / bLinux文件系统的入口,也是处于最高一级的目录;

    /bin 系统所需要的那些命令位于此目录,比如 ls、cp、mkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的、普通用户都可以使用的命令。作为基础系统所需要的最基础的命令就是放在这里。

    /boot Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录;

    /dev 设备文件存储目录,比如声卡、磁盘... ...

    /etc 系统配置文件的所在地,一些服务器的配置文件也在这里;比如用户帐号及密码配置文件;

    /home 普通用户家目录默认存放目录;

    /lib 库文件存放目录

    /lost+found 在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。 有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。

    /mnt 这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。主要看/etc/fstab中怎么定义了;比如光驱可以挂载到/mnt/cdrom 。

    /opt 表示的是可选择的意思,有些软件包也会被安装在这里,也就是自定义软件包,比如在Fedora Core 5.0中,OpenOffice就是安装在这里。有些我们自己编译的软件包,就可以安装在这个目录中;通过源码包安装的软件,可以通过 ./configure --prefix=/opt/目录 。

    /proc 操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见 /etc/fstab 。

    /root Linux超级权限用户root的家目录;

    /sbin 大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的;我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。

    /tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。

    /usr 这个是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多的文件和目录。当我们安装一个Linux发行版官方提供的软件包时,大多安装在这里。如果有涉及服务器配置文件的,会把配置文件安装在/etc目录中。/usr目录下包括涉及字体目录/usr/share/fonts ,帮助目录 /usr/share/man或/usr/share/doc,普通用户可执行文件目录/usr/bin 或/usr/local/bin 或/usr/X11R6/bin ,超级权限用户root的可执行命令存放目录,比如 /usr/sbin 或/usr/X11R6/sbin 或/usr/local/sbin 等;还有程序的头文件存放目录/usr/include。

    /var 这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地;

    4、一些重要子目录的解说

    下面飘扬再补充几个比较常见且很重要的目录。

    /etc/init.d 这个目录是用来存放系统或服务器以System V模式启动的脚本,这在以System V模式启动或初始化的系统中常见。比如Fedora/RedHat;

    /etc/xinit.d 如果服务器是通过xinetd模式运行的,它的脚本要放在这个目录下。有些系统没有这个目录, 比如Slackware,有些老的版本也没有。在Rehat/Fedora中比较新的版本中存在。

    /etc/rc.d 这是Slackware发行版有的一个目录,是BSD方式启动脚本的存放地;比如定义网卡,服务器开启脚本等。

    /etc/X11 这是X-Windows相关的配置文件存放地。

    /usr/bin 这个目录是可执行程序的目录,普通用户就有权限执行;当我们从系统自带的软件包安装一个程序时,他的可执行文件大多会放在这个目录。比如安装gaim软件包时。相似的目录是/usr/local/bin;有时/usr/bin中的文件是/usr/local/bin的链接文件;

    /usr/sbin 这个目录也是可执行程序的目录,但大多存放涉及系统管理的命令。只有root权限才能执行;相似目录是/sbin 或/usr/local/sbin或/usr/X11R6/sbin等;

    /usr/local 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。这个目录下面有子目录。自己看看吧。

    /usr/share 系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc和/usr/share/man帮助文件。

    /usr/src 是内核源码存放的目录,比如下面有内核源码目录,比如 linux 、linux-2.xxx.xx 目录等。有的系统也会把源码软件包安装在这里。比如Fedora/Redhat,当我们安装file.src.rpm的时候,这些软件包会安装在 /usr/src/redhat相应的目录中。

    /var/adm 比如软件包安装信息、日志、管理信息等,在Slackware操作系统中是有这个目录的。在Fedora中好象没有;自己看看吧。

    /var/log 系统日志存放,分析日志要看这个目录的东西;

    /var/spool 打印机、邮件、代理服务器等假脱机目录;

    5、附录:目录结构的简明查阅手册

    (1)“/”根目录部分有以下子目录:

    /usr 目录包含所有的命令、程序库、文档和其它文件。这些文件在正常操作中不会被改变的。这个目录也包含你的Linux发行版本的主要的应用程序,譬如,Netscape。

    /var 目录包含在正常操作中被改变的文件:假脱机文件、记录文件、加锁文件、临时文件和页格式化文件等

    /home 目录包含用户的文件:参数设置文件、个性化文件、文档、数据、EMAIL、缓存数据等。这个目录在系统省级时应该保留。

    /proc 目录整个包含虚幻的文件。它们实际上并不存在磁盘上,也不占用任何空间。(用ls –l 可以显示它们的大小)当查看这些文件时,实际上是在访问存在内存中的信息,这些信息用于访问系统

    /bin 系统启动时需要的执行文件(二进制),这些文件可以被普通用户使用。

    /sbin 系统执行文件(二进制),这些文件不打算被普通用户使用。(普通用户仍然可以使用它们,但要指定目录。)

    /etc 操作系统的配置文件目录。

    /root 系统管理员(也叫超级用户或根用户)的Home目录。

    /dev 设备文件目录。LINUX下设备被当成文件,这样一来硬件被抽象化,便于读写、网络共享以及需要临时装载到文件系统中。正常情况下,设备会有一个独立的子目 录。这些设备的内容会出现在独立的子目录下。LINUX没有所谓的驱动符。

    /lib 根文件系统目录下程序和核心模块的共享库。

    /boot 用于自举加载程序(LILO或GRUB)的文件。当计算机启动时(如果有多个操作系统,有可能允许你选择启动哪一个操作系统),这些文件首先被装载。这个目录也会包含LINUX核(压缩文件vmlinuz),但LINUX核也可以存在别处,只要配置LILO并且LILO知道LINUX核在哪儿。

    /opt 可选的应用程序,譬如,REDHAT 5.2下的KDE (REDHAT 6.0下,KDE放在其它的XWINDOWS应用程序中,主执行程序在/usr/bin目录下)

    /tmp 临时文件。该目录会被自动清理干净。

    /lost+found 在文件系统修复时恢复的文件

    (2)“/usr”目录下比较重要的部分有:

    /usr/X11R6 X-WINDOWS系统(version 11, release 6)

    /usr/X11 同/usr/X11R6 (/usr/X11R6的符号连接)

    /usr/X11R6/bin 大量的小X-WINDOWS应用程序(也可能是一些在其它子目录下大执行文件的符号连接)。

    /usr/doc LINUX的文档资料(在更新的系统中,这个目录移到/usr/share/doc)。

    /usr/share 独立与你计算机结构的数据,譬如,字典中的词。

    /usr/bin和/usr/sbin 类似与“/”根目录下对应的目录(/bin和/sbin),但不用于基本的启动(譬如,在紧急维护中)。大多数命令在这个目录下。

    /usr/local 本地管理员安装的应用程序(也可能每个应用程序有单独的子目录)。在“main”安装后,这个目录可能是空的。这个目录下的内容在重安装或升级操作系统后应该存在。

    /usr/local/bin 可能是用户安装的小的应用程序,和一些在/usr/local目录下大应用程序的符号连接。

    (3)“/proc”目录的内容:

    /proc/cpuinfo 关于处理器的信息,如类型、厂家、型号和性能等。

    /proc/devices 当前运行内核所配置的所有设备清单。

    /proc/dma 当前正在使用的DMA通道。/proc/filesystems 当前运行内核所配置的文件系统。

    /proc/interrupts 正在使用的中断,和曾经有多少个中断。

    /proc/ioports 当前正在使用的I/O端口。

  • Yet Another Setup Tool

    2007-07-31 10:05:20

    Yet another Setup Tool (YaST), is an operating system setup and configuration tool that is featured in the openSUSE linux distribution, as well as Novell's derived commercial distributions. It is also part of the defunct United Linux. AutoYaST allows unattended and automated installation and is based on YaST. The first SuSE distribution that included YaST was released in May, 1996.

    YaST is free software that Novell has made available under the GPL.[1]

    YaST2 is a tool for administering and maintaining a SUSE Linux installation. It allows administrators to install software, configure hardware, set up networks and servers, and more.

    A feature of YaST is that it contains both GUI and ncurses front ends. This is especially useful for non-GUI installations and for system administration over slow Internet connections.

    YaST's display configuration module is called SaX2 (which stands for SUSE Automated X configuration, version 2).

Open Toolbar