zoukankan      html  css  js  c++  java
  • linux基础(4)

    1、ps:将某个时间点的程序运作情况撷取下来

    2、kill杀死进程

    # kill -pid

    注释:标准的kill命令通常都能达到目的。终止有问题的进程,并把进程的资源释放给系统。然而,如果进程启动了子进程,只杀死父进程,子进程仍在运行,因此仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程之前,先杀死其所有的子进程。
    有时候只想简单的停止和重启进程。如下:

    以优雅的方式结束进程

    # kill -l PID

    -l选项告诉kill命令用好像 启动进程的用户已注销 的方式结束进程。当使用该选项时,kill命令也试图杀死所留下的子进程。但这个命令也不是总能成功--或许仍然需要先手工杀死子进程,然后再杀死父进程。

    # kill -HUP PID

    该命令让Linux和缓的执行进程关闭,然后立即重启。在配置应用程序的时候,这个命令很方便,在对配置文件修改后需要重启进程时就可以执行此命令。

    3、重定向

    输入重定向
    more < killout.txt
    输出重定向
    ls -l > lsout.txt //如果lsout.txt已经存在,则覆盖其内容
    ls -l >> lsout.txt //如果lsout.txt已经存在,则最佳到lsout.txt的末尾

    0代表标注输入
    1代表标准输出
    2代表标准错误输出

    kill -HUP 1234 >killout.txt 2>killer.txt
    将标准输出和标准错误输出分别的重定向到不同的文件中

    kill -l 1234 killout.txt 2>&1
    将标准输出重定向到killout.txt,然后将标准错误输出重定向到与标准输出相同的地方

    4、管道:
    (1)不使用管道
    ps > psout.txt
    sort psout.txt > pssort.out
    (2)使用管道
    ps | sort > pssort.out

    5、把脚本文件设置为可执行
    first //其实,后缀sh不是必须的,知识为了增加可读性
    #!/bin/sh //用/bin/sh来执行本脚本文件
    echo 'hello'

    增加可执行权限
    chmod +x first

    这时,我们你运行first命令会发生错误,因为PATH环境变量并没有将当前目录设置进去,可以采取以下措施
    (1) PATH=$PATH:.
    (2)编辑.bash_profile
    (3)输入./first
    (4)/bin/sh first

    6、export命令
    export命令将 作为它参数的变量到处到子shell中,并使之在子shell中有效。在默认情况下,一个shell中被创建的变量在这个shell调用的下级shell中是不可用的。export命令把自己的参数创建为一个环境变量,而这个环境变量可以被当前程序调用的其他脚本和程序看见。

    脚本文件export2
    #!/bin/sh

    echo "$foo"
    echo "$bar"

    脚本文件export1
    #!/bin/sh

    foo="foo"
    export bar="bar"
    export2

    shell下运行 ./export1
    输出
    [空行]
    bar

    一旦一个变量被导出,它就可以被该shell调用的任何脚本使用,也可以被后续依次调用的任何shell使用
    set -a 或者 set -allexport 将导出它之后声明的所有变量

    7、.点命令
    当一个脚本执行一条外部命令或者脚本时,它会创建一个新的环境(一个子shell),命令将在这个新环境中执行,在命令执行完毕后,这个环境将被丢弃,留下退出码返回给父shell。而点命令允许将要执行的脚本在当前shell中执行。

    脚本文件classic_set
    #!/bin/sh
    version="classic"
    PATH=/usr/local/bin:/usr/bin:/bin:.
    ps1="classic> "

    运行该脚本
    $ . ./classic_set
    classic> echo $version
    classic
    classic>

    8、linux文件与目录
    文件,除了本身包含的内容以外,它还会有一个名字和属性,包括文件的创建修改日期和他的访问权限,这些属性保存在文件的inode节点中,inode节点不保存文件名,它是文件系统的一个特殊的数据块,它同时还包含文件的长度的文件在磁盘上的存放位置。系统使用的是文件的inode编号,目录结构为文件命名仅仅是为了便于人们使用。
    目录是用于保存其他文件的节点号和名字的文件。删除一个文件时,实质上是删除了该文件对应的目录项,同时指向该文件的链接数减一。如果指向某个文件的连接数为0,则表示该inode节点以及指向的数据不再被使用,磁盘上的相应位置会被标记为可用空间。

    9、硬盘基础知识:
    扇区(Sector)为最小的物理储存单位,每个扇区为 512 bytes;
    将扇区组成一个圆,那就是磁柱(Cylinder),磁柱是分区(partition)的最小单位;
    第一个扇区最重要,里面有:(1)主启动记录(Master boot record, MBR)及分区表(partition table), 其中 MBR 占有 446 bytes,而 partition table 则占有 64 bytes。
    所谓的磁盘分区指的是告诉操作系统『我这颗磁盘在此分区可以存放数据的区域是由 A 磁柱到 B 磁柱之间的区块』
    那么指定分区的磁柱范围是记录在哪里?就是第一个扇区的分区表里!但是因为分区表仅有64bytes而已, 因此最多只能记录四个分区的记录,这四个记录我们称为主分区 (primary) 或扩展分区(extended) ,其中扩展分区还可以再分割出逻辑分区 (logical) , 而能被格式化的则仅有主分区和逻辑分区。
    ? 主分区与扩展分区最多可以有四个(硬盘的限制)
    ? 扩展分区最多只能有一个(操作系统的限制)
    ? 逻辑分区是由扩展分区切割出来的分区;
    ? 能够被格式化后,作为数据存放的分区为主分区和逻辑分区。扩展分区无法格式化;
    ? 逻辑分区的数量依操作系统而不同,在Linux系统中,IDE硬盘最多有59个逻辑分区(5号到63号), SATA硬盘则有11个逻辑分区(5号到15号)。

    操作系统的文件数据除了文件实际内容外, 通常还有很多的属性,例如 Linux 操作系统的文件权限(rwx)与文件属性(拥有者、群组、时间参数等)。 文件系统通常会将这两部分的数据分别存放在不同的区块,权限与属性放置到 inode 中,至于实际数据则放置到 data block 区块中。 另外,还有一个超级区块 (superblock) 会记录整个文件系统的整体信息,包括 inode 与 block 的总量、使用量、剩余量等。 每个 inode 与 block 都有编号,至于这三个数据的意义可以简略说明如下:
    ? superblock:记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等;
    ? inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的 block 号码;
    ? block:实际的数据内容,若文件太大时,会占用多个 block 。

  • 相关阅读:
    再论使用Oracle Instant Client连接Oracle
    再谈业务逻辑架构模式(事务脚本,表模块,活动记录,领域模型)
    业务逻辑架构模式(事务脚本,表模块,活动记录,领域模型)
    .net程序集组成与内存布局
    多参的实现原理
    起点
    Windows1[头文件]
    C++中构造函数、析构函数、拷贝构造函数详解
    PHP 开发工具
    写点东西顺便吐槽(很弱很弱的技术文)
  • 原文地址:https://www.cnblogs.com/zzj2/p/3008907.html
Copyright © 2011-2022 走看看