一、与终端相关的命令
1、显示当前终端的类型的命令
tty:显示用户连接的终端类型
虚拟终端(开启系统后显示为命令界面的终端):
伪终端(XShell或Telnet远程连接打开的终端,或者使用图形桌面打开的终端):
Linux系统上有有6个虚拟终端,分别对应键盘上的F1-F6键,各个虚拟终端可通过快捷键:Ctrl+Alt+F(1~6)切换;通过Ctrl+Alt+F7切换至图形终端。
Startx &:第一次启动图形终端
Startx --:#(1~n):切换图形终端
在虚拟终端上第一次开启图形终端,必须使用Startx &命令来启动图形终端。
Linux系统的图形终端对应键盘上的F7及其后面的键,可通过Ctrl+Alt+F(7~n)切换。
2、显示当前终端的登录信息的命令
who:显示当前登录至系统的所有用户及其登录的终端类型、登录的时间。
w:显示更为详细的who
whoami:显示当前连接的有效用户
3、显示当前终端的时间的命令
date:显示系统时间
显示完整日期、时间、星期: date :(Fri Aug 28 11:56:50 CST 2015)
date +%c :(Fri 28 Aug 2015 11:30:00 AM CST)
显示时间: date +%X :(11:37:58 AM) 相当于: date +%H:%M:%S
date +%T : (11:39:08) (24 小时制)
显示小时: date +%H : (00..23) date +%I : (01..12)
date +%k : (0..23) date +%l : (1..12)
显示分: date +%M : (00..59)
显示秒: date +%S : (00..61)
显示年月日: date +%D : (08/28/15) date +%x : (08/28/2015)
date +%F : (2015-08-28)
显示年: date +%Y : (2015) date +%y : (15)
显示月份 : date +%B : (August) date +%b 、date +%h : (Aug)
date +%m : (08)
显示日: date +%d : (28)
显示星期: date +%A : (Friday) date +%a : (Fri)
显示本地 AM 或 PM: date +%p
显示时区 : date +%Z : (+0800表示与标准时区相差8个小时)
显示时间戳: date +%s : 从1970年1月1日 00:00:00 UTC 到目前为止的秒数
date -s<字符串>:根据字符串来设置日期与时间。
date -s 20150823 //设置成20150823 ,这样会把具体时间设置成空00:00:00
date -s 15:13:46 //设置具体时间,不会对日期做更改
date -s “15:13:46 2015-08-11″ //这样可以设置全部时间
date -s “15:23:46 20150912″ //这样可以设置全部时间
date -s “2015-08-24 15:13:46″ //这样可以设置全部时间
date -s “20150824 15:13:46″ //这样可以设置全部时间
clock、hwclock:显示硬件时间
hwclock -s:调整系统时间(以硬件时间为准)
hwclock -w:调整硬件时间(以系统时间为准)
cal:查看日历
cal :显示当月日历
cal -3:显示上月、本月、下月的日历
cal -j:显示当前为本年的第几天
cal 2015:显示2015年的日历
4、执行终端关机、重启的命令
关机:shutdown是最安全的关机方式
shutdown -h now/ shutdown -h +0 :立刻关机
shutdown -h +10 :十分钟后关机
shutdown -h 22:15 :下一次22:15关机
shutdown –k 假关机
halt、poweroff(可自动切断电源):立刻关机
init 0
重启: reboot
shutdown -r now/ shutdown -r +0 :立刻重启
shutdown -r +10 :十分钟后重启
shutdown r 22:15 :下一次22:15重启
init 6
取消关机或重启: shutdown -c
Shutdown --no-wall
二、与命令相关的命令:
1、命令的路径查看及类型判断
内部命令:shell程序自带的基本命令,存储路径为shell/builtin
外部命令:不是内部命令的命令,存储路径一般为usr/bin/
type:若该命令是命令别名,显示原命令名信息,不会显示出路径
which:显示命令的路径,若命令为命令别名,会将原命令信息一并显示。
whereis: 比which更详细,显示命令的二进制程序、源码文件以及帮助手册的路径。(但不会显示该命令是否是命令别名。)
which --skip-alias:禁止列出别名
2、命令的帮助
内部命令:
help COMMAND
外部命令:
--help/-help:命令自带的简单帮助
COMMAND --help/-h
man:命令手册页
man COMMAND
man包括: man1, ..., man9,分别对应存储不同的文件
man1: 用户命令;man2: 系统调用; man3:C库调用;man4: 设备文件及特殊文件;
man5: 配置文件格式;man6: 游戏;man7:杂项;man8: 管理命令;
man还可能存储其它路径:man命令的配置文件:/etc/man.config
Man文档查看的快捷操作方法:
Space: 向文件尾部翻一屏;
b: 向文件首部翻一屏;
d: 向文件尾部翻半屏;
u: 向文件首部翻半屏;
Return:向文件尾部翻一行;
k或y:向文件首部翻一行;
#: 快速转到第#行;
1G:回到第一行;
G:到最后一行;
q: 退出;
man文档的文本搜索:
/keyword:从当前位置向尾部搜索
?keyword:从当前位置向首部搜索
n:按与命令方向相同查看
N:按与命令方向相反查看
info:仅在man手册无法提供足够的可用帮助信息时才使用
info COMMAND
3、命令的命令历史
命令本身的缓存记录
history:按顺序显示此前至本次使用的命令的列表
history #:显示此前至本次使用的最近#条命令的列表
history -d#:删除历史中指定的第#条命令(后面的一次上移)
history -a 文件路径:将本次历史缓存区的命令保存至指定文件中
history -c:清空历史命令
命令的路径的缓存记录
hash:显示缓存的命令的路径及调用次数的列表
hash -d name:清除name对应命令的缓存路径
hash -r:清空缓存的命令路径
4、命令的调用
调用过去执行过的命令:
!#:调用历史中的第#条命令;
!!: 重复执行上一条命令
!string:调用历史中最近一个以string开头的命令;
调用过去执行过的命令的最后一个参数:(以上个执行的命令的最后一位参数作为命令输入执行,并显示出结果)
!$:
ESC, .
Alt+.
4、命令的别名
alias: 查看所有已经定义别名;
alias NAME=COMMAND:定义别名;(重启虚拟机后该操作失效)
(若命令有空格则需要加‘’,ralias NAME=‘COMMAND’)
如果别名同原命令名,想直接执行原命令,则需使用\COMMAND
unalias NAME: 撤消命令别名;
unalias -a:撤销所有定义过的命令别名
5、命令的补全
Tab键:查找以用户输入的字符串开头的命令
如果惟一:直接补全;
否则:两次Tab,可列出全部以输入的字符串开头的命令;
6、命令行展开
~: 展开为当前用户的主目录;
~USERNAME:展开为指定用户的家目录;(管理员可用)
{}:可承载一个以逗号分隔的列表,并其展开为多个路径;
/var/{log,cache,run} = /var/log /var/cache /var/run
A/{m,n}=A/m,A/n
B/{m,n}/{x,y}=B/{m/{x,y},n/{x,y}}=B/mx,B/my,B/nx,B/ny
7、 命令的执行结果状态,
bash使用特殊变量$?保存最近一条命令的状态结果;
程序的执行结果有两种:
程序的返回值;(我们看到的输出结果)
程序的状态结果;(表示输入的指令是否正确,用echo $?查看)
成功:0
失败:1-255
要查看执行是否正确,必须立即执行echo $?命令(表示上一条输入的整条指令是否正确)
8、命令的引用
bash支持三类引用
强引用:‘’
弱引用:“”
命令引用 :``(键盘左上角与~同一位置的``),$()
实现命令引用(引用一个命令的执行结果,而非命令本身)
(注意: file $(ls /var) 的执行结果一样)
命令的组合键
Ctrl+l:清屏
Ctrl+a: 切换至命令行首
Ctrl+e:切换至命令行尾
Ctrl+c:取消命令执行
Ctrl+u:删除光标所在处至行首的内容;
Ctrl+k: 删除光标所在处至行尾的内容;
三、与路径有关的命令
路径的基名
basename 路径:只显示路径的基名
basename 路径 .txt::只显示路径基名,但不显示基名的后缀
路径的目录名
dirname 路径:显示指定路径下的目录名
路径补全
把用户给出的路径字符串当前路径起始,并在其指定的上级目录下搜索以指定的字符串开头的文件名;
如果惟一:直接补全;
否则:连续两次Tab键,可列出全部;
四、与目录相关的命令
当前工作目录的查看
pwd:显示当前工作目录
echo $PWD:显示当前工作目录
echo $OLDPWD :显示当前目录的上级目录
目录的切换
cd命令是一个特殊命令,因为它既有内部命令的特性,也有外部命令的特性
cd ~:切换至当前用户的主(家)目录
cd :切换至当前用户的主(家)目录
cd ~USERNAME:切换至指定用户的家目录(只有管理员使用有权限)
cd 目录:切换至指定工作目录
cd -: 回到上一次所在目录(可实现当前目录与上次所在目录之间反复切换)
目录的复制
cp -r A B:将A目录复制至B目录
目录的创建和删除
创建目录(其实创建的是基名)
mkdir 目录:创建目录
mkdir -p:创建父目录
mkdir -v: 显示创建过程
删除目录
rmdir 目录:删除目录(只能删除空目录)
rm -r 目录:删除目录及目录下的文件(有提示确认是否删除)
(rm -r /tmp或者/tmp/都是表示删除包括tmp在内的整个目录及里面的文件)
rm -rf 目录:直接删除目录及目录下的文件(没有提示)
目录的显示
tree
tree [OPTION]... [DIR]
-d:只显示层级目录类型的文件;
-L level: 只显示几个层级;
五、与文件相关的命令
文件类型的查看
file 文件目录:查看指定文件内容的类型(文件格式)
(ASCII txt表示文件格式为文本类型文件)
文件的创建
touch 文件:创建一个以该文件命名的空文件
文件内容及属性的查看命令
ls是list的缩写
ls 目录:显示指定目录下的文件及子目录列表
ls :显示当前目录下的文件及子目录列表
ls -l : 使用长格式显示
drwxr-xr-x 1 root root 8 Aug 23 08:47 .cache
d: 文件类型
rwxr-xr-x:权限,mode
1:文件被硬链接的次数
root: owner,属主;
root: group, 属组
8:size,默认为字节
Aug 23 08:47 修改时间戳
.cache:文件名
ls -d:显示目录自身属性,一般与-l一起使用
ls -h: human-readable
ls -a:显示所有文件,包括.开头的隐藏文件
.: 表示当前目录
..: 表示父目录
ls -r: reverse,逆序显示
ls -R: recusive,递归
stat :查看文件本身的状态、数据信息
wc:word counts 显示文件内容的行数、单词数、字符字节数
wc -l: 显示行数
wc -w: 显示单词数
cut:将文本内容按字段剪贴并按字段显示出来(相当于按列显示)
-d’’: 指明分隔符
-d‘ ‘:按一个空格分段
-d’:’:按:分段
-f:指明要显示的字段
- f#: 显示第#段
- f#-#:显示第#-#段(1-3:显示1-3段)
- f#,#:显示第#,#段(1,3,7:显示第1段、第3段、第7段)
cut -d’’ -f# 文件:以’’里面的内容为分隔符显示文件第#段内容(分隔符必须是文件中存在的且用来分割文件字段的符号)
sort命令:排序(从原文件中把内容抽取出来按默认顺序进行排序后显示出来的工具,相当于exce的排序)
sort 文件:将文件按默认顺序排序后显示出来(默认顺序:ASCII码中字符的大小由小至大的顺序)
sort排序后:
sort -r:按默认顺序的逆序显示
sort -f::忽略字符大小写
sort -u: 按默认顺序排序后去重
sort -t分隔符 -k# 文件:按分隔符划分字段以第#段的内容按默认顺序排序显示出来
sort -t分隔符 -k# -n 文件:按分隔符划分字段以第#段的内容按数值从小到大的顺序排序后显示出来
-t CHAR: 指明分隔符
-k #: 字段
-n: 表示以数值大小排序
uniq命令:
uniq 文件:将文件中连续重复出现的行进行除重后显示出来
uniq -c 文件: 显示文件连续重复出现的行及每行重复的次数;
uniq -d 文件: 只显示文件中重复过的行;
uniq -u 文件: 只显示文件不曾重复的行;
文本类型文件的内容查看的命令:
cat,:查看文本类型文件的内容,不支持翻屏,不适合查看较长内容或多个文件内容
cat -n:显示行号(相当于给输出结果加序列号,并不是对内容进行排序)
cat -e=cat -vE:显示行结束符$和非打印字符
-E: 显示行结束符$
-v:显示非打印字符
tac命令:显示与cat命令结果顺序相反的结果
more,less都支持翻屏查看
more:支持前后翻屏查看,但当翻到文件尾部后将无法再向前翻屏
more -d: 显示翻页有退出提示
快捷键:
Space: 向后一屏;
Enter: 向后一行;
b: 向前一屏;
q:退出
less:与more唯一不同的是less支持前后来回翻屏查看
其文本查看快捷键与man命令相同,同时也支持关键字收缩
文本搜索:
/KEYWORD
?KEYWORD
快捷键查看搜索结果:
n: 显示与命令方向相同的下一个;
N:显示与命令方向相反的前一个;
head和tail:(按行显示内容)查看文件的指定行的内容,一次只能查看一个文件。
head 文件:显示文件前10行内容
head -n #:(标准书)显示文件前#行的内容
head -#: tail -n#的简写(一般不采用)
head -c #: 显示前#个字节
tail 文件:显示文件的后10行内容
tail -n #:标准书写显示文件后#行的内容
tail -#:tail -n#的简写(一般不采用)
tail -c #: 显示后#个字节
tail -f: follow跟踪并显示文件新追加的内容而不用退出
nano:文本内容编辑器
快捷键:
Ctrl+O:保存 Ctrl+X:退出
Ctrl+Y:前一页 Ctrl+V:后一页
Ctrl+W :搜索关键字
文件的时间戳管理工具:
每个文件都有三个时间戳:
atime: 文件最近一次被访问的时间;
mtime: 文件最近一次被“修改”的时间;(修改:内容改变)
ctime:文件最近一次被“改变”的时间;(改变:属性发生改变)
touch 文件:更新时间戳至当前时间;(若文件不存在,则会自动创建一个以该文件命名的空文件)
touch -a: 只更新atime
touch -m: 只更新mtime
注意:atime或mtime发生改变,必定会导致ctime改变
touch -t STAMP:
[[CC]YY]MMDDhhmm[.ss]
touch -c 文件: 不创建空文件(文件不存在时不自动创建)
文件管理命令:
cp:copy的缩写,复制命令(复制并粘贴文件)
复制一个文件:cp [OPTION]... [-T] SOURCE DEST
cp SRC DEST
SRC是文件:
如果DEST不存在:新建目标文件,并将SRC内容复制到目标文件;
(新建文件并复制粘贴内容)
如果DEST存在:
如果DEST是文件:用SRC的内容覆盖至DEST文件中;(复制粘贴内容)
如果DEST是目录:在DEST目录中新一个与原文件同名的文件,将SRC内容复制到新建的同名的目标文件中;(复制粘贴文件)
(若DEST目录存在一个名为SRC的文件,其内容将被覆盖,)
复制多个文件:目标必须是目录
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
cp SRC... DEST:
如果DEST不存在:
是错误的;
如果DEST存在:
如果DEST是文件:错误;
如果DEST是目录:将原文件复制粘贴到目标目录
常用选项:
-r, -R: 递归复制;(复制目录)
-d: 不跟踪符号链接指向的文件;(保留符号链接文件的本身属性)(不复制符号链接指向的文件,复制符号链接文件)
cp --preserve[=ATTR_LIST]:选择性的复制原文件的某些权限
ATTR_LIST包括:mode, ownership, timestamps
context, links, xattr, all
-a: -dR --preseve=all(备份使用)
-i: interactive提醒是否覆盖目标文件内容(管理员用户是默认提醒的)
-f: force:不提示,直接覆盖目标文件内容
-v: 显示过程
mv: move, 移动文件(剪贴文件)与cp的格式一致
移动一个文件:mv [OPTION]... [-T] SOURCE DEST
mv SRC DEST:
SRC是文件:
如果DEST不存在:新建目标文件,并将SRC剪贴到目标文件;
如果DEST存在:
如果DEST是文件:用SRC的内容剪贴覆盖至DEST文件中;
如果DEST是目录:在DEST目录中新建一个与原文件同名的文件,将SRC内容剪贴到新建的同名的目标文件中;
移动多个文件:目标必须是目录
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
mv SRC... DEST:
如果DEST不存在:
是错误的;
如果DEST存在:
如果DEST是文件:错误;
如果DEST是目录:将原文件剪贴到目标目录
常用选项:
-i:交互式
-f:
原文件和目标文件在同一目录下实现的是文件重命名
rm: remove移除命令
rm 文件:只删除文件(提示是否确认删除)
rm -f 文件:直接删除文件(不提示是否确认删除)
常用选项:
rm -i:每次删除都提醒
文本名“通配”(文件名、目录名的匹配)
*:匹配任意长度的任意字符;
?:匹配任意单个字符;
[]: 匹配指定范围内的任意单个字符;
[0-9] [a-z]
[^]:匹配范围外的任意单个字符;
[^a-b]
字符集合:
[:lower:]:小写字母的集合
[:upper:]:大写字母的集合
[:alpha:]:所有字母的集合
[:digit:]:所有数字的集合
[:space:]:空白字符的集合
[:punct:]:所有标点符号的集合
[:alnum:]:所有字母和数字的集合
IO重定向和管道
标准输入:keyboard, 0, /dev/stdin
标准输出:monitor, 1, /dev/stdout
标准错误输出:monitor, 2, /dev/stderr
I/O重定向:改变标准输入、标准输出、标准错误输出的位置
输出重定向:将命令的执行结果输出到指定的位置
标准输出重定向
>:覆盖重定向:将命令的执行结果的内容输出(保存)到指定文件中并进行内容覆盖(文件原内容不保留,被输出结果全部替换)
COMMAND > NEW_POS,
set -C:当重定向的目标文件存在,则禁止执行覆盖;
>|或者set +C:当覆盖重定向目标文件存在,允许覆盖
>>:追加重定向;将命令的执行结果的内容输出(保存)到指定文件中并进行内容追加(文件原内容保留,输出结果作为新的内容添加至文件)
COMMAND >> NEW_POS
标准错输出误重定向:
2>:覆盖
2>>:追加
同时重定向标准输出流和错误输出流:
将标准输出和标准错误输出定向至不同文件:
COMMAND > /path/to/file.out 2> /path/to/file.err
将标准输出和标准错误输出定向至同一以文件
COMMAND > /path/to/file.out 2>&1
COMMAND &> /path/to/file.out
输入重定向:
<:改变标准输入的位置(某些特殊命令才会用到,如:tr命令)
tr命令:转换或删除字符
tr A B:将输入的字符中包含在A范围内的内容对位替换为B范围内的内容并输出结果
如tr ‘a-z’ ‘A-Z’:将输入的字符中包含在a-z范围内的内容对位替换为A-Z范围中的内容并输出结果
tr -d A: 将输入的字符中包在含A范围内的内容删除并输出结果
tr A B < 文件C:将文件C中出现包含在A范围内的内容对位替换为B范围内的内容并输出结果
tr A B < 文件 C > 文件D:将文件C中出现包含在A范围内的内容对位替换为B范围内的内容并将结果覆盖输出至文件D 中
tr A B < 文件 C >> 文件D:将文件C中出现包含在A范围内的内容对位替换为B范围内的内容并将结果追加输出至文件D 中
Here Document:<<(表示此处生成文档E,一般与EOF连用)
cat >> 文件A << EOF
此处输入字符
EOF
表示将输入的字符生成文档保存至文件A中并显示出来
管道:(同时执行多个命令)
COMMAND1 | COMMAND2 | ...:将前一个命令的输出结果作为后一个命令的输入信息
如: cd /tmp | ls
原文地址:http://yunweidiandian.blog.51cto.com/4563709/1689675