命令解释
命令名称 [命令参数] [命令对象]
注意:命令名称、命令参数、命令对象之间请用空格键分隔。
命令对象一般是指要处理的目标(普通文件/目录文件/用户等等)
命令的参数可以选用长格式(完整的选项名称)也可选用短格式(单个字母的缩写),分别用”—“与”–“做前缀。
长格式如:man –help
短格式如:man -h
1、man命令
可用于查看命令的具体可用参数与对象格式等,当遇到一个陌生的命令想查看如何使用它的参数就可以使用man命令,输入man man可查看man命令的用法
man命令的操作按键:
按键 |
用处 |
空格键 |
向下翻一页 |
向下键[Page Dn] |
向下翻一页 |
向上键[Page Up] |
向上翻一页 |
向左键[HOME] |
直接前往首页 |
向右键[END] |
直接前往尾页 |
/关键词 |
从上至下搜索某个关键词,如"/linux" |
?关键词 |
从下至上搜索某个关键词,如"?linux" |
n |
定位到下一个搜索到的关键词 |
N |
从下至上搜索某个关键词,如"?linux" |
q |
退出帮助文档 |
2、echo命令用于在终端显示字符串或变量,格式为:“echo [字符串 | 变量]”
[root@liuxuanke-hbza ~]# echo liuxuanke
Liuxuanke
用echo命令查看SHELL变量的值(前面有$符号):
[root@liuxuanke-hbza ~]# echo $SHELL
/bin/bash
查看本机主机名:
[root@liuxuanke-hbza ~]# echo $HOSTNAME
liuxuanke-hbza
3、date命令用于显示/设置系统的时间或日期,格式为:”date [选项] [+指定的格式]”。
强大的date命令能够按照指定格式显示系统的时间或日期,只需键入”+”号开头的字符串指定其格式,详细格式如下:
参数 |
作用 |
%t |
跳格[TAB键] |
%H |
小时(00-23) |
%I |
小时(01-12) |
%M |
分钟(00-59) |
%S |
秒(00-60) |
%X |
相当于%H:%M:%S |
%Z |
显示时区 |
%p |
显示本地AM或PM |
%A |
星期几 (Sunday-Saturday) |
%a |
星期几 (Sun-Sat) |
%B |
完整月份 (January-December) |
%b |
缩写月份 (Jan-Dec) |
%d |
日(01-31) |
%j |
一年中的第几天(001-366) |
%m |
月份(01-12) |
%Y |
完整的年份 |
查看当前的系统时间:date
按照”年-月-日 小时:分钟:秒”的格式:date "+%Y-%m-%d %H:%M:%S"
设置系统时间为2015年9月1日8点半:date -s "20150901 8:30:00"
查看本地系统时区: date "+%Z"
查看星期几:date "+%A"
输入当前是上午还是下午:date "+%p"
判断今天是一年中的第几天: date "+%j"
4、reboot命令用于重启系统(仅root用户可以使用),格式为:”reboot”。
重启计算机:
[root@liuxuanke-hbza ~]# reboot
5、ifconfig用于获取网卡配置与网络状态等信息:格式为”ifconfig [网络设备] [参数]”。
查看本机当前的网卡配置与网络状态等信息:
[root@liuxuanke-hbza ~]# ifconfig
6、uname命令用于查看系统内核版本等信息,格式为:“uname [-a]”。
查看系统的内核名称、内核发行版、内核版本、节点名、硬件名称、硬件平台、处理器类型、操作系统等信息:
[root@liuxuanke-hbza ~]# uname -a
顺便说下,如果您想查看系统详细版本信息就看redhat-release文件:
[root@liuxuanke-hbza ~]# cat /etc/redhat-release
7、free命令用于显示当前系统中内存的使用量情况,格式为:“free [-m/-g]”。
以m为单位显示当前系统中内存的使用量情况:
[root@liuxuanke-hbza ~]# free -m
8、who命令用于查看当前登入主机的用户情况,格式为:”who [参数]”。
查看当前登入主机用户的情况:
[root@liuxuanke-hbza ~]# who
9、last命令用于查看所有系统的登入记录,格式为:”last [参数]”。
查看系统的登入记录:
[root@liuxuanke-hbza ~]# last
10、history命令用于显示历史执行过的命令,格式为:“history [-c]”。
查看当前用户在系统中执行过的命令:
[root@liuxuanke-hbza ~]# history
历史命令会被保存到用户家目录中的”.bash_history“文件中。Linux系统中以点(.)开头的文件均代表隐藏文件,一般会是系统文件。
[root@liuxuanke-hbza ~]# cat ~/.bash_history
清空该用户在本机中执行过命令的历史记录:
[root@liuxuanke-hbza ~]# history -c
history默认会保存1000条执行过的命令,若要修改可直接编辑/etc/profile文件的HISTSIZE值。
11、pwd命令用于显示当前的工作目录,格式为:“pwd [选项]”。
-P |
显示真实路径。(即非快捷链接的地址) |
查看当前的工作路径:
[root@liuxuanke-hbza ~]# pwd
12、cd命令用于切换工作路径,格式为:“cd [目录名称]”。
参数 |
作用 |
- |
切换到上一次的目录,如“cd -” |
~ |
切换到“家目录”,如"cd ~" |
~username |
切换到其他用户的家目录,如"cd ~teak" |
.. |
切换到上级目录,如"cd .." |
切换进/etc目录中:
[root@liuxuanke-hbza ~]# cd /etc
切换进/bin目录中:
[root@liuxuanke-hbza etc]# cd /bin
返回上级目录(即/etc目录):
[root@liuxuanke-hbza bin]# cd -
返回用户自己的家目录:
[root@liuxuanke-hbza etc]# cd ~
[root@liuxuanke-hbza ~]#
13、ls命令用于查看目录中有那些文件,格式为:“ls [选项] [文件] ”。
查看当前目录下有那些文件(长格式):
[root@liuxuanke-hbza etc]# ls -al
参数 |
作用 |
-a |
查看全部文件(包括隐藏文件) |
-d |
仅看目录本身 |
-h |
易读的文件容量(如k,m,g) |
-l |
显示文件的详细信息 |
查看/etc目录中有那些文件:
[root@liuxuanke-hbza ~]# ls /etc
查看/etc目录的权限与属性:
[root@liuxuanke-hbza~]# ls -ld /etc
追加-h参数,以K/M/G为单位显示容量:
[root@liuxuanke-hbza ~]# ls -ldh /etc
14、cat命令用于查看纯文本文件(较短的),格式为:“cat [选项] [文件]”。
查看文本文件:
[root@liuxuanke-hbza ~]# cat 文件名
参数 |
作用 |
-n |
显示行号 |
-b |
显示行号(不包括空行) |
-A |
显示出“不可见”的符号,如空格,tab键等等 |
15、more命令用于查看纯文本文件(较长的),格式为:“more [选项] 文件”。
查看文本文件:
[root@liuxuanke-hbza ~]# more 文件名
参数 |
作用 |
-数字 |
预先显示的行数(默认为一页) |
-d |
显示提示语句与报错信息 |
16、head命令用于查看纯文本文档的前N行,格式为:“head [选项] [文件]”。
查看文本文件前20行:
[root@liuxuanke-hbza ~]# head -n 20 文件名
参数 |
作用 |
-n 10 |
显示10行 |
-n -10 |
正常输出(如cat命令),但不显示最后的10行 |
17、tail命令用于查看纯文本文档的后N行,格式为:“tail [选项] [文件]”。
查看文本文件后20行:
[root@liuxuanke-hbza ~]# tail -n 20 文件名
参数 |
作用 |
-n 10 |
显示后面的10行 |
-f |
持续刷新显示的内容 |
18、wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。
参数 |
作用 |
-l |
只显示行数 |
-w |
只显示单词数 |
-c |
只显示字节数 |
统计当前系统中的用户个数:
[root@liuxuanke-hbza ~]# wc -l /etc/passwd
19、cut命令用于通过列来提取文本字符,格式为:“cut [参数] 文本”。
参数 |
作用 |
-d 分隔符 |
指定分隔符,默认为Tab。 |
-f |
指定显示的列数。 |
-c |
单位改为字符 |
获取当前系统中所有用户的名称:
参数作用:-d以”:”来做分隔符,-f参数代表只看第一列的内容。
[root@liuxuanke-hbza ~]# cut -d: -f1 /etc/passwd
获取root用户的默认SHELL解释器:
[root@liuxuanke-hbza ~]# grep ^root /etc/passwd | cut -d: -f 7
20、touch命令用于创建空白文件与修改文件时间,格式为:“touch [选项] [文件]”。
我们可以用“touch test”轻松的创建出一个名字为test的空白文档,对于在Linux中的文件有三种时间:
更改时间(mtime):内容修改时间(不包括权限的)
更改权限(ctime):更改权限与属性的时间
读取时间(atime):读取文件内容的时间
如果黑客执行了touch -d “2 days ago” test,便将访问与修改时间修改为了2天前(伪造了自己没有动过该文件的假象)。
参数 |
作用 |
-a |
近修改“访问时间”(atime) |
-m |
近修改“更改时间”(mtime) |
-d |
同时修改atime与mtime |
-t |
要修改成的时间[YYMMDDhhmm] |
21、mkdir用于创建空白的文件夹,格式为:“mkdir [选项] 目录”。
创建文件夹:
[root@liuxuanke-hbza ~]# mkdir 文件夹名
参数 |
作用 |
-m=MODE |
默认的文件目录权限,如"-m 755" |
-p |
连续创建多层目录(若文件夹已存在则忽略) |
-v |
显示创建的过程 |
创建一个名字叫lxk的目录:
[root@liuxuanke-hbza ~]# mkdir lxk
使用ls命令查看该目录的权限属性等信息:
[root@liuxuanke-hbza ~]# ls -ld lxk/
这里是个小技巧,变量!$或(键盘按键)代表上一条命令的参数。
[root@liuxuanke-hbza ~]# cd !$
pwd用于显示当前的工作路径。
[root@liuxuanke-hbza lxk]# pwd
一次创建5个目录a/b/c/d/e:
[root@liuxuanke-hbza lxk]# mkdir -p a/b/c/d/e
查看目录的属性,验证是否成功:
[root@liuxuanke-hbza lxk]# ls -ld a/b/c/d/e/
22、cp命令用于复制文件或目录,格式为:“cp [选项] 源文件 目标文件”。
复制命令的三种情况:
目标文件是一个目录,会将源文件复制到该目录中。
目标文件是一个文件,会将源文件覆盖该文件。
目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)。
参数 |
作用 |
-p |
保留原始文件的属性 |
-d |
若对象为"链接文件",则保留该"链接文件"的属性 |
-r |
递归持续复制(用于目录) |
-i |
若目标文件存在则询问是否覆盖 |
-a |
相当于-pdr(p,d,r为上述的参数) |
创建一个名为install.log的文件:
[root@liuxuanke-hbza ~]# touch install.log
将install.log复制为x.log:
[root@liuxuanke-hbza ~]# cp install.log x.log
查看到确实出现了文件x.log
[root@liuxuanke-hbza ~]# ls
23、mv命令用于移动文件或改名,格式为:“mv [选项] 文件名 [目标路径|目标文件名]”。
将文件a重命名为b:
[root@liuxuanke-hbza ~]# mv a b
24、rm命令用于删除文件或目录,格式为:“rm [选项] 文件”。
删除普通文件并提示确认信息:“rm 文件名”
删除普通文件或目录文件,不提示:“rm -rf 文件或目录名”
参数 |
作用 |
-f |
忽略警告信息 |
-i |
删除前先询问 |
-r |
删除文件夹 |
查看当前目录下的文件:
[root@liuxuanke-hbza ~]# ls
install.log x.log
删除install.log文件,输入”y”即确认:
[root@liuxuanke-hbza ~]# rm install.log
rm: remove regular empty file ‘install.log’? y
删除x.log文件而无需确认:
[root@liuxuanke-hbza ~]# rm -rf x.log
Linux系统中还有一个rmdir命令,它不同于rm -rf命令会删除一切,而是仅删除空目录,遇到目录内有文件时则报错。
25、passwd命令用于修改用户的密码,格式为:“passwd [选项] [用户名]”。
修改当前用户的密码:“passwd”
修改其他用户的密码:“passwd 其他用户名”
参数 |
作用 |
-l |
锁定用户禁止其登陆 |
-u |
解除锁定,允许用户登陆。 |
--stdin |
允许从标准输入修改用户密码,如(echo "NewPassWord" | passwd -stdin Username) |
-d |
使帐号无密码 |
-e |
强制用户下次登陆时修改密码 |
-S |
显示用户的密码状态 |
26、useradd命令用于创建新的用户,格式为:“useradd [选项] 用户名”。
参数 |
作用 |
-d |
指定用户的家目录(默认为/home/username) |
-D |
展示默认值 |
-e |
帐号有效截至日期,格式:YYYY-MM-DD. |
-g |
指定一个初始用户组(必须已存在) |
-G |
指定一个或多个扩展用户组 |
-N |
不创建与用户同名的用户组 |
-s |
指定默认的Shell |
-u |
指定用户的UID |
创建名为lxk的用户,并定义家目录路径、UID以及登陆解释器(不允许登陆):
[root@liuxuanke-hbza ~]# useradd -d /home/linux -u 8888 -s /sbin/nologin linuxprobe
查看lxk用户的基本信息:
[root@liuxuanke-hbza ~]# id lxk
uid=8888(lxk) gid=8888(lxk) groups=8888(lxk)
27、userdel命令用于删除用户所有表格,格式为:“userdel [选项] 用户名”。
删除用户与其家目录:
[root@linuxprobe ~]# userdel -d 用户名
参数 |
作用 |
-f |
强制删除用户,家目录与其相关文件 |
-r |
同时删除用户,家目录与其相关文件 |
28、usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”。
参数 |
作用 |
-c |
填写帐号的备注信息 |
-d -m |
-m与-d连用,可重新指定用户的家目录并自动旧的数据转移过去。 |
-e |
帐户到期时间,格式“YYYY-MM-DD” |
-g |
变更所属用户组 |
-G |
变更扩展用户组 |
-L |
锁定用户禁止其登陆系统 |
-U |
解锁用户,允许其登陆系统 |
-s |
变更默认终端 |
-u |
修改用户的UID |
29、tar命令用于对文件打包压缩或解压,格式为:“tar [选项] [文件]”。
打包并压缩文件:“tar -czvf 压缩包名.tar.gz 文件名”
解压并展开压缩包:“tar -xzvf 压缩包名.tar.gz”
参数 |
作用 |
-c |
创建压缩文件 |
-x |
解开压缩文件 |
-t |
查看压缩包内有那些文件 |
-z |
用Gzip压缩或解压 |
-j |
用bzip2压缩或解压 |
-v |
显示压缩或解压的过程 |
-f |
目标文件名 |
-p |
保留原始的权限与属性 |
-P |
使用绝对路径来压缩 |
-C |
指定解压到的目录 |
将/etc目录内文件打包并通过gzip格式压缩:
[root@liuxuanke-hbza ~]# tar czvf etc.tar.gz /etc
tar: Removing leading `/' from member names
/etc/
/etc/fstab
/etc/crypttab
/etc/mtab
/etc/fonts/
/etc/fonts/conf.d/
/etc/fonts/conf.d/65-0-madan.conf
/etc/fonts/conf.d/59-liberation-sans.conf
/etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf
/etc/fonts/conf.d/59-liberation-mono.conf
/etc/fonts/conf.d/66-sil-nuosu.conf
……………………………………
将etc.tar.gz解压到/root/etc目录中:
[root@liuxuanke-hbza ost ~]# mkdir /root/etc
开始解压etc.tar.gz文件:
[root@liuxuanke-hbza ~]# tar xzvf etc.tar.gz -C /root/etc
30、find命令用于查找文件,格式为:“find [查找路径] 寻找条件 操作”。
这里需要注意下find命令非常灵活导致参数非常复杂,这里不要求大家记住,用时来查即可。
对于常用搜索路径有几个小窍门:“~”代表用户的家目录,“.”代表当前目录,“/”代表根目录。
参数 |
作用 |
-name |
匹配名称 |
-perm |
匹配权限(mode为完全匹配,-mode为包含即可) |
-user |
匹配所有者 |
-group |
匹配所有组 |
-mtime -n +n |
匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n |
匹配访问文件的时间-n指n天以内,+n指n天以前 |
-ctime -n +n |
匹配修改权限的时间-n指n天以内,+n指n天以前 |
-nouser |
匹配无所有者的文件 |
-nogroup |
匹配无所有组的文件 |
-newer f1 !f2 |
匹配比文件f1新却比f2旧的文件 |
--type b/d/c/p/l/f |
匹配文件类型(块设备、目录、字符设备、管道、链接文件、文件文件) |
--size |
匹配文件的大小(+50k查找超过50k的文件,而-50k则代表查找小于50k的文件) |
-prune |
忽略某个目录 |
--exec {} \; |
后面可接对搜索到结果进一步处理的命令(下面会有演示) |
搜索在/etc/中所有以host开头的文件:
其中的”host*”表示所有以host开头的文件:
[root@liuxuanke-hbza ~]# find /etc -name "host*" -print