一切皆文件

Linux

  • Linux内一切皆文件;表现之一:硬件设备也通过文件表示
    物理终端:/dev/console
    虚拟终端: /dev/tty#[1,6]
    串行终端:/dev/ttyS#
    伪终端: /dev/pts/#
    注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互,交互式程序有两类:GUI(图形化界面)和CLI(命令行界面)。

    • 查看终端设备:
      ~]# tty
      查看接口程序:
      ~]# echo #SHELL
      启动GUI接口:
      在某一虚拟终端接口运行命令:startx &

命令提示符:

  • [root@magedu ~]# COMMAND
    我们称之为PS1,显示组成部分使用命令:

    echo $PS1
    [\u@\h \W]\$

  • root : 当前登录的用户
    magedu:当前主机的主机名,非完整格式;
    ~:用户当前所在的目录,也成为工作目录;相对路径
    #:命令提示符(#:管理员、$:普通用户)
    注意:生产环境下建议使用普通用户账号登录;
    执行管理操作使用 su 临时切换至管理员,操作完成即退回。

命令的格式:

  • COMMAND [OPTIONS … ] [ARGUMENTS … ]
    命令 选项 参数
    选项:用于启用或关闭命令的某个或些功能。
    参数:命令的作用对象(向命令提供数据的),命令的参数可以有多个。
    注:多个命令放在同一行执行可以使用分号;隔开,但是前面命令执行成功与否跟后面命令没关系。
    \ :命令太长需要换行
    && :如果需要命令同时执行成功
    || :如果有一个命令执行成功 那么其他命令就不再执行
    && 逻辑与 ; || 逻辑或。

Linux命令:

help
  • help COMMAND
    help可以查看:内部命令、外部命令
    内部命令(shell内嵌命令):help COMMAND
    外部命令:
    1、COMMAND –help; COMMAND -h;
    2、man COMMAND
    3、info COMMAND

[s@magedu test]PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/s/bin

注:查找过程时有顺序的,自左向右,直到查找到为止,如果一个命令存在于多个路径中,只匹配第一个找到的路径,所以其先后次序是很关键滴。

man
  • 查看man手册页:man [章节] keyword
    列出所有帮助: man -a keyword
    搜索手册:man -k (使用whatis数据库)
    查看某个命令在哪个章节 (相当于whatis) : man – f keyword
    man配置文件的路径:CentOS 6:/etc/man.config ;CentOS 7:/etc/man db.conf
  • man中有一些符号标记的内容,这些符号的意义:
    [ ] :可选内容
    < > :必须内容
    | :二选一
    … :同类内容可以有多个
    { } :分组

  • man命令的操作方法:

    • /keyword :向下搜索,n向下,N向上
      ?keyword :向上搜索
      b :向文件首部翻屏
      空格 :向文件尾部翻屏
    • #G :回到文件首部
      G :翻至文件尾部
info
  • info [ 命令 ]
    info使用帮助:
    方向键,PgUp,PgDn
    Tab 键,移动到下一个链接
    d 显示主题目录
    Home 显示主题首部
    Enter 进入选定链接
    n/p/u/l 进入下/前/上一层/最后一个链接
    s 文字,文本搜索
    q 退出 info
echo
  • 回显命令
    -e 转义符
    echo -e “\a” ;
    echo -e “good\c” ;
    echo -e “good\tgood” ;
    echo -e “good\ngood”;

echo “$VAR_NAME” 双引号表示弱引用;单引号表示强引用;不加引号默认双引号
echo ‘$VAR_NAME’ 括号、反引号,命令的替换,把结果作为输出;
反引号、( ):命令的替换,把结果作为输出

which
  • which COMMAND
    显示应用程序文件的位置
    如果想看文件本身,而非别名,使用:which –skip-alias COMMAND
whatis
  • 显示命令的帮助信息的位置
    CentOS 6:使用makewhatis 命令可将当前系统上的所有帮助手册及与之对应的关键字创建为一个数据库;
    CentOS 7:使用mandb命令
hash
  • 记录和显示程序的位置(可执行程序的位置)
    -l :显示缓存
    -p :起别名,暂时性
    -t name 打印
    -d name 清除nanme缓存
    -r 清除缓存
    history 管理命令历史,每次执行的命令都会放置在内存的缓存当中,直到退出当前终端后会被保存在命令历史文件当中。家目录下有个隐藏文件 .bash_history,可查看该文件的内容获取历史命令。
history

查看或设置命令历史相关参数

  • history [-c] [-d offset] [n]
    history -anrw [filename]
    history -ps arg [arg…]
    -d:删除历史命令指定的命令
    -c:清空命令历史
    -a:手动追加当前会话缓冲区的命令历史至命令历史文件中
    -w:保存到文件中
    history # :显示最近#条命令
  • 该命令所对应的环境变量:
    $HISTSIZE 修改history存储条数
    $HISTFILE 指定历史文件的存放位置(~/.bash_history)
    $HISTFILESIZE 指定历史文件的命令的存储条数
    HISTTIMEFORMAT=“%F %T “ 显示每条命令的具体执行时间
    HISTIGNORE= 把某些命令敏感的字符串给屏蔽掉不予显示
    环境变量:HISTCONTROL (在/etc/profile配置文件中控制)
    ignoredups 默认,忽略重复的命令,连续且相同为“重复”
    ignorespace 忽略所有以空白开头的命令
    ignoreboth 相当于ignoredups, ignorespace的组合
    erasedups 删除重复命令
    修改环境变量:export 变量名 = “值”
    export magedu=123 顶一个环境变量
    注:history 默认最多只能记录1000命令
    命令历史一般记录在.bash_history文件中
    当前shell中的历史记录会被记录在内存中,只有退出之后才会保存在.bash_history中

  • 调用历史中的命令:
    ! # :重复执行第#条命令
    !! :重复执行上一条命令
    !string:重复执行最近一次以string开头的命令
    !?string 重复前一个包含string的命令
    ^string 删除上一条命令中的string

  • 调用上一条命令的最后一个参数:
    ! $
    esc . 有些终端还可以使用 Alt+
command !^ : 利用上一个命令的第一个参数做cmd的参数 ls /tmp /opt ls !^
command !$ : 利用上一个命令的最后一个参数做cmd的参数 ls /tmp /opt/ ls !$
command !* : 利用上一个命令的全部参数做cmd的参数 ls /tmp /opt ls !*
command !:n : 利用上一个命令的第n个参数做cmd的参数 ls /tmp /opt ls !:1
command !n:^ 调用第n条命令的第一个参数 ls !505:^
command !n:$ 调用第n条命令的最后一个参数 ls !505:$
command !n:m 调用第n条命令的第m个参数 ls !505:2
command !n:* 调用第n条命令的所有参数 ls !505:*
command !string:^ 从命令历史中搜索以 string 开头的命令,并获取它的第一个参数 ls !ls:^
command !string:$ 从命令历史中搜索以 string 开头的命令,并获取它的最后一个参数
[root@CentOS68 ~]# ls /tmp/ /opt/
/opt/:
rh
/tmp/:
epel.repo.bak         huan.txt orbit-gdm   pulse-QRIoXpeAIz6g
functions-2017-03-23 keyring-BPBfln orbit-root  pulse-rnm429VarZOM
[root@CentOS68 ~]# ls !ls:$ ls /opt/
rh
command !string:n 从命令历史中搜索以 string 开头的命令,并获取它的第n个参数
[root@CentOS68 ~]# ls /tmp/ /opt/
/opt/:
rh
/tmp/:
epel.repo.bak         huan.txt orbit-gdm   pulse-QRIoXpeAIz6g
functions-2017-03-23 keyring-BPBfln orbit-root  pulse-rnm429VarZOM
[root@CentOS68 ~]# 
[root@CentOS68 ~]# 
[root@CentOS68 ~]# ls !ls:2 ls /opt/
rh
command !string:* 从命令历史中搜索以 string 开头的命令,并获取它的所有参数
[root@CentOS68 ~]# ls /tmp/ /opt/ /opt/:
rh /tmp/:
epel.repo.bak         huan.txt        orbit-gdm   pulse-QRIoXpeAIz6g
functions-2017-03-23 keyring-BPBfln  orbit-root  pulse-rnm429VarZOM
[root@CentOS68 ~]#  [root@CentOS68 ~]# ls !ls:* ls /tmp/ /opt/ /opt/:
rh /tmp/:
epel.repo.bak         huan.txt        orbit-gdm   pulse-QRIoXpeAIz6g
functions-2017-03-23 keyring-BPBf
date、hwclock
  • date [OPTION]… [+FORMAT]
    显示系统时间
    -s 修改系统时间
    date +%F 执行我们的时间格式
    +%Y +%y 年
    +%m 月
    +%d 日
    +%H 时
    +%M 分
    +%S 秒
    date +”%Y-%m-%d”
    –date=”” 生产环境保证时间准确性 ntp 定时同步互联网上的时间服务器
  • hwclock clock :显示硬件时钟
    -s 以硬件时钟为准,校正系统
    -w 以系统时钟为准,校正硬件

原创文章,作者:s,如若转载,请注明出处:http://www.178linux.com/72299

(0)
ss
上一篇 2017-04-01
下一篇 2017-04-01

相关推荐

  • shell编程循环语法作业

    判断/var/目录下所有文件的类型 [root@www sh.log]# cat typefile.sh  #!/bin/bash #author:DYW #显示目录下文件类型 if [ $# -lt 1 ];then echo "Please&nb…

    Linux干货 2016-08-21
  • 正则表达式的如何使用

    简述:正则表达式主要用于文本的搜索,它表示了搜索文本的过滤条件。根据这些条件,对目标文本朱行进行匹配检查,最后对输出匹配到符合过滤条件的行。 使用:正确高效的使用正则表达式,需要掌握以下基本知识点         1:语法 grep [OPTION] PATTERN FILE……

    Linux干货 2017-06-04
  • 文件压缩与归档工具

          1、compress/uncompress  .Z 格式                  compress [-d…

    Linux干货 2016-08-22
  • 马哥linux 0728作业

    1,软链接和硬链接的区别 硬链接有以下特性 1)文件有相同的 inode 及 data block; 2)只能对已存在的文件进行创建; 3)不能交叉文件系统进行硬链接的创建; 4)不能对目录进行创建,只可对文件创建; 5)删除一个硬链接文件并不影响其他有相同 inode 号的文件。 而软链接有一下特性 1)软链接有自己的文件属性及权限等; 2)可对不存在的文…

    Linux干货 2016-08-04
  • mysql进阶篇(三种备份方法总结:lvm, mysqldump, xtrabackup)

    二进制日志详解:     二进制日志通常作为备份的重要资源,所以再说备份之前先总结一下二进制日志的相关内容      1. 二进制日志的内容         引起mysql服务器改变的任何操…

    Linux干货 2015-12-10
  • 马哥教育网络班22期-第九周课程作业

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # declare -i count=0 declare -i bash_num=0 declare -i&nbs…

    Linux干货 2016-11-21