shell(计算机壳层)(二)

shell 命令
常用命令
cat 文件名 输出文件内容到基本输出(屏幕 or 加>fileName 到另一个文件)
cb 格式化源代码
chmod //change mode,改变文件的权限
cp copy
date 当前的时间和日期
echo $abc 在变量赋值之后,只需在变量前面加一个$去引用.
lint 语法检查程序
ls dir
man help
more type
du 查看磁盘空间状况
ps 查看当前进程状况
who 你的用户名和终端类型
定义变量 name=abc? (bash/pdksh) || set name = abc (tcsh)
mkdir 创建目录
rmdir 删除目录
cd 进入目录
rm 删除文件
more 显示文件
echo 显示指定文本
mv 改文件名 /移动文件
pwd 显示目录路径命令


用途
使用用户的缺省凭证和环境执行 shell。
在UEFI环境下,EFI的Shell环境提供了一组丰富的扩展和增强的命令,
在以后的计算机中,传统的DOS界面将会被SHELL环境所取代,所有的.exe文件将不会在以后支持SHELL的环境中出现,
取而代之的文件后缀是.efi。
在SHELL环境下,分为IA32和X64,32位的*.efi文件不能在X64的计算机中运行。

描述
shell 命令重新初始化用户的登录会话。
当给出该命令时,就会重新设置进程的控制终端的端口特征,并取消对端口的所有访问。
然后 shell 命令为用户把进程凭证和环境重新设置为缺省值,并执行用户的初始程序。
根据调用进程的登录用户标识建立所有的凭证和环境。
如果在可信路径上调用 shell 命令,
并且 /etc/security/user 文件中用户的 tpath 属性没有 always 值,那么就不维护终端的可信环境。
注:shell 命令不会重新设置用户的登录标识。


安全性
访问控制:该命令应该被 setuid 为 root 用户,以重新设置用户的进程凭证、授权执行(x)访问所有用户。
该命令应该具有可信计算库属性。
文件访问:
方式 文件
r /etc/passwd
r /etc/group
r /etc/security/audit/config
r /etc/security/environ
r /etc/security/limits
r /etc/security/user

审计事件:
事件 信息
USER_Shell portname
示例
要在使用可信 shell(tsh)之后将会话重新初始化为缺省凭证和环境,请输入:
shell

文件
/usr/bin/shell 包含 shell 命令。
/etc/security/user 包含用户的扩展属性。
/etc/passwd 包含用户标识。
/etc/group 包含组标识。
/etc/security/audit/config 包含审计配置信息。
/etc/security/environ 定义用户的环境属性。
/etc/security/limits 定义每个用户的进程资源限制。

希尔(Shell)排序
希尔(Shell)排序是D.L.Shell于1959年提出的,他属于插入排序方法,是不稳定的排序方法。
示例如下:
//希尔排序兄弟们
#include "iostream.h"
#include <process.h>
//using namespace std;//使用命名空间时,要将头文件中的.h去掉
#define N 50
void shell_sort(int a[],int len)
{
    int h,i,j,temp;
    for(h=len/2; h>0; h=h/2)//控制增量
    {
        for(i=h; i<len; i++)//这个for循环就是前面的直接插入排序
        {
            temp=a[i];
            for(j=i-h; (j>=0&&temp<a[j]); j-=h)//循环打印数组的每个元素
            {
                a[j+h]=a[j];
            }
            a[j+h]=temp;
        }
    }
}
 
void print_array(int a[], int len)
{
    for(int i=0; i<len; i++)
    {
        cout<<a[i]<<"";
    }
    cout<<endl;
}
 
void main()
{
    int a[N];
    int b;
    int M;
    cout<<"请输入要排序的数目"<<endl;
    cin>>M;
 
 
    cout<<"请输入要排序的数"<<endl;
    for(int i=0;i<M;i++)
    {
        cin>>b;
        a[i]=b;
    }
    cout<<"beforeshellsort:";
    print_array(a,M);
    shell_sort(a,M);//进行shell排序
    cout<<"aftershellsort:";
    print_array(a,M);
    //return0;
    system("pause");
}

这段代码在VC++ 6.0下编译通过



VB语句
含义
执行一个可执行文件,返回一个Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。
语法
Shell(pathname[,windowstyle])
Shell 函数的语法含有下面这些命名参数:
部分    描述
pathname    必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle    可选参数。Variant (Integer),表示在程序运行时窗口的样式。
如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。

windowstyle 命名参数有以下这些值:
常量    值    描述
vbHide    0    窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus    1    窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus    2    窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus    3    窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus    4    窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus    6    窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。

说明
如果Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。
如果 Shell 函数不能打开命名的程序,则会产生错误。

注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。
也就是说,用Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。

函数示例
示例一:
本示例使用Shell 函数来完成一个用户指定的应用程序。
' 将第二个参数值设成1,可让该程序以正常大小的窗口完成,并且拥有焦点。 Dim RetValRetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' 完成Calculator。
示例二:
使用shell脚本调用linux中当前时间,并记录在log文件中,10秒后再次记录时间。

date>>/tmp/data.log
sleep10
date>>/tmp/data.log

备注:随笔中内容来源于网上资料整理,仅供参考。

posted @ 2017-11-01 17:14  Alanf  阅读(270)  评论(0编辑  收藏  举报