第一周学习总结

一、计算机系统

计算机系统是由硬件系统和软件系统两大部分组成
  硬件系统是由运算器、控制器、存储器、输入设备、输出设备,五大部分组成,每一个部分分别按照要求执行特定的基本功能。
  运算器:运算器的主要功能是对数据进行各种运算。   控制器:控制器是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算机按照预先规定的目标和步骤有条不紊的进行操作及处理。
  存储器:存储器的主要功能是存储程序和各种数据信息,并能在计算机运行过程中,高速自动的完成程序或数据的存取
  输入设备:用来向计算机输入各种原始数据和程序的设备叫输入设备。
  输出设备:从计算机输出各类数据的设备叫做输出设备。
  软件系统是由系统软件和应用软件组成。


二、Linux发行版

  Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。
  Linux发行版为许多不同的目的而制作, 包括对不同计算机结构的支持, 对一个具体区域或语言的本地化,实时应用,和嵌入式系统,甚至许多版本故意地只加入免费软件。已经有超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十二个。


三、Linux的哲学思想

  1. 一切皆文件把所有资源统统抽象成文件形式;包括硬件设备,甚至通信接口等;
  2. 由众多功能单一的小程序组成,一个程序只做一件事,集合众多小程序完成复杂任务
  3. 避免与用户交互,易于以编程的方式实现自动化任务;
  4. 所有配置均用文本保存

四、Linux帮助获取

Linxu帮助获取方法有许多种类,在获取帮助信息时,内部命令和外部命令的获取方式是有区别的:
内部命令:

help COMMAND

外部命令:有以下几种途径

  1. 通过命令自带的帮助信息
    COMMAND --help
    COMMAND -h
  2. 使用手册(manual)
    man COMMAND
  3. 信息页 info COMMAND 支持信息页中的超链接。
  4. 程序自身的帮助文档,有README、INSTALL、Changelog等。
    此类文档目录:/usr/share/doc
  5. 程序的官方文档
  6. 发行版官方文档
  7. google

man命令的使用方法

命令格式:

   man [章节] COMMAND  

章节共有9个每个章节代表不同的内容

章节号 内容
1 用户命令(使用者在shell环境中可以操作的指令)
2 系统调用(系统核心可以调用的函数和工具)
3 c库调用(常用的函数和函数库)
4 设备文件及特殊文件
5 配置文件格式
6 游戏
7 杂项
8 管理类的命令
9 Linux内核API

man的内容分成几个部分

名称 说名
NAME 简单的指令名称及说明
SYNOPSIS 指令的语法
DESCRIPTION 指令的完整说明
OPTIONS 指令的相关选项及说明
COMMANDS 程序在执行时可下达的指令
FILES 这个程序资料可以参考的其他档案
SEE ALSO 一些可以参考的和指令相关的其他内容
EXAMPLE 一些可以参考的范例

man命令的一些简单操作方法

按键 说明
空格 向文件尾部翻一屏
b 向文件首部翻一屏
d 向文件尾部翻半屏
u 向文件首部翻半屏
j 向文件尾部翻一行
k 向文件首部翻一行
q 退出
数字# 跳转到第#行
1G 跳转到文件首部
G 跳转到文件尾部

man文件内搜索关键字的方法

按键 说明
/KEYWORD 在文档内从当前位置向尾部搜索KEYWORD关键字,并且不区分大小写
?KEYWORD 在文档内从当前位置向首部搜索KEYWORD关键字,兵器不区分大小写
n 按照与搜索关键字方向相同的方法,查找下一个关键字
N 按照与搜索关键字方向相反的方向,查找下一个关键字

man命令的一些相关选项
  -f COMMAND 搜索系统中哪些与COMMAND相关的章节
  -k COMMAND 搜索与关键字有关的帮助文件
示例:

[root@centos7 ~]# man -f passwd   此命令同whatis passwd
passwd (1)           - update user's authentication tokens
sslpasswd (1ssl)     - compute password hashes
passwd (5)           - password file

[root@centos7 ~]# man -k passwd    
chpasswd (8)         - update passwords in batch mode
fgetpwent_r (3)      - get passwd file entry reentrantly
getpwent_r (3)       - get passwd file entry reentrantly
gpasswd (1)          - administer /etc/group and /etc/gshadow
grub2-mkpasswd-pbkdf2 (1) - Generate a PBKDF2 password hash.
lpasswd (1)          - Change group or user password

注意: 使用-k,-f选项时首先需要建立资料库才行,此时需要执行mandb(Centos7),makewhatis(makewhatis)


五、Linux文件系统

  1. Linux的文件系统为一个单根的倒置树状结构,文件系统从根目录下开始。
  2. Linux文件系统严格区分字符大小写,abcd,Abcd,ABCD,此类文件名所指的是各不相同的文件。
  3. Linux文件系统下文件类型
符号 含义 颜色
- 普通文件 白色
d 目录文件 蓝色
b 块文件 ×××
c 字符设备 ×××
l 符号链接文件 浅蓝色
p 管道文件
s 套接字文件 紫色

修改此类文件颜色方法:编辑/etc/DIR_COLORS
4. Linux文件系统结构(LSB Linux Standard Base)
/boot 用来存放内核,引导加载器的目录
/bin 所有用户使用的命令
/sbin 管理类命令存放的位置
/lib 存放库文件以及内核模块文件
/lib64 存放64位库文件
/etc 配置文件存放的目录
/home 存放普通用户家目录的位置
/root 管理员的家目录
/media 便携式设备的挂载点
/mnt 临时文件系统的挂载点
/dev 设备文件及特殊文件位置
/opt 第三方应用程序安装位置
/srv 系统上运行服务所用到的数据
/tmp 临时文件存放位置
/usr 二级根目录此目录内文件与根下大致相同
/var 用来存放可变的数据
/proc 用于输出内核与进程信息相关的虚拟文件系统
/sys 用于输出当前系统上硬件设备相关信息的虚拟翁建系统
/selinux 安全策略信息的存放位置


六、文件管理类命令

1.pwd 显示当前工作目录

   pwd [OPTION]...

说明:
打印当前工作目录

选项 说明
-P 显示真实的物理路径
-L 显示链接路径(默认)

示例:

[root@centos7 bin]# ll -d /bin      /bin为/usr/bin的软链接
lrwxrwxrwx. 1 root root 7 Mar  5 21:08 /bin -> usr/bin
[root@centos7 bin]# pwd          默认直接显示链接路径
/bin
[root@centos7 bin]# pwd -P      显示真实的物理路径而不是链接路径
/usr/bin

补充:
绝对路径:绝对路径是指从根开始到所要指定的文件的完整的路径名称,从/开始写路径
相对路径:相对路径是指相对于当前工作目录到目标目录的位置所表示出的一种路径方法,不从/开始写路径
basename:基名
dirname:路径名
示例

[root@centos7 bin]# cd /etc/sysconfig/      完整路径名
[root@centos7 sysconfig]# cd ../../home     相对路径名
[root@centos7 home]#

[root@centos7 bin]# basename /etc/sysconfig/            取出路径中的基名
sysconfig
[root@centos7 bin]# dirname /etc/sysconfig/             取出路径中的目录名
/etc

2. cd 改变目录

命令格式:

  cd /PATH/TO/DIRNAME

说明:
改变当前工作目录

选项 说明
-P 改变目录到物理路径的目录而非链接

示例:
以/bin目录为例

[root@centos7 bin]# cd /bin 
[root@centos7 bin]# pwd
/bin
[root@centos7 bin]# cd -P /bin      跳转至物理路径
[root@centos7 bin]# pwd
/usr/bin

3. ls 显示目录内容

命令格式:

    ls [OPTION]... [FILE]...

说明:
显示目录下的内容

选项 说明
-a 包含隐藏文件
-l 显示额外的信息
-h 文件大小显示为可读的信息
-R 目录递归通过
-ld 目录和符号链接信息
-1 文件分行显示
–S 按从大到小排序
–t 按mtime排序
–u 配合-t选项,显示并按atime从新到旧排序
–U 按目录存放顺序显示
–X 按文件后缀排序

示例:

[root@centos7 /]# ls -a             显示目录下所有文件包括隐藏文件
.   bin   data  etc   lib    media  opt   root  sbin  sys      tmp  var
..  boot  dev   home  lib64  mnt    proc  run   srv   testdir  usr

[root@centos7 /]# ls -l             显示文件的详细信息
total 20
lrwxrwxrwx.   1 root root    7 Mar  5 21:08 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Mar  5 21:14 boot
...

[root@centos7 /]# ls -R /home       递归显示文件
/home:
masuri

/home/masuri:

[root@centos7 /]# ls -ld /home      显示目录自身属性
drwxr-xr-x. 3 root root 20 Mar  5 21:13 /home

[root@centos7 /]# ls -1             文件在一列中显示
bin
boot
...

[root@centos7 /]# ls -lS            按照文件大小从大到小显示
total 20
drwxr-xr-x. 138 root root 8192 Mar  8 16:27 etc
dr-xr-xr-x.   5 root root 4096 Mar  5 21:14 boot
drwxrwxrwt.  14 root root 4096 Mar  8 15:56 tmp
drwxr-xr-x   19 root root 3300 Mar  7 16:10 dev
drwxr-xr-x   36 root root 1200 Mar  8 13:11 run
...

[root@centos7 /]# ls -lt            按照文件的修改时间从新到旧进行显示
total 20
dr-xr-xr-x   13 root root    0 Mar  8 16:54 sys
drwxr-xr-x. 138 root root 8192 Mar  8 16:27 etc
drwxrwxrwt.  14 root root 4096 Mar  8 15:56 tmp
dr-xr-x---.   5 root root  242 Mar  8 15:55 root
drwxr-xr-x   36 root root 1200 Mar  8 13:11 run
...

[root@centos7 /]# ls -lut           按照访问时间从新到旧排序
total 20
drwxr-xr-x   19 root root 3300 Mar  8 16:54 dev
drwxr-xr-x.   3 root root   42 Mar  8 16:54 data
drwxr-xr-x. 138 root root 8192 Mar  8 16:44 etc
drwxr-xr-x.  13 root root  155 Mar  8 15:56 usr
dr-xr-x---.   5 root root  242 Mar  8 15:56 root
lrwxrwxrwx.   1 root root    7 Mar  8 13:08 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 Mar  8 13:08 lib64 -> usr/lib64
drwxr-xr-x.  20 root root  282 Mar  7 15:06 var
dr-xr-xr-x  150 root root    0 Mar  7 14:01 proc

[root@centos7 /]# ls -U             按字母顺序排序
boot  dev   run  etc   var  usr  sbin  lib64  media  opt  testdir
data  proc  sys  root  tmp  bin  lib   home   mnt    srv

[root@centos7 data]# ls -X          按照后缀归类
aa  -h  a.sh  b.sh  c.txt  d.txt  e.txt  f.txt  test.txt

[root@centos7 ~]# ls -lh            将文件大小显示为可读的信息
total 8.0K
-rw-r--r-- 1 root root    0 Mar  7 15:31 342
-rw-r--r-- 1 root root  132 Mar  8 15:55 echo
---------- 1 root root 1.3K Mar  7 15:35 shadow

4.stat 查看文件状态

命令格式:

stat /PATH/TO/FILE

说明:
显示文件的元数据

示例:

[root@centos7 bin]# stat /etc/passwd
  File: ‘/etc/passwd’
  Size: 2265            Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d      Inode: 135090575   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-03-08 13:08:40.974021999 +0800
Modify: 2019-03-05 21:13:55.465984891 +0800
Change: 2019-03-05 21:13:55.465984891 +0800
 Birth: -

其他:

参数 说明
atime 访问时间,当文件被读时时间发生改变
mtime 修改时间,当文件内容被修改时时间发生改变
ctime 状态时间,当文件元数据发生改变时时间会发生改变

5. cp 复制命令

命令格式:

   cp [OPTION]... [-T] SOURCE DEST
   cp [OPTION]... SOURCE... DIRECTORY
   cp [OPTION]... -t DIRECTORY SOURCE...

说明: 复制文件或目录到目标目录

选项 说明
-i 交互式覆盖前提示
-n 不覆盖
-r,-R 递归复制目录及内部所有内容
-a 归档,相当于-dR --preserv=all
-d 不复制源文件,只复制链接名
-p 等同于--preserv=mode,ownership,timestamp
-v 显示详细过程
-f 强制
-u --update只复制源比目标更新文件或目录不存在的文件
-b 目标存在,覆盖前先备份,形式为filename~
--bakup=numbered 目标存在,覆盖前先备份加数字后缀

示例:
复制文件

[root@centos7 data]# cp /etc/passwd .
[root@centos7 data]# ls
passwd

覆盖文件

[root@centos7 data]# cp  -i /etc/passwd .
cp: overwrite ‘./passwd’? y
[root@centos7 data]# ls
passwd

当文件存在时不覆盖文件

[root@centos7 data]# cp /etc/issue .
[root@centos7 data]# ls
issue  passwd
[root@centos7 data]# echo "hello world" >> /etc/issue
[root@centos7 data]# cat /etc/issue
\S
Kernel \r on an \m
on  \l
hostname is \n
time is \t

hello world
[root@centos7 data]# cp -n /etc/issue .
[root@centos7 data]# cat ./issue
\S
Kernel \r on an \m
on  \l
hostname is \n
time is \t

递归复制

[root@centos7 data]# cp -r /etc /data
[root@centos7 data]# ls /data/etc
abrt                        exports             kdump.conf                PackageKit        services
adjtime                     exports.d           kernel                    
...
[root@centos7 data]#

复制链接

[root@centos7 data]# cp -d /bin .
[root@centos7 data]# ll
total 20
lrwxrwxrwx   1 root root    7 Mar  9 13:22 bin -> usr/bin

备份后复制1

[root@centos7 data]# ls
bin  etc  issue  passwd
[root@centos7 data]# cp -b /etc/passwd .
cp: overwrite ‘./passwd’? y
[root@centos7 data]# ls
bin  etc  issue  passwd  passwd~        将原文件备份为passwd~

注意:此方法备份后若再次备份会将passwd~覆盖

备份后复制2

[root@centos7 data]# cp --backup=numbered /etc/passwd .
cp: overwrite ‘./passwd’? y
[root@centos7 data]# ls
bin  etc  issue  passwd  passwd~  passwd.~1~

注意:用此方法备份后若再次备份不会覆盖上一次的备份内容而是新生成一个.~#~后缀的文件进行备份然后再复制
其他:

源\目标 不存在 存在且为文件 存在且为目录
一个文件 新建DEST,并将STC中内容填充至DEST中 将SRC中的内容覆盖至DEST中 在DEST下新建与原文件同名的文件,并将SRC中内容填充至新文件中
多个文件 error error 在DEST下新建与原文件同名的文件,并将原文件内容复制进新文件中
目录 创建指定DEST同名目录,复制SRC目录中所有文件至DEST下 error 在DEST下新建与原目录同名的目录,并将SRC中的内容复制到新目录中

6. mv移动

命令格式:

   mv [OPTION]... [-T] SOURCE DEST
   mv [OPTION]... SOURCE... DIRECTORY
   mv [OPTION]... -t DIRECTORY SOURCE...

说明:
移动或重命名文件

选项 说明
-i 交互式
-f 强制
-b 目标存在先备份后在移动
-u --update只移动源比目标更新文件或不存在的文件
-v 显示详细过程

示例:
移动文件

[root@centos7 data]# mkdir test
[root@centos7 data]# ls
bin  etc  issue  passwd  passwd~  passwd.~1~  test
[root@centos7 data]# mv issue test
[root@centos7 data]# ls /data/test
issue

备份后移动

[root@centos7 data]# cp /etc/issue .
[root@centos7 data]# mv -b issue test
mv: overwrite ‘test/issue’? y
[root@centos7 data]# ls /data/test
issue  issue~       <---备份后的文件

7. rm 删除

命令格式:

   rm [OPTION]... FILE...

说明: 删除(慎用)

选项 说明
-i 交互式
-f 强制删除
-r 递归

示例: 强制递归删除

[root@centos7 data]# rm -rf /data/test
[root@centos7 data]# ls
bin  etc  passwd  passwd~  passwd.~1~

注意:
生产环境中建议将不用的数据移动到一个专用目录中,不建议直接使用rm命令删除,可以将rm定义为mv的别名具体操作如下:

[root@centos7 data]# mkdir /hsz
[root@centos7 data]# echo 'alias rm='mv -t /hsz'' >> ~/.bashrc
[root@centos7 data]# . ~/.bashrc
[root@centos7 data]# ls
bin  etc  passwd  passwd~  passwd.~1~
[root@centos7 data]# rm bin
[root@centos7 data]# ls
etc  passwd  passwd~  passwd.~1~
[root@centos7 data]# ls /hsz
bin
[root@centos7 data]#

8.tree 显示目录树

命令格式:

   tree  [-acdfghilnpqrstuvxACDFQNSUX] [-L level [-R]] [-H baseHREF] [-T title] [-o filename] [--nolinks] [-P pattern] [-I
   pattern] [--inodes] [--device] [--noreport] [--dirsfirst] [--version] [--help] [--filelimit #] [--si] [--prune]  [--du]
   [--timefmt format] [directory ...]

说明: 显示目录树结构

选项 说明
-d 只显示目录
-L level 显示指定的层级数目
-P pattern 只显示指定pattern匹配到的路径

示例:

[root@centos7 /]# tree /data
/data
├── passwd
├── passwd~
└── passwd.~1~

9.mkdir 创建目录

命令格式:

   mkdir [OPTION]... DIRECTORY...

说明: 创建目录

选型 说明
-p 当上级目录不存在时自动创建上级目录
-v 显示详细信息
-m MODE 创建目录时指定权限

示例: 创建多级目录

[root@centos7 /]# mkdir -pv /test1/test2/test3
mkdir: created directory ‘/test1’
mkdir: created directory ‘/test1/test2’
mkdir: created directory ‘/test1/test2/test3’

创建目录并添加权限

[root@centos7 /]# mkdir -m 777 /data/test4
[root@centos7 /]# ll -d /data/test4
drwxrwxrwx 2 root root 6 Mar  9 14:42 /data/test4

10. rmdir 删除空目录

命令格式:

   rmdir [OPTION]... DIRECTORY...

说明: 删除空目录

选项 说明
-p 递归删除父空目录
-v 显示详细信息

示例:

[root@centos7 data]# rmdir -pv /test/test1/test2/test3
rmdir: removing directory, ‘/test/test1/test2/test3’
rmdir: removing directory, ‘/test/test1/test2’
rmdir: removing directory, ‘/test/test1’
rmdir: removing directory, ‘/test’
rmdir: removing directory, ‘/’

七、inode table

inode表内存储了文件的元数据,包括文件权限、属主属组、文件大小、访问时间、修改时间、元数据变更时间和真正的数据存储位置的指向。

执行cp、rm、mv操做文件在磁盘上的变化

cp:分配一个空的inode号,在inode表中生成新条目在目录中创建一个目录项,将名称与inode编号关联拷贝数据生成新文件
rm:链接数递减,释放inode号,把数据块标记为空闲。删除目录项,数据不会马上被删除,当另一个文件使用数据块时将被覆盖
mv:移动的目标和源在同一文件系统,用新的文件名创建相对应的新目录项,删除旧的文件名,不影响磁盘上的数据位置,若源和目标不在同一文件系统,mv执行效果相当于cp+rm

  1. 硬链接
    硬链接就是在同一文件系统内,不同名字,inode号和磁盘数据位置相同的一种文件。当硬链接被创建时文件的链接数+1,当文件被删除时,链接数-1,当链接数为0时,该文件被删除,硬链接不能跨分区。 命令格式:

     ln filename [linkname]
    

示例:

[root@centos7 data]# ll passwd
-rw-r--r-- 1 root root 2265 Mar  9 13:32 passwd     链接数为1
[root@centos7 data]# ln passwd passwd1
[root@centos7 data]# ll passwd passwd1
-rw-r--r-- 2 root root 2265 Mar  9 13:32 passwd
-rw-r--r-- 2 root root 2265 Mar  9 13:32 passwd1    链接数为2,其余都一样

软链接:
软链接是一个链接指向另一个文件,他可以对目录进行链接,也可以跨分区创建(但跨分区后其无法指向源文件),其文件大小为指向的路径字符串的长度,创建或删除不会增加或减少目标文件inode的引用计数。
命令格式:

ln -s filename [linkname]

示例:

[root@centos7 data]# ln -s passwd /passwd
[root@centos7 data]# ll passwd /passwd
-rw-r--r-- 2 root root 2265 Mar  9 13:32 passwd
lrwxrwxrwx 1 root root    6 Mar  9 19:53 /passwd -> passwd      

八、文件通配符

符号 含义
* 匹配零个或多个字符
? 匹配任意单个字符
~ 当前用户家目录
~masuri 用户masuri家目录
~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围
[a-z] 匹配小写字母
[A-Z] 匹配大写字母
[wang] 匹配列表中的任意字符
[^wang] 匹配除列表中字符外的任意字符
[:digit:] 任意数字,相当于0-9
[:lower:] 任意小写字母
[:upper:] 任意大写字母
[:alpha:] 任意大小写字母
[:alnum:] 任意字母或数字
[:blank:] 水平空白字符
[:space:] 水平或垂直空白字符
[:punct:] 标点符号
[:print:] 可打印字符
[:cntrl:] 控制字符
[:graph:] 图形字符
[:xdigit:] 十六进制字符

、Linux基础命令

1. alias 命令别名

命令格式:

alias [-p] [name[=value] ...]

示例:

[root@centos7 ~]# alias cdnet='cd /etc/sysconfig/network-scripts/'
[root@centos7 ~]# cdnet
[root@centos7 network-scripts]# 

注意:alias命令所定义的别名只在当先shell环境内有效,退出后就会自动失效,若要使别名永久有效需要将其写入用户家目录下的.bashrc或者/etc/bashrc(此文件对全局有效不推荐)文件中。 示例:

[root@centos7 ~]# vim .bashrc 

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias cdnet='cd /etc/sysconfig/network-scripts/'    

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

注意:取消别名方法unalias COMMAND

2. bc 计算器

命令格式:

bc [ -hlwsqv ] [long-options] [  file ... ]

示例:

[root@centos7 ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1+2                 输入需要计算的数字
3                   显示结果
obase=2             输出2进制,做2进制转换
10                  
1010                
obase=16            输出16进制
ibase=10            输入10进制
16
10
^C                  ctrl+c退出bc计算器
(interrupt) Exiting bc.

3. cal 显示当前月份

命令格式:

cal [options] [[[day] month] year

示例:

[root@centos7 ~]# cal           不带参数显示当前月
     March 2019     
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

[root@centos7 ~]# cal 2019       带年份显示全年月份
                               2019                               

       January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2                   1  2
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    3  4  5  6  7  8  9
13 14 15 16 17 18 19   10 11 12 13 14 15 16   10 11 12 13 14 15 16
20 21 22 23 24 25 26   17 18 19 20 21 22 23   17 18 19 20 21 22 23
27 28 29 30 31         24 25 26 27 28         24 25 26 27 28 29 30
                                              31
        April                   May                   June        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6             1  2  3  4                      1
 7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                              30
        July                  August                September     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                1  2  3    1  2  3  4  5  6  7
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
28 29 30 31            25 26 27 28 29 30 31   29 30

       October               November               December      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2    1  2  3  4  5  6  7
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    8  9 10 11 12 13 14
13 14 15 16 17 18 19   10 11 12 13 14 15 16   15 16 17 18 19 20 21
20 21 22 23 24 25 26   17 18 19 20 21 22 23   22 23 24 25 26 27 28
27 28 29 30 31         24 25 26 27 28 29 30   29 30 31


[root@centos7 ~]# cal 5 2019        显示指定年月
      May 2019      
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

4. clock 显示硬件时间同hwclock

命令格式:

hwclock [function] [option...]  
选项 说明
-s 以硬件时间为准修改系统时间
-w 以系统时间为准修改硬件时间

示例:
以硬件时间为准修改系统时间

[root@centos7 ~]# date
Tue Mar  5 14:30:30 CST 2019
[root@centos7 ~]# clock
Fri 08 Mar 2019 02:33:42 PM CST  -0.758330 seconds
[root@centos7 ~]# clock -s
[root@centos7 ~]# date
Fri Mar  8 14:34:04 CST 2019

以系统时间为准修改硬件时间

[root@centos7 ~]# date "030212102019.20"
Sat Mar  2 12:10:20 CST 2019
[root@centos7 ~]# clock -w
[root@centos7 ~]# clock
Sat 02 Mar 2019 12:10:55 PM CST  -0.678871 seconds

5. date 系统时间

命令格式:

date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
选项 说明
-d 显示指定的日期
-s 设置系统时间
%F 显示格式为 年-月-日
%T 显示格式为 小时:分钟:秒
%H 显示小时0-24
%M 显示分钟0-60
%S 显示秒0-60
%m 显示月份1-12
%y 显示两位年份
%Y 显示四位年份
%D 显示时间为 日/月/年
%s 显示从1970年1月1日至今的秒数

示例:


[root@centos7 ~]# date +"%Y-%m-%d %H:%M:%S"     分别用参数显示
2019-03-02 12:41:58
[root@centos7 ~]# date +"%F %T"                 用%F和%T显示
2019-03-02 12:44:11
[root@centos7 ~]# date -s "2019-03-08 15:19:20"
Fri Mar  8 15:19:20 CST 2019

6. cat 查看文本文件内容

命令格式:

   cat [OPTION]... [FILE]...

示例:

[root@centos7 ~]# cat /etc/issue
\S
Kernel \r on an \m
on  \l
hostname is \n
time9 is \t

7. enable 启用和禁用内部命令

命令格式:

enable [-a] [-dnps] [-f filename] [name ...]
选项 说明
-n command 禁用内部命令
command 启用内部命令
-n 查看所有禁用命令

示例:

[root@centos7 ~]# enable -n type        禁用type
[root@centos7 ~]# type ytpe             type命令已经无法使用
bash: type: command not found...
[root@centos7 ~]# enable -n             查看被禁用的命令
enable -n type
[root@centos7 ~]# enable type           启用type
[root@centos7 ~]# type type
type is a shell builtin

8. echo 回显命令

命令格式:

   echo [SHORT-OPTION]... [STRING]...
   echo LONG-OPTION
选项 说明
-n 不自动换行
-e 对字符进行转义

示例:

[root@centos7 ~]# echo -n "hello world"         回显后不换行
hello world[root@centos7 ~]# 
[root@centos7 ~]# echo -e "hello\tworld"        将\t进行转义
hello	world

9. hash 显示hash缓存

命令格式:

hash [-lr] [-p filename] [-dt] [name]
选项 说明
–l 显示hash缓存,可作为输入使用
–p path name 将命令全路径path起别名为name
–t name 打印缓存中name的路径
–d name 清除name缓存
–r 清除缓存

示例:

[root@centos7 ~]# hash -l                       显示hash缓存
builtin hash -p /usr/bin/cat cat
builtin hash -p /usr/bin/date date
builtin hash -p /usr/bin/man man
builtin hash -p /usr/bin/cd cd

[root@centos7 ~]# hash -p /usr/bin/cd cd1       将cd1定义成cd的别名
[root@centos7 ~]# cd1 /
[root@centos7 ~]# cd /boot
[root@centos7 boot]# 

[root@centos7 boot]# hash -t cd                 打印哈希表中的cd路径
/usr/bin/cd

[root@centos7 boot]# hash                       
hits	command
   2	/usr/bin/cat
  10	/usr/bin/date
   4	/usr/bin/man
   1	/usr/bin/cd
   3	/usr/bin/ls
   2	/usr/bin/cd
[root@centos7 boot]# hash -d ls                 删除哈希表中的ls命令
[root@centos7 boot]# hash
hits	command
   2	/usr/bin/cat
  10	/usr/bin/date
   4	/usr/bin/man
   1	/usr/bin/cd
   2	/usr/bin/cd

[root@centos7 boot]# hash -r                    清空哈希表
[root@centos7 boot]# hash
hash: hash table empty

注意:系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率

10. hostname 显示当前主机名

示例:

[root@centos7 boot]# hostname
centos7.localdomain

11. id 显示用户id号

命令格式:

id [OPTION]... [USER]
选项 说明
-u 显示用户uid
-g 显示用户gid

示例:

[root@centos7 ~]# id -u root            显示用户id
0
[root@centos7 ~]# id -g root            显示用用户组id
0
[root@centos7 ~]# id root               显示用户所有id号信息
uid=0(root) gid=0(root) groups=0(root)

12. ifconfig 查看网络信息

命令格式: ifconfig [-v] [-a] [-s] [interface]

示例:

[root@centos7 ~]# ifconfig ens33    
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.172.133  netmask 255.255.255.0  broadcast 192.168.172.255
        inet6 fe80::e15f:40c5:2115:bc3c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:63:21:a6  txqueuelen 1000  (Ethernet)
        RX packets 7540  bytes 619380 (604.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4780  bytes 647319 (632.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

13. shutdown 关机

命令格式:

  shutdown [OPTIONS...] [TIME] [WALL...]

说明: 关机、重启、断电

选项 说明
-H 断电
-P 关机
-r 重启
-K 不关机、重启、或断电仅发送消息
-c 取消

示例:

[root@centos7 data]# shutdown -H 5 "5分钟后断电"
Shutdown scheduled for Sat 2019-03-09 20:15:21 CST, use 'shutdown -c' to cancel.
[root@centos7 data]#
Broadcast message from root@centos7.localdomain (Sat 2019-03-09 20:10:21 CST):

5分钟后断电
The system is going down for system halt at Sat 2019-03-09 20:15:21 CST!

[root@centos7 data]# shutdown -c
[root@centos7 data]#
Broadcast message from root@centos7.localdomain (Sat 2019-03-09 20:10:55 CST):

The system shutdown has been cancelled at Sat 2019-03-09 20:11:55 CST!

14. screen

命令格式:

   screen [ -options ] [ cmd [ args ] ]
   screen -r [[pid.]tty[.host]]
   screen -r sessionowner/[[pid.]tty[.host]]

说明:
开启一个终端

选项 说明
-S 创建一个会话
-X 加入会话
-ls 查看当前开启的会话
-r 返回暂离的会话

示例:
创建一个help的会话

[root@centos7 ~]# screen -S help

显示已创建的会话

[root@centos7 ~]# screen -ls
There is a screen on:
        55725.help      (Attached)
1 Socket in /var/run/screen/S-root.

暂离会话
按ctrl+a,d

返回help会话

[root@centos7 ~]# screen -r help

15. timedatectl 时区设置

命令格式:

   timedatectl [OPTIONS...] {COMMAND}

说明: 查看设置修改时区

选项 说明
status 状态
set-timezone 设置时区
list-timezone 显示所有时区

示例: 显示时区

[root@centos7 ~]# timedatectl status
      Local time: Sat 2019-03-09 21:10:04 CST
  Universal time: Sat 2019-03-09 13:10:04 UTC
        RTC time: Sun 2019-03-03 10:37:44
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

显示所有时区

[root@centos7 ~]# timedatectl list-timezones 
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
....

设置时区

[root@centos7 ~]# timedatectl set-timezone Africa/Abidjan
[root@centos7 ~]# timedatectl status 
      Local time: Sat 2019-03-09 13:13:53 GMT
  Universal time: Sat 2019-03-09 13:13:53 UTC
        RTC time: Sun 2019-03-03 10:41:33
       Time zone: Africa/Abidjan (GMT, +0000)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

16. touch 创建空文件

命令格式:

   touch [OPTION]... FILE...

说明: 创建空文件

选项 说明
-a 仅改变atime和ctime
-m 仅改变mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建

示例: 改变atime和ctime

[root@centos7 data]# stat passwd
  File: ‘passwd’
  Size: 2265      	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 1051        Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-03-09 05:32:01.845537779 +0000
Modify: 2019-03-09 05:32:01.845537779 +0000
Change: 2019-03-09 11:43:48.513061240 +0000
 Birth: -
[root@centos7 data]# touch -a passwd
[root@centos7 data]# stat passwd
  File: ‘passwd’
  Size: 2265      	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 1051        Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-03-09 13:34:38.486974628 +0000
Modify: 2019-03-09 05:32:01.845537779 +0000
Change: 2019-03-09 13:34:38.486974628 +0000
 Birth: -

改变mtime和ctime

[root@centos7 data]# touch -m passwd
[root@centos7 data]# stat passwd
 File: ‘passwd’
 Size: 2265      	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 1051        Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-03-09 13:34:38.486974628 +0000
Modify: 2019-03-09 13:37:00.490969902 +0000
Change: 2019-03-09 13:37:00.490969902 +0000
Birth: -

修改atime和mtime

[root@centos7 data]# stat passwd
  File: ‘passwd’
  Size: 2265      	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 1051        Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-01-01 10:10:00.000000000 +0000
Modify: 2019-01-01 10:10:00.000000000 +0000
Change: 2019-03-09 13:38:54.820966097 +0000
 Birth: -

17.type

命令格式: type COMMAND 说明:
查看命令是内部或外部命令 示例:

[root@centos7 data]# type man
man is hashed (/usr/bin/man)
[root@centos7 data]# type type
type is a shell builtin

18.tty

命令格式:

   tty [OPTION]...

打印当前终端名称 示例:

[root@centos7 data]# tty
/dev/pts/1

19.uname

命令格式:

   uname [OPTION]...

说明: 显示系统信息 |选项|说明| |-a|显示所有信息| |-r|显示内核信息| 示例:

[root@centos7 data]# uname -a
Linux centos7.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@centos7 data]# uname -r
3.10.0-957.el7.x86_64

20.who

命令格式:

   who [OPTION]... [ FILE | ARG1 ARG2 ]

说明: 查看有哪些用户登录
示例:

[root@centos7 data]# who
root     tty1         2019-03-08 05:08
root     pts/0        2019-03-09 11:42 (192.168.1.188)
root     pts/1        2019-03-09 12:54 (192.168.172.1)

21.w

命令格式:

       w [options] user [...]

说明: 显示当前有哪些用户登录并且在干什么 示例:

[root@centos7 data]# w
 14:07:04 up 19:45,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      Fri05    2:25m  1.62s  1.62s -bash
root     pts/0    192.168.1.188    11:42    1:56m  0.13s  0.13s -bash
root     pts/1    192.168.172.1    12:54    0.00s  0.25s  0.01s w

22.which

命令格式:

   which [options] [--] programname [...]

说明: 查看命令全路径

[root@centos7 data]# which man
/usr/bin/man

23.whereis

命令格式:

   whereis [options] [-BMS directory... -f] name...

说明:
查看二级制程序路径和帮助手册 示例:

[root@centos7 data]# whereis who
who: /usr/bin/who /usr/share/man/man1/who.1.gz /usr/share/man/man1p/who.1p.gz

24.whoami

命令格式:

   whoami [OPTION]...

说明: 打印当前用户名 示例:

[root@centos7 data]# whoami
root