zoukankan      html  css  js  c++  java
  • Linux学习笔记之Shell

    项目2 初试Shell

    2.1 Shell概述

    1.Shell是介于使用者和操作系统核心程序(Kernel)间的一个接口;是Linux的命令行
    2.Shell

    • Bourne Shell(/bin/sh,/bin/bash)
    • C Shell(/bin/csh,/bin/tcsh)
    • Korn Shell

    3.Bash:包括早期的Bourne Shell和Korn Shell的所有功能,并且加入了C Shell的某些功能(它是各种Linux操作系统的默认Shell
    4.使用Shell方法

    • 图形界面

      • 终端窗口
      • 虚拟终端(打开:Ctrl+Alt+F2或Ctrl+Alt+F6,返回:Ctrl+Alt+F1)
    • 文字界面

    5.终端前面的内容-- [root@sjh-com ~]#

    • 当前登录用户名为root
    • 主机名为sjh-com
    • 当前目录为~(为主目录
    • #为提示符(超级用户,如果是 $提示符,则为普通用户

    6.切换账户的命令:su
    命令格式:su [-] [用户名]
    su 等价于 su root
    su sjh
    扩展部分: - 选项的作用


    **彩蛋1**

    2.2 文件及目录管理命令

    命令列表

    • 拷贝文件:cp

      • 命令格式:cp [-f i r] 源文件 目标文件
      • -f 表示直接覆盖
      • -i 表示征求用户意见(y/n)
        cp /etc/password /tmp
        cp -r /etc/yum /tmp
    • 移动文件:mv

      • 命令格式:mv [-f i] 源文件 目标文件
        mv /tmp/yum /etc
        mv *.c /home/sjh
        mv test.txt test2.txt
    • 删除文件或目录:rm

      • 命令格式:rm [-f -i -r] 文件名或目录名
        rm /tmp/*
        rm -rf /tmp/*
    • 列出文件和目录:ls

      • 命令格式:ls [-l i d a] [文件名或目录名]
        ls
        ls -l
        ls -a /root
        ls -dil /root
    • 创建目录:mkdir

      • 命令格式:mkdir [-p] 目录名
        mkdir ~/tools
        mkdir -p zzti/cs/wl15
    • 删除空目录:rmdir

      • 命令格式:rmdir [-p] 目录名
        rmdir -p zzti/cs/wl15
    • 查看当前工作目录:pwd

    • 切换目录:cd

      • 命令格式:cd [路径名]
        cd等价于cd ~ //进入当前用户的主目录
        cd .. //进入当前目录的上一级目录,即父目录
        cd - //返回刚才的工作目录
        cd / //进入根目录
        cd /root //进入/root
        cd /boot/grub
    • 查看文件和目录:find、locate

      • find是最常见和最强大的查找命令,你可以使用它找到任何你想要的文件
        + 使用格式:find <指定目录> <指定条件> <指定动作>
        -<指定目录>:所要搜索的目录及其所有子目录,默认为当前目录
        -<指定条件>:所要搜索的文件的特征
        -<指定动作>:对搜索结果进行特定的处理
        如果什么参数都不加,find默认搜索当前目录及其子目录,并且不过滤任何结果
        + locate命令其实是“find -name”的另一种写法,但是要比后者快很多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/mlocate/mlocate.db),这个数据库含有本地所有文件信息。Linux自动创建该数据库,并每日自动更新一次,所以使用locate查不到最新变动过的文件。为避免,可以在使用locate前,先使用updatedb命令手动更新数据库
    • 寻找“执行文件”--which [-a] command
      根据PATH这个环境变量所规范的路径去查询“执行文件”的文件名(注意:which后面接的是完整的文件名)

    • 寻找特定文件--whereis [-bmsu] 文件或目录名
      -b:只找二进制格式的文件
      -m:只找在说明文件manual路径下的文件
      -s:只找source源文件
      -u:查找不在上述三个选项中的其他类型文件

    • 查询命令的作用--whatis(相当于man -f)

    • 查看文件类型:file

      • 命令格式:file 文件名
        file /bin/ls
        file /etc/passwd

    **彩蛋2**

    2.3 Linux的运行级别

    1.运行级别(runlevel):操作系统当前正在运行的功能级别,定义在/etc/inittab文件中
    2.Linux的7种运行级别

    0 halt 关机、代表系统停机状态
    1 Single user mode 单用户模式,只支持root账户
    2 Multiuser,without NFS 不支持网络文件系统的多用户模式
    3 Full Multiuser mode 完全多用户模式
    4 unused 系统未使用,用作保留
    5 X11 图形界面的多用户模式
    6 Reboot 重启

    3.不同运行级别可以相互切换,本质上并没有级别功能差异

    补:如果丢失了root账户的口令,可以让机器启动进入单用户模式,然后使用passwd命令来重置root的密码

    4.运行级别原理

    在目录/ect/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service
    在/etc/rc.d下有7个名为rcN.d(N的取值为0~6)的目录,对应系统的7个运行级别
    rcN.d目录下都是一些符号链接文件,这些文件都指向init.d目录下的service脚本文件,这些链接文件命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字
    系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件:对于以K(Kill)开头的文件,系统将终止对应的服务;对于以S(Start)开头的文件,系统将启动对应的服务

    5.运行级别相关操作

    • 查看运行级别:runlevel
    • 进入其他运行级别:init N(N的取值为0 1 2 3 4 5 6

    6.CentOS7.3中设置运行级别的命令

    • 查看运行级别:systemctl get-default
    • 修改为运行级别3:systemctl set-default multi-user.target
    • 修改为运行级别5:systemctl set-default graphical.target

    2.4 Linux下常用的快捷键

    具体见下表

    命令 功能
    Tab 命令补全
    文件名或路径补全
    连续按2次Tab键,显示已输入字符开头的所有命令、文件名或路径
    Ctrl+D 退出终端
    如处于编辑状态,则直接退出编辑状态
    从光标处向右删除
    Ctrl+C 结束当前执行的命令
    取消当前命令行的编辑
    Ctrl+L 终端清屏
    Ctrl+Z 将正在运行的程序送到后台
    Ctrl+R 搜索历史命令
    Ctrl+A 移动光标到所在行的行首
    Ctrl+E 移动光标到所在行的行尾
    Ctrl+U 输入了错误的命令,使用该快捷键会擦除从当前光标位置到行首的全部内容
    Ctrl+K 输入了错误的命令,使用该快捷键会擦除从当前光标位置到行尾的全部内容
    Ctrl+W 擦除光标位置前的单词;如果光标在一个单词本身上,它将擦除从光标位置到该单词词首的全部字母
    Ctrl+Y 粘贴使用Ctrl+W、Ctrl+U和Ctrl+K快捷键擦除的文本

    **彩蛋3**

    彩蛋--附件

    未完,待续 ~

  • 相关阅读:
    Calling a parent window function from an iframe
    JSON with Java
    Posting array of JSON objects to MVC3 action method via jQuery ajax
    What's the difference between jquery.js and jquery.min.js?
    jquery loop on Json data using $.each
    jquery ui tabs详解(中文)
    DataTables warning requested unknown parameter
    Datatables 1.10.x在命名上与1.9.x
    jQuery 1.x and 2.x , which is better?
    DataTabless Add rows
  • 原文地址:https://www.cnblogs.com/codeplayer1999/p/12459773.html
Copyright © 2011-2022 走看看