1
Linux的两种时钟
系统时钟 :由Linux内核通过CPU的工作频率进行的计时( date 命令所使用)
硬件时钟 :clock命令可以显示出来 ( 主板上所记录的时间 )
2
日期相关的命令
date : 格式化显示或设置时间
[root@gkdaxue ~]# date # 显示时间
Tue Sep 4 21:32:48 CST 2018
[root@gkdaxue ~]# date '+%D'
09/04/18
[root@gkdaxue ~]# date '+%F'
2018-09-04
[root@gkdaxue ~]# date '+%T'
21:32:59
[root@gkdaxue ~]# date '+%F %T'
2018-09-04 21:33:05
-s : 设置时间
[root@gkdaxue ~]# date -s '180904 21:32:09'
Tue Sep 4 21:32:09 CST 2018
[root@gkdaxue ~]# date '+%F %T'
2018-09-04 21:32:10
cal 日历
cal : 显示本年当月的日历
cal 2018 : 显示2018年所有的日历
3
目录相关的命令
1
主目录, 家目录
root : /root
普通用户 : /home/用户名(默认) => /home/tom
~ : 用户的主目录
. : 当前目录
.. : 上一级目录
2
cd 用于切换工作路径
# cd # 或 cd ~ : 回当前用户的家目录
# cd ~用户名 # 跳转到该用户的家目录
# cd - # 在上一个目录和当前目录之间切换
相关的环境变量
PWD : 保存了当前的目录路径
OLDPWD : 上一次所在的目录路径
3
pwd 显示用户当前所处的工作目录
[root@gkdaxue ~]# pwd
/root
4
ls 显示指定路径下的文件列表
-a : 显示家目录中的所有文件, 包括隐藏文件和(., ..)
-A : 显示家目录中的所有文件, 包括隐藏文件,不包括(., ..)
-l : 或 ll # 长格式显示, 以下这种格式
-rw-r--r--. 1 root root 1079 Apr 4 16:22 initial-setup-ks.cfg
-lh : 用人类易读的方式显示文件大小
-rw-r--r--. 1 root root 1.1K Apr 4 16:22 initial-setup-ks.cfg
-d : 显示目录自身相关属性,通常与-l一起使用
-r : 逆序显示
-R : 递归显示
-rw-r--r--. 1 root root 1079 Apr 4 16:22 initial-setup-ks.cfg
包含了文件的类型(-)、访问权限(rw-r--r--)、ACL(.)、文件被硬链接的次数(1)、所有者(root)、所属组(root)、占用的磁盘大小(1079)、修改时间(Apr 4 16:22)和文件名称(initial-setup-ks.cfg)等信息
5
stat 获取指定文件的文件信息
[root@gkdaxue ~]# stat /etc/fstab
File: ‘/etc/fstab’
Size: 465 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 16777346 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:etc_t:s0
Access: 2018-09-14 21:14:44.060382861 +0800
Modify: 2018-04-05 00:12:06.573994189 +0800
Change: 2018-04-05 00:19:53.333961735 +0800
Birth: -
4
Linux下的文件类型
- :普通文件。
d :目录文件。
l :符号链接文件。
b :块设备文件。
c :字符设备文件。
p :管道文件。
s : 套接字(socket)。
·
5
cat 查看纯文本文件
-E : 显示行结束符$
-n : 对显示的每一行进行编号
[root@gkdaxue ~]# cat -n -E /etc/passwd | head -n 1
1 root:x:0:0:root:/root:/bin/bash$
6
file 文件内容类型查看
[root@gkdaxue ~]# file /etc/passwd
/etc/passwd: ASCII text
7
echo 回显命令
终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”
-n : 禁止自动添加换行符号
-e : 允许使用转义符
\n : 换行
\t : 制表符
8
常用的转义字符
1
反斜杠(\) 使反斜杠后面的一个变量变为单纯的字符串
[root@gkdaxue ~]# echo $SHELL
/bin/bash
[root@gkdaxue ~]# echo \$SHELL
$SHELL
2
单引号('') 转义其中所有的变量为单纯的字符串
[root@gkdaxue ~]# echo $SHELL
/bin/bash
[root@gkdaxue ~]# echo '$SHELL'
$SHELL
3
双引号("")保留其中的变量属性,不进行转义处理
[root@gkdaxue ~]# echo $SHELL
/bin/bash
[root@gkdaxue ~]# echo "$SHELL"
/bin/bash
4
反引号() 把其中的命令执行后返回结果
# uname -a # 查看本机的Linux版本和内核信息
# echo uname -a # 查看本机的Linux版本和内核信息
[root@gkdaxue ~]# uname -a
Linux gkdaxue 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@gkdaxue ~]# echo `uname -a`
Linux gkdaxue 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
[root@gkdaxue ~]#
9
which 显示命令对应的程序文件路径
--skip-alias : 禁止显示别名
[root@gkdaxue ~]# which cp
alias cp='cp -i'
/usr/bin/cp
[root@gkdaxue ~]# which --skip-alias cp
/usr/bin/cp
10
whatis : 将当前系统上所有的帮助手册与之对应的关键字创建一个数据库
[root@gkdaxue ~]# whatis read
read (1) - bash built-in commands, see bash(1)
read (1p) - read a line from standard input
read (2) - read from a file descriptor
read (3p) - read from a file
11
系统管理类命令
1
用户登录相关
whoami : 显示当前登录有效用户
who : 系统当前所有的登录会话
w : 系统当前所有的登录会话以及所做的操作
2
关机或重启
halt, poweroff, shutdown, init 0
reboot, shutdown, init 6
shutdown
shutdown [OPTIONS...] [TIME] [WALL...]
-r : reboot
-h : halt
-c : cancel
TIME :
now : 立刻
+3 : 从现在开始, 3分钟之后关机
21:21 : 在21:21分开始关机
12
Linux的文件系统
根文件系统(rootfs) root filesystem
LSB, FHS
FileSystem Heirache Standard
/boot : 引导文件存放目录, 内核文件(vmlinuz), 引导加载器(bootloader, grub)都存放于此目录
/bin : 供所有用户使用的基本命令; 不能关联至独立分区, OS启动即会用到的程序
/sbin : 管理类的基本命令, 不能关联至独立分区, OS启动即会用到的程序
/lib : 基本共享库文件, 以及内核模块文件(/lib/modules)
/lib64 : 专用于x86_64系统上的辅助共享库文件存放位置
/etc : 配置文件目录(纯文本文件)
/home/USERNAME : 普通用户家目录
/root : 管理员的家目录
/media : 便携式移动设备挂载点
/mnt : 临时文件系统挂载点
/dev : 设备文件及特殊文件存储位置
b : block device (可随机访问设备)
c : character device (线性访问设备)
/opt : 第三方应用程序的安装位置
/srv : 系统上运行的服务用到的数据
/tmp : 临时文件
/var : variables data files
cache : 应用程序缓存目录
lib : 应用程序状态信息数据
local : 专用于/usr/local下的应用程序存储可变数据
lock : 锁文件
log : 日志目录及文件
opt : 专用于/opt下的应用程序存储可变数据
run : 运行中的进程相关的数据,通常用于存储进程的pid文件
spool : 应用程序数据池
tmp : 保存系统两次重启之间产生的临时数据
/usr : universal shared, read-only data
bin : 保证系统拥有完整功能而提供的应用程序
sbin : 管理员才可使用
lib : 库文件
lib64 : 用于x86_64库文件
include : C程序的头文件(header files)
share : 结构化独立的数据, 如 doc, man 等
local : 第三方应用程序的安装位置
/proc : 用于输入内核与进程信息相关的虚拟文件系统
/sys : 用于输入当前系统上硬件设备相关信息的虚拟文件系统
/selinux : security enhanced Linux. selinux 相关的安全策略等信息的存储位置
二进制程序 : /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin
库文件 : /lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64
配置文件 : /etc, /etc/DIRECTORY, /usr/local/etc
帮助文件 : /usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc
14
Bash的基础特性
1
one
历史命令
gkdaxue.com
history
环境变量
HISTSIZE : 历史命令记录的条数
HISTFILE : ~/.bash_history
HISTFILESIZE : 命令历史文件记录历史的条数
# history -d 1 # 删除历史命令缓冲区中的第一条
# history -c # 清空历史命令缓冲区
# history 10 # 显示历史命令缓冲区中最近的10条记录
# history -a # 手动追加当前会话缓冲区的命令历史至历史文件(~/.bash_history)中
调用历史中的命令
# !10# 重复执行第10条指令
# !! # 执行上一次执行的命令
# !string# 在历史命令缓冲区中查找最近一个以指定字符串开头的命令
调用上一个命令的最后一个参数
1. !$
# cat /etc/fstab
# l1 !$ # -rw-r--r--. 1 root root 465 Apr 5 00:12 /etc/fstab
2. ESC, .
# cat /etc/fstab
#
# ll # 先按ESC 再按 . 号 -rw-r--r--. 1 root root 465 Apr 5 00:12 /etc/fstab
控制命令历史的记录方式
环境变量 : HISTCONTROL
ignoredups : 忽略连续且相同的命令, 只保留一条
ignorespace : 忽略所有以空白开头的命令
ignoreboth : 以上两者都用
# echo $HISTCONTROL# ignoredups
# export HISTCONTROL="ignorespace"
# echo $HISTCONTROL# ignorespace
修改环境变量值的方式 : export 变量名="变量值"
2
one
补全功能
gkdaxue.com
输出命令或路径的一部分, 如果唯一, 按Tab键, 则会补全, 不唯一, 按两下 Tab键 则会出现列表
# # 命令补全
# pass # 按 Tab键 ==> # passwd
# pas # 按两下 Tab ==> passwd paste pasuspender
3
one
命令行展开
gkdaxue.com
~ : 展开为用户的主目录
~USERNAME : 展开为USERNAME的主目录
{} :可承载一个以逗号分割(中间不能有空格)的列表, 并将其展开为多个路径,
/tmp/ = /tmp/a, /tmp/b
# mkdir -p ~/linshi//
# tree ~/linshi # 显示结果如下
# linshi
#├── a
#│ ├── a1
#│ └── a2
#└── b
# ├── a1
# └── a2
#
# mkdir -p /tmp/linshi2/_
# /tmp/linshi2
#├── x_m
#├── x_n
#├── y_m
#└── y_n
#
# mkdir -p /tmp/linshi3/ # 等于 mkdir -p /tmp/linshi3/}
# /tmp/linshi3
#├── bin
#├── sbin
#└── usr
# ├── bin
# └── sbin
4
one
命令的执行状态
gkdaxue.com
Bash使用 $? 来保存上一条命令的执行结果
$? 为 0 表示成功, 非 0 表示失败
# cat /etc/fstab
# echo $? # ==> 0
# cat /etc/fstab2
# echo #? # ==> 1
15
目录管理类命令
mkdir : 创建文件夹
-p : 存在于不报错, 且递归创建所需要的目录
-v : 显示详细信息
-m MODE : 创建目录时,直接指定权限
tree : 显示目录下的层级结构(需要安装软件)
-d : 只显示目录 # tree -d /etc
-L level : 指定显示的层级目录# tree -L 3 /etc
-P pattern : 只显示由指定pattern匹配到的路径#
rmdir : 只能删除空目录
-v : 显示过程
16
文本文件查看命令
touch
用于创建空白文件或设置文件的时间
文件有三种时间(stat查看)
modify time(mtime) : 文件内容的修改时间
change time(ctime) : 元数据发生改变
access time(atime) : 文件的读取时间
-a : 仅修改“读取时间”(atime)
-m : 仅修改“修改时间”(mtime)
-d : 同时修改atime与mtime
-c : 文件不存在, 就不创建文件
cat
查看文件内容比较少的文件, 文件内容过多, 会一闪而过直到内容结尾
-n : 显示行号
more
查看纯文本文件(内容较多的)
-d : 显示翻页及退出提示
head
查看纯文本文档的前N行
-n NUMBER : 指定获取前NUMBER行
tail
查看纯文本文档的后N行或持续刷新内容
-n NUMBER : 指定获取后NUMBER行
-f : 持续刷新一个文件的内容
领取专属 10元无门槛券
私享最新 技术干货