Linux 系统使用入门、命令帮助及常用命令

终端

用户与主机交互,必然用到的设备。

物理终端

直接接入本机的显示器和键盘设备:console

虚拟终端

附加在物理终端之上的以软件的方式虚拟实现的终端,CentOS 6 默认启动 6 个 虚拟终端。

图形终端: 附加在物理终端之上以软件方式虚拟实现的终端,但额外会提供桌面环境:

设备文件路径:/dev/tty#

模拟终端

图形界面下打开的命令行接口,基于 ssh 协议 或 telnet 协议等远程协议打开的界面。

设备文件:/dev/pts/# [0, ∞)

查看当前的终端设备:tty

交互式接口

GUI

(1)X protocal

(2)window manager

(3)Desktop:

CLI

(1)shell 程序种类:

  • sh(bourn)
  • csh
  • tcsh
  • ksh(korn)
  • bash(bourn again shell),GPL
  • zsh

(2)显示当前使用的 shell:

echo ${SHELL}

(3)显示当前系统使用的所有 shell:

cat /etc/shells

(4)命令提示符:prompt

命令提示符一般指的是:[root@localhost ~]#

prompt 分为两种:

文件系统

文件路径

Windows 和 Linux 中的 2 种不同的路径格式分别如下:

(1)Window

D:\office\phpstudy\PHPTutorial\WWW\index.php

(2)Linux

/etc/sysconfig/network-scripts/ifcfg-nth0

文件有两种数据

(1)元数据(metadata)

(2)数据(data)

Linux 中的文件的规则

路径

(1)绝对路径: 从根目录起始的路径。

(2)相对路径: 从当前位置起始的路径。

相对路径的表示方式:

  • ./ 符号开头:./sysconfig/network-scripts
  • 直接省略 ./ 符号:sysconfig/network-scripts

当前目录(current directory)

也称作 工作目录 (working directory),使用 pwd 命令可以查看当前目录(printing working directory)。

家目录(home)

家目录是在多用户操作系统上包含该系统的特定用户的文件的文件系统目录。

LSB(Linux Standard Base)

LSB 是一套核心标准,它保证了 Linux 发行版同 Linux 应用程序之间的良好结合。有了这个标准的存在,众多 Linux 发行版的根目录下的文件夹大部分都是相似的。

shell 命令初识

命令分类

(1)按照系统相关的特性可分为以下两类:

目录管理
文件管理
文件查看
文件编辑

(2)按照命令自身特性可分为以下两类:

由 shell 自带的,而且通过某命令形式提供,例如:cd

在当前系统的某文件系统路径下有对应的可执行程序文件,例如 whichwhereis

shell 程序搜寻可执行程序文件的路径定义在PATH环境变量中:

echo $PATH

(3) 如何区分内部命令和外部命令

type COMMAND

运行命令

输入命令并回车,提请 shell 程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来,表现为一个进程或多个进程。

(1)命令格式:

COMMAND [OPTIONS...] [ARGUMENTS...]

(2)OPTIONS

一般用于启用或关闭命令的某个或某些特殊功能

  • 短选项:-c,例如:-l, -h,多个短选项可命令使用,例如-l -h,可写作 -lh。
  • 长选项:–word,例如:–long,–human–readable。

(3)ARGUMENTS

命令的作用对象(或者说生效对象),向命令提供数据。

(4)注意事项

多选项,以及多参数和命令之间都应该使用空白字符分割(可以是一个空白字符也可以是多个)。

取消命令执行:Ctrl + C

命令帮助的获取

(1)COMMAND --helpCOMMAND -h

(2)使用手册(manual)man COMMAND

(3)信息页 info COMMAND

(4)程序自身的帮助文档,例如:READMEINSTALLChangeLog

一般位置在 /usr/share/doc/COMMAND-VERSION

(5)程序官方文档

(6)发行版的官方文档

(7)Google

man 命令

作用:查看命令帮助手册

格式:man COMMAND

手册页所在目录:/usr/share/man,手册文件文件如:man1、man2......man8

注意:有些关键在不止一个章节中存在帮助手册:
要查看指定章节中的手册:man # COMMAND

man 命令的配置文件:/etc/man.config

指明新的手册文件的搜索位置:MANPATH /PATH/TO/SOMEWHERE

到指定位置下搜索 COMMAND 命令的手册并显示:man -M /PATH/TO/SOMEWHERE COMMAND

man 命令帮助手册中的段落说明:

NAME:命令的名称

SYNOPSIS:命令的简介

DESCRIPTION:命令的具体描述

OPTIONS:命令支持的选项

EXAMPLES:命令的用法

AUTHUOR:命令的授权人

REPORTING BUGS:命令的报告BUG

SEE ALSO:命令的参照

SYNOPSIS 中的符号说明:

[]:可选内容
<>:必选内容
a|b:二选一(或多选一)
...:同一内容可出现多次

使用 man 命令后的操作方法:

使用 man 命令后进行文本搜索:

/KEYWORD:以KEYWORD指定的字符串为关键字,从当前位置向文件尾部搜索(不区分大小写)
n:下一个
N:上一个

?KEYWORD:以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索(不区分大小写)
n:下一个
N:上一个

常用命令

hash 命令

shell 搜寻到的外部命令的路径结果会缓存至 kv(key-value)储存中。

history 命令

管理命令历史,登录 shell 时,会读取命令历史文件中记录下的命令:~/.bash_history

登录进 shell 后新执行的命令只会记录在缓存中:这些命令会在用户退出时“追加”至命令历史文件中。

(1)选项

-a:追加本次会话新执行的命令历史列表至历史文件中。

-c:清空命令历史。

-d:删除历史中指定的命令。

-w:把历史列表中的命令追加至历史文件中。

history #:显示最近 # 条命令。

(2)快捷操作

!#:调用历史中第#条命令。

!string:调用历史中最近一个以 string 开头的命令。

!!:调用上一条命令。

(3)相关环境变量

定制 history 命令的功能,可以通过相关环境变量实现:

$HISTSIZE:shell 进程可保留的命令历史的条数。

$HISTFILE:持久保留命令历史的文件,默认为 ~/.bash_history

$HISTFILESIZE:保留命令历史的文件大小。

$HISTCONTROL:控制命令历史记录的方式,有 3 种值:ignoredups(忽略重复的命令)、ignorespace(忽略以空白字符开头的命令)、ignoreboth(同时忽略重复的命令和以空白字符开头的命令)。

修改环境变量的方式:NAME=VALUE(只对当前 shell 进程有效),例如:HISTCONTROL=ignoredups(修改 HISTCONROL 的值为 ignoredups)。

注意

命令的重复执行有时候需要依赖于幂等性(多次操作,结果相同)。

(4)调用上一条命令的最后一个参数

ESC 键 + . 键! + $

例如:执行一条命令: ls /etc/sysconfig/network-scripts/ifcfg-eth0 之后想 cat 该文件

输入 cat 之后,使用 ESC 键 + . 键后,屏幕中会直接显示 cat /etc/sysconfig/network-scripts/ifcfg-eth0

或者输入 cat !$ 也有相同效果。

pwd 命令

printing working directory,显示当前目录(工作目录)

cd 命令

change directory,切换目录。

格式:cd [/PATH/TO/SOMEDIR]

示例:

# 切换回家目录 cdcd ~ # 切换至指定用户的家目录 cd ~USERNAME # 切换回上次所在目录 cd -

cd 命令相关的环境变量:

$PWD:当前工作目录

$OLDPWD:上一次的工作目录

ls 命令

list,列出指定目录下的内容

命令格式:ls [OPTION]... [FILE]...

-a:显示所有文件,包括隐藏文件。

-A:显示除了...之外的所有文件,包括隐藏文件。

-l:–long,长格式列表,即显示文件的详细属性信息。

drwxr-xr-x 13 nginx nginx 4096 Mar 13 09:36 www

d 表示文件类型,其他文件类型还有:-bcdlsp
rwx 表示文件属主的权限。
r-x 表示文件属组的权限。
r-x 表示其他用户(非属主、数组)的权限。
13 表示文件被硬链接的次数。
nginx 第一个表示文件的属主,第二个表示文件的属组。
4096 表示文件文件的大小,单位是字节。
4096 Mar 13 09:36 表示文件最后一次被修改的时间。

-h:–human-readable 对文件大小单位换算,换算后的结果可能是非精确值。

-d:查看目录自身属性,而非其内部的文件列表。

-r:reverse,按文件名倒序显示。

-R:recursive,递归显示。

cat 命令

concatenate 文本文件查看工具。连接文件并显示在标准输出上,文本文件查看工具(尽量不要查看二进制文件,使用 file 命令可以知道是否是文本文件)

格式:cat [OPTION]... [FILE]...

-n:给显示的文本行编号

-E:显示行结束符$

tac 命令

文本文件查看工具。与 cat 命令相反,cat 命令是顺序显示文件,而 tac 是逆序显示文件,如下图:

cat.png

file 命令

查看文件内容类型。

格式:file [FILE]...

echo 命令

用来显示一行文本。

格式:echo [SHORT-OPTION]... [STRING]...

-n:不换行,直接在当前行输出结果。

-e:让转译符生效,例如 \n 换行,\r 回车,\t 制表等,甚至可以设置颜色\033

STRING 可以使用引号,单引号和双引号均可用:

单引号:强引用,变量引用不会执行替换。

双引号:弱引用,变量引用会被替换。

注意: 变量引用的正规符号是 ${name},如下图:

echo.png

shutdown 命令

关机或重启。

格式:shutdown [OPTIONS...] [TIME] [WALL...]

OTPIONS

-h:halt

-r:reboot

-c:cancel

TIME

now
hh:mm
+m
+0 和 now 都是立刻关机

WALL

执行关机或重启操作前,通知给所有用户的信息

日期相关的命令

Linux时钟分为系统时钟硬件时钟,系统启动时从硬件读取日期和时间信息,读取完成后,就不再与硬件相关联。

date 命令

显示系统时钟:date [OPTION]... [+FORMAT]

FORMAT:格式符

%F:以 2019-06-12 的格式显示年份。
%T:以 20:54:24 的格式显示时分秒。
%Y:以 2019 的格式显示时分秒。
%m:以 06 的格式显示月。
%d:以 12 的格式显示日。
%H:以 20 的格式显示时。
%M:以 54 的格式显示分。
%S:以 24 的格式显示秒。
%s:以 1560344256 的格式显示 unix 时间戳。

设定系统时钟:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

例如设置系统时钟为:2019-06-12 20:59:06

date 061220592019.06

hwclockclock 指令

显示或设定硬件时钟。

以 to 之前的时间为准,调整 to 之后的

-s:–hctosys:以硬件时间为准,调整系统时间与硬件时间相同

-w:–systohc:以系统时间为准,调整硬件时间与系统时间相同

cal 命令

显示日历。

格式:cal [options] [[[day] month] year]

发布评论
还没有评论,快来抢沙发吧!