1.修改命令提示符
环境变量:PS1:
\u: 当前用户名
\h: 主机名
\H: FQDN,完整格式的主机名
\W:当前工作目录的基名
\w: 当前工作目录绝对路径
\$: 提示符
\t:显示时间
查看命令:echo $PS1
修改命令:PS1='[\u\h \w]\$'
2.更改目录:
cd: change directory
cd ~切换到当前用户的家目录
cd ~USERNAME 切换到指定用户的家目录
cd -: 在前一个目录和当前目录之间反复切换
两个独特的路径:
.: 当前目录
..:上一级目录
3.命令历史:
history N: 显示最近的N条,包括当前命令自身;
history -c: 清空命令历史
history -d offset: 删除指定的偏移处的命令条目
history -a [/path/to/some_history_file]: 将当前会话中的命令历史写入指定文件
bash调用命令历史列表中的命令:
!#: 执行命令历史中的第#条命令
!!: 执行上一条命令
!string: 执行命令历史中最近一次以string开头的命令;
!$: 调用上一条命令的最后一个参数
ESC, .:功能同上
改变history记录方式的环境变量:
HISTCONTROL:
ignoredups: 忽略重复的命令,连续的相同命令才会为重复
ignorespace: 忽略以空白字符打头的命令
ignoreboth: 以上二者同行生效;
4.关机命令:
shutdown -h 关机
-r 重启
-c 取消关机操作
时间格式
now
+m
hh:mm
reboot: 重启
halt: 关机
poweroff: 关机
5.时间设置:
date: 日期和时间
date [options] [+FORMAT]
%s: 时间戳计时法,从Unix元年(1970-01-01 00:00:00)到此刻所经过的秒数
%F, %D
%T
%Y
%m
%d
%H
%M
%S
设置时间:
date [MMDDhhmm[[CC]YY][.ss]]
Linux有两个时钟:系统时钟和硬件时钟
硬件时钟:
系统时钟:Linux
hwclock(管理员权限才能查看)
-s: 以硬件为准
-w:以系统为准
6.目录管理
mkdir: make directory
-p: 当指定的目标目录的父目录不存在时,则先创建之
-v: 显示详细信息
rmdir: remove directory
-p: 删除单传目录路径中各目录
bash特性之一:命令行展开
~: 用户家目录
~USERNAME: 指定用户的家目录
{}:
/tmp/{x,y}
/tmp/x, /tmp/y
/tmp/{x,y}/z
/tmp/x/z, /tmp/y/z
7.查看命令
ls命令:list简写
ls [option] [file]
常用选项:
-l: long,长格式显示文件的详细属性信息
drwxr-xr-x. 2 root root 4096 Feb 12 09:55 account
左起第一位:文件类型
后面的9位:权限,常称为mode
r: 读,Read
w: 写, Write
x:执行, eXcute
.: 表示文件有隐藏属性
lsattr命令可以查看
数字:此文件被硬链接的次数
属主:owner, 文件的拥有者
属组:group, 文件的所属的组
4096: 文件大小,单位是字节
-h: human-readable,自动做单位换算
文件最近一次被修改的时间
文件名
-a: 显示所有文件
-d: 通常和-l一起使用,用于仅显示目录自身属性
-r: reverse, 逆序显示
-R: recursive, 递归显示,显示子目录中的内容
stat: 显示文件的元数据
时间戳信息:
access(atime):表示文件最后一次被访问的时间
modify(mtime):表示文件内容最后一次被修改的时间
change(ctime):表示文件元数据最后一次被修改的时间
如果mtime改变,ctime一定跟着改变。
ctime改变,mtime不一定变。
touch:改变文件的atime和mtime,ctime是由文件系统自己维护的。
touch [option]... FILE
如果FILE不存在,默认会创建一个空文件
-a: 仅改变atime
-m: 仅改变mtime
-c: 不创建空文件
-t [[CC]YY]MMDDhhmm[.ss]
cat: 连接并显示文本文件内容
文本文件就是数据流:stream 流式化
-E:显示行结束符
对于Linux而言,换行符就是$,而对于windows而言换行符是两个字符:换行符$+回车符,所以Linux的文本文件在windows中用txt打开的时候是一排没有换行,但是Linux可以识别windows的换行符。
-n: 显示行号
tac: 逆序显示文件内容
7.5 echo命令
echo [-neE] [arg ...]
\n
\t
\v垂直制表符
\033[
单个数字:控制字体
3#:#是一个数字,3表示控制其前景色
4#:#是一个数字,4表示控制其背景色
组合使用,彼此间使用;分隔
eg:
背景是蓝色的,前景是绿色的:
echo -e '\033[32;44mhello\033[0m'
粗体:
echo -e '\033[32;1mhello\033[0m'
m:是固定格式
\033[0m:控制符的功能至此结束
7.6 其他显示命令:more,less,head,tail,
8.别名:alias
alias ALIAS=COMMAND
别名与命令同名时:
绝对路径
\COMMAND
******生效范围:命令行定义的别名,其生效范围为当前会话;******
unalias [ALIAS]
-a: 撤消所有别名
9.文件管理类命令:
复制:cp
移动:mv
删除:rm
cp:
cp SRC DEST
SRC是文件:
如果DEST不存在:复制SRC为DEST
如果DEST存在:
如果DEST是文件:则覆盖
如果DEST是目录:将SRC复制进DEST中,并保持原名
cp SRC... DEST
如果SRC不止一个,则DEST必须得是目录;
cp SRC DEST
SRC是目录:
可使用-r选项:
cp -r SRC... DEST
-P: 复制符号链接文件本身,而非其指向的目标文件
--preserve[=ATTR_LIST]
mode,ownership,timestamps
mode: 权限
owership: 属主、属组
timestamps: 时间戳
-p: 相当于 --preserve=mode,ownership,timestamps
-a:相当于 -dR --preserve=all
归档:archive
-i: interactive
-f: force
mv命令:
mv SRC... DEST
-i: interactive
rm命令:
-i:交互
-f:强制删除
删除根:
--no-preserve-root
10.文本处理类命令:
wc: Word Count
-l: 仅显示行数
-w:
-c:
cut:
-d: 指定分隔符
-f: 指定要显示的字段
m: 第m列
m,n: 第m和n列
m-n: 第m到第n列
sort:
sort [option] FILE...
-f: 忽略字符大小写
-t: 指定分隔符
-k: 指定分隔之后要进行排序比较的字段
-n: 以数值大小进行排序
-u: 排序后去重
uniq: 去重(只有连续两个相同的行才算是重复行)
-d:仅显示重复的行
-u:仅显示未曾重复的行
-c: 统计行出现的次数
11.其他:
ntp: Network Time Protocol(RedHat7之后不再使用)
通过网络同步系统时间
ntpdate SERVER
who: 登录至当前系统的所有用户
whoami: 当前终端上登录的用户
which: 显示指定命令的完整路径
--skip-alias: 路过命令别名
文件内容的类型:
file /path/to/somefile
命令调用缓存:
hash
-d: 清除指定名称的缓存内容
-r: 清空缓存