当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪Linux帮助系统简介      本节内容: linux 帮助系统及相关命令。 1 man 1). 基本使用及man文件基本结构   $man date DATE(1)    User Commands   DATE(1) NAME        date - print or set the system date and time SYNOPSIS        date [.........
    ▪Linux开放源代码与软件安装的相关知识      本节内容: Linux源码安装 1,开源软件的基本概念 1.1 开放源码,编译程序与可执行文件 可执行文件 Linux上真正可以执行的文件是二进制文件,例如/usr/bin/passwd,/bin/touch shell script只是调用这.........
    ▪分享:Linux磁盘与文件系统管理      本节内容: Linux磁盘与文件系统管理 1,EXT2文件系统 一个文件的信息包含 1)文件的内容,即数据 ,放在data block区块中 2)文件的权限和属性.放在inode中 文件系统的整体信息,如inode,block总量,.........

[1]Linux帮助系统简介
    来源: 互联网  发布时间: 2013-12-24

本节内容:
linux 帮助系统及相关命令。

1 man
1). 基本使用及man文件基本结构
 

$man date
DATE(1)    User Commands   DATE(1)

NAME
       date - print or set the system date and time

SYNOPSIS
       date [OPTION]... [+FORMAT]
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

DESCRIPTION
       Display the current time in the given FORMAT, or set the system date.

       -d, --date=STRING
              display time described by STRING, not `now'
EXAMPLE
       ...
DATE STRING
       ...
AUTHOR
       ...
REPORTING BUGS
       ...
COPYRIGHT
       ...
SEE ALSO
      The full documentation for date is maintained as a Texinfo manual.   If
       the  info  and  date  programs are properly installed at your site, the
       command

              info coreutils 'date invocation'

       should give you access to the complete manual.
 

2)、man文件分类 DATE(1),括号里的1就是分类号

1:用户在 shell 环境中可以操作的指令或可执行文件
2:系统核心可呼叫函数与工具
3…
具体的分类可以用man man查阅
3). 搜索关键词 向下"/",向上"?",n/N继续搜索 键入"/",例如搜索"foo": /foo

4). 配置 /etc/manpath.config 从这也可以看出man文件的路径

5). 查阅指令
 

man -f == whatis
$ whatis date
date (1)             - print or set the system date and time
$ man -f date
date (1)             - print or set the system date and time
man -k == apropos
$ apropos date
asctime (3)          - transform date and time to broken-down time or ASCII
asctime_r (3)        - transform date and time to broken-down time or ASCII
cal (1)              - displays a calendar and the date of Easter
....
 

2 info
info指令提供了另一种帮助形式,分段落,分层次说明指令功能

3 doc
一些软件的文档目录,doc目录通常为/usr/share/doc/softwareName


    
[2]Linux开放源代码与软件安装的相关知识
    来源: 互联网  发布时间: 2013-12-24

本节内容:
Linux源码安装

1,开源软件的基本概念

1.1 开放源码,编译程序与可执行文件
可执行文件
Linux上真正可以执行的文件是二进制文件,例如/usr/bin/passwd,/bin/touch
shell script只是调用这些二进制文件,完成某种功能

可以用file命令检验文件类型
 

代码示例:
$ file /bin/bash
/bin/bash: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xf199a4a89ac968c2e0e99f2410600b9d7e995187, stripped
$ file /etc/init.d/rc
/etc/init.d/rc: POSIX shell script, ASCII text executable

编译程序

这些可以执行的二进制文件是哪儿来的呢?首先,必须要写程序的源代码,然后,由编译程序将程序的源代码 编译成二进制形式。源代码是由程序员编写的,使用特定的程序语言,如C,C++,Java,Python.但是机器看不懂 这些语言,所以要使用编译程序将这些语言编写的源代码编译成机器可以看懂的二进制文件。如C语言常用的编译器 为gcc。

1.2 什么是函数库
函数库由一系列函数组成,每一个函数都是一个代码片段,完成特定的功能,这样我们使用一些常用功能时,就不必 自己重新编写代码,只需要调用函数库里的函数就可以了。函数库分为静态函数库和动态函数库。

静态函数库
扩展名:.a
编译时会直接编译到二进制文件中,所以生成的文件通常比较大,升级时需要重新编译

动态函数库
扩展名:.so
编译时不会直接编译到二进制文件中,只是给出一个路径,指向相应函数库,程序执行调用时动态地向此路径读取, 升级时,只需要替换原路径中的动态函数库就可以了,不需要重新编译
使用ldd命令,可以知道程序使用了哪些动态函数库:
 

代码示例:
$ ldd /usr/bin/passwd
        linux-gate.so.1 =>  (0xb7784000)
        libpam.so.0 => /lib/i386-linux-gnu/libpam.so.0 (0xb775c000)
        libpam_misc.so.0 => /lib/i386-linux-gnu/libpam_misc.so.0 (0xb7758000)
        libselinux.so.1 => /lib/i386-linux-gnu/libselinux.so.1 (0xb7738000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb758e000)
        libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7589000)
        /lib/ld-linux.so.2 (0xb7785000)

1.3 什么是 make 与 configure
当程序的文件数目非常大时,直接使用gcc编译会变得非常麻烦,这时,我们可以写一个文件,定义好如何编译整个程序, 这个文件即是makefile,然后再调用make命令,make命令会使用makefile完成编译。那么makefile如何产生呢,通常软件 提供者都会提供一个configure程序,用于检测机器环境,生成makefile。检测的内容包括是否有合适的编译器,是否存在 需要的函数库,操作系统版本是否合适等等。

2 C语言编译简单范例
使用vim编写两个程序源代码
 

代码示例:

#include <stdio.h>

int main(void) {
    thankYou();
    printf ("hello,world\n");
    return 0;
}
#include <stdio.h>

void thankYou()
{
    printf ("Thank you\n");
}

使用gcc编译 这一步,源代码文件被编译成为目标文件
 

代码示例:
$ gcc -c hello.c -o hello.o
$ gcc -c thank.c -o thank.o

使用gcc链接 通过链接,我们可以将函数库中已经编译好的目标文件与我们自己编写生成的目标文件链接在一起,成为 一个最终的二进制文件
 

代码示例:
$ gcc hello.o thank.o -o hi

执行
 

代码示例:
$ ./hi
Thank you
hello,world

注意:
可以使用 -l指定函数库,-L指定函数库路径,-I指定头文件路径
gcc sin.c -lm -L/lib -L/usr/lib -I/usr/include
上面的-l指加入函数库,m指的是libm.so这个函数库

3,使用make进行宏编译
文件很多时,编译的过程非常繁琐,有些文件更新过,需要重新编译,有的没有更新过,不需要重新编译, 有些编译过程需要重复很多次,为了能实现编译过程的自动化,可以编写makefile描述如何编译,然后用make 完成整个过程的自动编译。

makefile的编写
 

代码示例:
hi:hello.o thank.o
        gcc -o hi hello.o thank.o
 

注意第二行前的Tab缩进。

make的使用
 

代码示例:
$ make
cc    -c -o hello.o hello.c
cc    -c -o thank.o thank.c
 

运行
 

代码示例:
$ ./hi
hello,world
Thank you
 

从make作用来看,我们直接写一个shell script不就好了?其实不然,可以看到makefile中只需要指出生成hi 需要的目标文件,make就可以自动找到相应的源代码文件并且编译好,然后用我们给出的链接方式进行链接。 此外,如果hello.c更新过,那么再次make时,make会加以判断,只重新编译hello.c,这对于较大的程序而言 会节省很多资源和时间。

另外,makefile中还可以定义变量,定义如何删除编译出的目标文件
 

代码示例:

OBJS = hello.o thank.o
hi:hello.o thank.o
        gcc -o hi ${OBJS}

clean:
        rm hi ${OBJS}

测试:
 

代码示例:

$ ls hello.o thank.o hi
hello.o  hi  thank.o

$ make clean
rm hi hello.o thank.o

$ ls hello.o thank.o hi
ls: cannot access hello.o: No such file or directory
ls: cannot access thank.o: No such file or directory
ls: cannot access hi: No such file or directory

$ make
cc    -c -o hello.o hello.c
cc    -c -o thank.o thank.c
gcc -o hi hello.o thank.o

$ ls hello.o thank.o hi
hello.o  hi  thank.o

$ ./hi
hello,world
Thank you

4,通过编译源代码进行软件安装
先取得源代码,解压,然后进入源代码目录
./configure 执行configure,建立makefile
configure程序会检测编译源代码需要的操作系统,库文件等等,执行前查看目录下的README或INSTALL文件,看下有什么特别需要注意的地方。

说明:
make clean 根据makefile中定义的clean操作执行一些清理工作
make 根据makefile的内容进行编译
make install 根据makefile中定义的install将编译生成的文件安装到相应目录


    
[3]分享:Linux磁盘与文件系统管理
    来源: 互联网  发布时间: 2013-12-24

本节内容:
Linux磁盘与文件系统管理

1,EXT2文件系统
一个文件的信息包含 1)文件的内容,即数据 ,放在data block区块中 2)文件的权限和属性.放在inode中 文件系统的整体信息,如inode,block总量,使用量,剩余量等放在superblock中 每个文件都有一个inode,其中除了有权限和属性信息,还有其data block的编号, 以便找到此文件的数据。 Ex2文件系统由一个文件的inode可以一次找到数据所有的data block编号,而FAT 文件系统通过inode只可找到一个data block编号,再通过类似链表的形式,在每 个data block中找到下一下block的编号。

文件系统太大时,inode和block会太多,这时又可将文件系统再分层,分为多个 block group,每个block group有自己的inode,data block,superblock。

查看文件系统信息
df :显示文件系统各区的使用情况
 

代码示例:
df -h
dumpe2fs :显示ext2/ext3/ext4文件系统的信息
dumpe2fs /dev/sda7
 

目录与文件的存储 目录的inode记录此目录权限和属性,block记录此目录下文件的inode编号 ls -i 可查看文件和目录的inode编号

2,文件系统的简单操作
硬链接:两个文件名同时指向同一个inode,这个inode指向实际数据
软链接:两个文件名指向不同inode,原文件的文件名指向的inode指向实际数据,软链接文件的文件名指向的inode不指向实际数据,而指向原文件的文件名所在的block。
相关命令:ln | ln -s

3,磁盘的分割,格式化,检验与挂载
 

代码示例:
    fdisk:管理磁盘分区表
    mkfs:格式化
    fsck,badblocks:前者检验文件系统,后者检验硬盘 mount:挂载

4,设定开机挂载
修改/etc/fstab,这个文件其实是存储执行mount时需要的参数

5,内存转换空间的建立
swap分区的作用是内存空间不够时,可以将内存中暂时不用的数据放在这个分区,等需要时再从此分区调回内存。
关于swap分区的建立,ubuntu里在安装系统时选择自定义分区,就可以看到相应的选项。

如果已经安装完系统,可以用fdisk建立新分区,或者用dd建立一个大文件,再用mkswap格式化成swap分区格式,再用swapon启用,当然也可以用swapoff关闭。

6,文件系统的特殊观察与操作
fdisk可以方便地分区,却无法分得2TB以上分区,此时可以考虑使用GNU 的parted工具。


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3