Linux基础(二)--- Linux目录,链接,sudo,jobs,进程查看ps,cut,命令嵌套,export,if,for,while

【Linux目录】
------------------------------------------------------
    /            //根目录
    /etc        //配置目录
    /mnt        //挂载目录,外设目录
    /boot        //引导目录
    /dev        //设备目录
    /lib        //库目录


【创建链接文件 ln】
-------------------------------------------------------
    1.硬链接
        两个完全相同的文件,并且实时备份
        删除一个,另外一个不删除。
        修改一个,另外一个同步修改.
        目录不能使用硬链接
        $> ln b.txt b.ln        //给b.txt创建链接b.ln
        
    2.符号链接 -s
        等价于windows的快捷方式
        可以给文件夹创建快捷方式
        $> ln -s b.txt blink    //给b.txt 创建快捷方式 blink
        $> ln -s tmp/ tmp.lnk    //给tmp文件夹创建快捷方式tmp.lnk
        
    3.访问符号链接的物理位置
        $> cd -P tmp.lnk            //访问tmp.lnk的物理位置
        $> pwd -P                    //访问当前位置的物理位置
        
        
【sudo】
--------------------------------------------------------
    1.临时借用root的权限执行一条命令
    
    2.需要配置当前用户具有权限
        找到[/ect/sodoers文件],在“toot All=(All) All”,之后添加一行文本“centos All=(All) All”;        
    
    3.然后就可以临时借用root权限,给tmp文件夹分配权限
        $> sudo chown -R root:root tmp        
    
    
【jobs】
---------------------------------------------------------
    1.把程序放入后台运行。加&结尾。
        $> nano a.txt &
        
    2.查看后台运行的进程数
        $> jobs
        
    3.后台切换回前台
        $> fg %n        //n 作业job的编号
        
    4.前台进程放置到后台
        快捷键 ctrl + z
        
    5.杀死作业
        $> kill %n     //n 作业编号
        
        
【进程查看ps】ps:process show  
-----------------------------------------------------------
    1.$> ps -AF | grep gonme            //-A 查看所有进程。-F:所有列格式
    
    2.$> top    //动态显示进程信息和CPU的使用情况--任务管理器
        
    
【cut】剪切显示,部分显示
-----------------------------------------------------------
    1.$> cut -c 2-5 b.txt            //每一行文本都剪切显示第2到5个字符
    
    2.$> ps -AF | cut -c 20-50 | more
    

【查看帮助】help
----------------------------------------------------------
    1.help            //os内置的命令
    
    2.info            //
    
    3.man            //查看特定命令,详细命令
    
    4.--help        //
    
    
【磁盘使用】
----------------------------------------------------------
    1.fdisk :查看分区
        $ fdisk -l /dev/sda        
    
    2.df :查看磁盘空间空余 disk free
        $> df
        $> df -ah
    
    3.dirname: 取出指定地址的上级目录路径
        $> dirname a/b/c/d        //--> a/b/c
        
    4.basename: 取出指定地址的最后一个目录的名称
        $> basename a/b/c/d        //--> d
        
    
【主机名】
--------------------------------------------------------
    1.显示主机名
        $> hostname
        
    2.修改主机名
        $> sudo nano /etc/hostname
        
        
【配置主机名和ip地址的映射】
    -- 修改[/etc/hosts文件]
    -- 清空内容
    -- 添加新内容
    -- 127.0.0.1 localhost
       192.168.43.200 s200
    
    
        
        
【重启命令】
---------------------------------------------------------
    1.$> reboot        //重启
    
    2.$> halt        //停止,休眠,黑屏
    
    3.$> poweroff    //关机
    
    4.$> shutdown        //
        
    
【命令嵌套】
---------------------------------------------------------
    1.`` :反引号,强制命令转换
        $> echo `cat b.txt`
        
    2.$(commond): 多级命令嵌套
        a.txt 内容: echo echo
        $($(cat a.txt)) hello > a.txt
        
        
【创建用户】useradd
--------------------------------------------------------
    1.用户与组的关系
        一个用户可以有多个组,但是有一个首要组。创建用户的时候,会创建一个组
        
    2.创建新用户centos2(要切换到root下)
        $> useradd -m centos2            //创建用户
        $> passwd centos2                 //修改密码
        
        
    3.删除新建用户centos2(要切换到root下)
        $> userdel -r -f  centos2
    
    
【环境变量】
--------------------------------------------------------
    1.访问环境变量
        $> echo ${PATH}
        $> echo $PATH
        $> echo "$PATH"
        
        
【命令执行过程的变量定义】
--------------------------------------------------------
    1.定义
        $?            //用来存储你的上一个命令成功(0)还是失败(1)
        $#            //用来存储传入参数的个数
        $1            //用来存储传入的第一个参数
        $0            //用来储存当前执行脚本(命令)的名称
        $@            //用来储存所有传入的参数
        shift        //参数左移
        -e            //exists    判断文件(夹)是否存在
        -d            //判断是否是目录
    
    2.演示        
        $> touch a.sh                //创建 a.sh脚本文件
        
        $> chmod u+x a.sh            //给a.sh添加执行权限
        
        $> nano a.sh                //编写脚本文件
            #!/bin/bash                //固定头部格式
            echo helloword!
            echo 当前脚本名称是: $0!
            echo 参数总个数是: $#!
            echo 第2个参数是: $2!
            echo 输出所有参数: $@~
            echo ------分割线---------
            echo $@
            shift
            echo $@
            shift
            echo $@
                        
        $> ./a.sh 1 2 3 4            //执行脚本
        
    3.演示结果:        
        helloword!
        当前脚本名称是: ./a.sh!
        参数总个数是: 4!
        第2个参数是: 2!
        输出所有参数: 1 2 3 4~
        ------分割线---------
        1 2 3 4
        2 3 4
        3 4

    
        
【export】定义变量,仅在本次会话有效
----------------------------------------------------------    
    1.变量与字段通过“$”进行区分。变量前面要添加$才表示变量
    
    2.    $> export name=tom
        $> echo name                //输出name
        $> echo $name                //输出tom
        
    3.三元运算符
        $> export name=${Var1:-${Var2}}        //设置name变量的值为Var1,如果Var1不存在,就设置成Var2
        
        
【if】
----------------------------------------------------------------
    1.语法:if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] fi
    
    2.命令 gt -- great   lt -- little   eq --- equal     ge --- great equal
        if[ $# -lt 3 ]                //如果传入参数的个数小于(-lt)3个
        if[ $# -gt 3 ]                //如果传入参数的个数大于(-gt)3个
        if[ $# -eq 3 ]                //如果传入参数的个数等于(-eq)3个
        if[ $# -ge 3 ]                //如果传入参数的个数大于等于(-ge)3个
        if[ $# -le 3 ]                //如果传入参数的个数小于等于(-le)3个
        if[ -e xxx ]                // xxx是否存在
        if[ -d xxx ]                // xxx是否是目录
        

    3.演示
        $> touch a.sh                //创建 a.sh脚本文件
        
        $> chmod u+x a.sh            //给a.sh添加执行权限
        
        $> nano a.sh                //编写脚本文件
            #!/bin/bash                //固定头部格式            
            echo helloword!
            if [ $# -lt 3 ];        //注意此处的if [ ... ]中的空格,不是if[...]。
            then echo 参数太少!;
            elif [ $# -gt 5 ];
            then echo 参数太多!;
            elif [ $# -eq 4 ];
            then echo 参数==4!;
            else echo 参数正好!;
            fi;
                                
        $> ./a.sh 1 2 3 4            //执行脚本

        
【for】
---------------------------------------------------------------
    1.语法:
        ① for: 
        -- for NAME [in WORDS ... ] ; do COMMANDS; done
        ② for ((:  
        -- for (( exp1; exp2; exp3 )); do COMMANDS; done

    2.循环输出0-99
        for((x=0;x<100;x=$x+1)); do echo $x; done;
        for x in a b c d ; do echo $x; done;
        
    3.实现累加1-100
        for((i=1;i<100;i=$i+1))
        do
        sum=$[$sum+$i];         //此处"="两边不能有空格
        done;
        echo $sum;
        
    4.循环嵌套
        lines=5;
        for((i=1; i<=$lines; i=$i+1)); do
            
            for((j=1; j<=$i; j=$j+1)); do
                echo -n $j;
            done;
            echo;            
        done;
        

【while】
-----------------------------------------------------------------
    1.语法
        while COMMANDS; do COMMANDS; done
        
    2.循环输出0-99    
        i=0;
        while((i<100));
        do
            echo &i;
            i=$[$i+1];            //可以使用 i=$(($i+1))  替代
        done;

    
        
    
    
    
    
    
    
    
    
    
    
        

猜你喜欢

转载自blog.csdn.net/xcvbxv01/article/details/81428961