linux常用的命令解释
1.man命令的操作按键:
按键 |
用处 |
空格键 |
向下翻一页。 |
[Page Down] |
向下翻一页。 |
[Page Up] |
向上翻一页。 |
[HOME] |
直接前往首页。 |
[END] |
直接前往尾页。 |
/关键词 |
从上至下搜索某个关键词,如"/linux"。 |
?关键词 |
从下至上搜索某个关键词,如"?linux"。 |
n |
定位到下一个搜索到的关键词。 |
N |
定位到上一个搜索到的关键词。 |
q |
退出帮助文档。 |
参数 |
作用 |
-m=MODE |
默认的文件目录权限,如"-m 755" |
-p |
连续创建多层目录(若文件夹已存在则忽略) |
-v |
显示创建的过程 |
2.默认保存历史命令(可用上下键翻看);命令仅需输入前几位就可以用tab键补全
3.echo命令用于在终端显示字符串或变量,格式为:“echo [字符串 | 变量]”。
将echo命令的字符串输出到终端:
[root@linuxprobe~]# echo Linuxprobe.Com
Linuxprobe.Com
用echo命令查看SHELL变量的值(前面有$符号):
[root@linuxprobe~]# echo $SHELL
/bin/bash
查看本机主机名:
[root@linuxprobe~]# echo $HOSTNAME
Linuxprobe.Com
4.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 | 完整的年份 |
查看当前的系统时间:
[root@linuxprobe~]# date
MonAug 24 16:11:23 CST 2015
按照”年-月-日 小时:分钟:秒”的格式:
[root@linuxprobe~]# date "+%Y-%m-%d %H:%M:%S"
2015-08-2416:29:12
设置系统时间为2015年9月1日8点半:
[root@linuxprobe~]# date -s "20150901 8:30:00"
TueSep 1 08:30:00 CST 2015
查看当前系统时间:
[root@linuxprobe~]# date
TueSep 1 08:30:01 CST 2015
查看本地系统时区:
[root@linuxprobe~]# date "+%Z"
CST
查看星期几:
[root@linuxprobe~]# date "+%A"
Tuesday
输入当前是上午还是下午:
[root@linuxprobeDesktop]# date "+%p"
AM
判断今天是一年中的第几天:
[root@linuxprobe~]# date "+%j"
244
5.reboot命令用于重启系统(仅root用户可以使用),格式为:”reboot”。
重启计算机:
[root@linuxprobe~]# reboot
6.wget命令用于使用命令行下载网络文件,格式为:“wget [参数] 下载地址”。
参数 | 作用 |
---|---|
-b | 后台下载模式。 |
-O | 下载到指定目录。 |
-t | 最大尝试次数。 |
-c | 断点续传 |
-p | 下载页面内所有资源,包括图片、视频等。 |
-r | 递归下载 |
首先需要配置您的Linux系统能够正常登入互联网,然后使用wget命令下载由《Linux就该这么学》提供的红帽RHEL7系统镜像:
[root@linuxprobe ~]# wget http://www.linuxprobe.com/Tools/RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
--2015-09-01 18:25:24-- http://www.linuxprobe.com/Tools/RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
Resolving www.linuxprobe.com... 106.185.25.197
Connecting to www.linuxprobe.com|106.185.25.197|:80... connected.
Saving to: 'RHEL-server-7.0-x86_64-LinuxProbe.Com.iso'
100%[====================================>] 3,743,416,320 1.82M/s in 32m 27s
2015-09-01 18:57:51 (1.83 MB/s) - 'RHEL-server-7.0-x86_64-LinuxProbe.Com.iso' saved [3743416320/3743416320]
递归下载《Linux就该这么学》的整站页面与所有资料,下载完成后会在当前目录中保存成名为”www.linuxprobe.com“的目录:
[root@linuxprobe ~]# wget -r -p http://www.linuxprobe.com
--2015-09-01 18:31:41-- http://www.linuxprobe.com/
Resolving www.linuxprobe.com... 106.185.25.197
Connecting to www.linuxprobe.com|106.185.25.197|:80...connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `www.linuxprobe.com/index.html'
7.ifconfig用于获取网卡配置与网络状态等信息:格式为”ifconfig [网络设备] [参数]”。
查看本机当前的网卡配置与网络状态等信息:
[root@linuxprobe~]# ifconfig
eno16777728:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet192.168.10.10 netmask 255.255.255.0 broadcast 192.168.10.255
inet6fe80::20c:29ff:fe9c:6373 prefixlen 64 scopeid 0x20<link>
ether00:0c:29:9c:63:73 txqueuelen 1000 (Ethernet)
RXpackets 61 bytes 6612 (6.4 KiB)
RXerrors 0 dropped 0 overruns 0 frame 0
TXpackets 32 bytes 4511 (4.4 KiB)
TXerrors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo:flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet127.0.0.1 netmask 255.0.0.0
inet6::1 prefixlen 128 scopeid 0x10<host>
looptxqueuelen 0 (Local Loopback)
RXpackets 2 bytes 140 (140.0 B)
RXerrors 0 dropped 0 overruns 0 frame 0
TXpackets 2 bytes 140 (140.0 B)
TXerrors 0 dropped 0 overruns 0 carrier 0 collisions 0
8.free命令用于显示当前系统中内存的使用量情况,格式为:“free [-m/-g]”。
以m为单位显示当前系统中内存的使用量情况:
[root@linuxprobe~]# free -m
总计内存量 | 已用量 | 可用量 | 进程共享的内存量 | 磁盘缓存的内存量 | 缓存的内存量 | |
---|---|---|---|---|---|---|
total | used | free | shared | buffers | cached | |
Mem: | 1483 | 885 | 598 | 9 | 0 | 255 |
-/+ buffers/cache: | 628 | 855 | ||||
Swap: | 2047 | 0 | 2047 |
9.who命令用于查看当前登入主机的用户情况,格式为:”who [参数]”。
查看当前登入主机用户的情况:
[root@linuxprobe~]# who
登陆的用户名 | 终端设备 | 登陆到系统的时间 |
---|---|---|
root | :0 | 2015-08-24 17:52 (:0) |
root | pts/0 | 2015-08-24 17:52 (:0) |
10.pwd命令用于显示当前的工作目录,格式为:“pwd [选项]”。
参数 | 作用 |
---|---|
-P | 显示真实路径。(即非快捷链接的地址) |
查看当前的工作路径:
[root@linuxprobeetc]# pwd
/etc
11.cd命令用于切换工作路径,格式为:“cd[目录名称]”。
参数 | 作用 |
---|---|
- | 切换到上一次的目录,如“cd -” |
~ | 切换到“家目录”,如"cd ~" |
~username | 切换到其他用户的家目录,如"cd ~teak" |
.. | 切换到上级目录,如"cd .." |
切换进/etc目录中:
[root@linuxprobe~]# cd /etc
切换进/bin目录中:
[root@linuxprobeetc]# cd /bin
返回上级目录(即/etc目录):
[root@linuxprobebin]# cd -
/etc
返回用户自己的家目录:
[root@linuxprobeetc]# cd ~
[root@linuxprobe~]#
12.ls命令用于查看目录中有那些文件,格式为:“ls [选项] [文件] ”。
查看当前目录下有那些文件(长格式):
[root@linuxprobeetc]# ls -al
参数 | 作用 |
---|---|
-a | 查看全部文件(包括隐藏文件) |
-d | 仅看目录本身 |
-h | 易读的文件容量(如k,m,g) |
-l | 显示文件的详细信息 |
查看/etc目录中有那些文件:
[root@linuxprobe~]# ls /etc
abrtgss printcap
adjtimegssproxy profile
aliasesgtk-2.0 profile.d
aliases.dbgtk-3.0 protocols
alsahba.conf pulse
alternativeshost.conf purple
anacrontabhostname qemu-ga
asound.confhosts qemu-kvm
at.denyhosts.allow radvd.conf
………省略部分文件………
查看/etc目录的权限与属性:
[root@linuxprobe~]# ls -ld /etc
drwxr-xr-x.132 root root 8192 Jul 10 10:48 /etc
追加-h参数,以K/M/G为单位显示容量:
[root@linuxprobe~]# ls -ldh /etc
drwxr-xr-x.132 root root 8.0K Jul 10 10:48 /etc
13.
cat命令用于查看纯文本文件(较短的),格式为:“cat [选项] [文件]”。
查看文本文件:
[root@linuxprobe~]# cat 文件名
参数 | 作用 |
---|---|
-n | 显示行号 |
-b | 显示行号(不包括空行) |
-A | 显示出“不可见”的符号,如空格,tab键等等 |
more命令用于查看纯文本文件(较长的),格式为:“more [选项] 文件”。
查看文本文件:
[root@linuxprobe~]# more 文件名
参数 | 作用 |
---|---|
-数字 | 预先显示的行数(默认为一页) |
-d | 显示提示语句与报错信息 |
14.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] |
15.mkdir用于创建空白的文件夹,格式为:“mkdir[选项] 目录”。
创建文件夹:
[root@linuxprobe~]# mkdir 文件夹名
参数 | 作用 |
---|---|
-m=MODE | 默认的文件目录权限,如"-m 755" |
-p | 连续创建多层目录(若文件夹已存在则忽略) |
-v | 显示创建的过程 |
创建一个名字叫linuxprobe的目录:
[root@linuxprobe~]# mkdir linuxprobe
使用ls命令查看该目录的权限属性等信息:
[root@linuxprobe~]# ls -ld linuxprobe/
drwxr-xr-x.2 root root 6 Aug 24 19:25 linuxprobe/
还记得刚刚用cd命令进入linuxprobe目录吗?这里是个小技巧,变量!$或(键盘按键)代表上一条命令的参数。
[root@linuxprobe~]# cd !$
cdlinuxprobe
pwd命令也是刚刚学习过的,用于显示当前的工作路径。
[root@linuxprobelinuxprobe]# pwd
/root/Desktop/linuxprobe
一次创建5个目录a/b/c/d/e:
[root@linuxprobelinuxprobe]# mkdir -p a/b/c/d/e
查看目录的属性,验证是否成功:
[root@linuxprobelinuxprobe]# ls -ld a/b/c/d/e/
drwxr-xr-x.2 root root 6 Aug 29 10:16 a/b/c/d/e/
16.cp命令用于复制文件或目录,格式为:“cp[选项] 源文件 目标文件”。
复制命令的三种情况:
目标文件是一个目录,会将源文件复制到该目录中。
目标文件是一个文件,会将源文件覆盖该文件。
目标文件不存在,将会复制源文件并修改为目标文件的名称(重命名)。
参数 | 作用 |
---|---|
-p | 保留原始文件的属性 |
-d | 若对象为"链接文件",则保留该"链接文件"的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr(p,d,r为上述的参数) |
创建一个名为install.log的文件:
[root@linuxprobe~]# touch install.log
将install.log复制为x.log:
[root@linuxprobe~]# cp install.log x.log
查看到确实出现了文件x.log
[root@linuxprobe~]# ls
install.logx.log
17.mv命令用于移动文件或改名,格式为:“mv[选项] 文件名 [目标路径|目标文件名]”。
将文件aaa重命名为bbb:
[root@linuxprobe~]# mv aaa bbb
18.rm命令用于删除文件或目录,格式为:“rm[选项] 文件”。
删除普通文件并提示确认信息:“rm 文件名”
删除普通文件或目录文件,不提示:“rm -rf 文件或目录名”
参数 | 作用 |
---|---|
-f | 忽略警告信息 |
-i | 删除前先询问 |
-r | 删除文件夹 |
查看当前目录下的文件:
[root@linuxprobe~]# ls
install.logx.log
删除install.log文件,输入”y”即确认:
[root@linuxprobe~]# rm install.log
rm:remove regular empty file ‘install.log’? y
删除x.log文件而无需确认:
[root@linuxprobe~]# rm -rf x.log
Linux系统中还有一个rmdir命令,它不同于rm -rf命令会删除一切,而是仅删除空目录,遇到目录内有文件时则报错。
19.dd命令用于指定大小的拷贝的文件或指定转换文件,格式为:“dd [参数]”。
参数 | 作用 |
---|---|
if | 输入的文件名称。 |
of | 输出的文件名称。 |
bs | 设置每个“块”的大小。 |
count | 设置要拷贝“块”的个数。 |
conv=ucase | 将字母从小写转换为大写。 |
conv=lcase | 把字符从大写转换为小写。 |
将光驱设备拷贝成镜像文件:
[root@linuxprobe~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
7311360+0records in
7311360+0records out
3743416320bytes (3.7 GB) copied, 370.758 s, 10.1 MB/s
生成一个560m的空白文件:
[root@linuxprobe~]# dd if=/dev/zero of=560_file count=1 bs=560M
1+0records in
1+0records out
587202560bytes (587 MB) copied, 27.1755 s, 21.6 MB/s
将硬盘的MBR信息拷贝出来:
[root@linuxprobe~]# dd if=/dev/sda of=sda_image count=1 bs=512K
1+0records in
1+0records out
524288bytes (524 kB) copied, 0.0449481 s, 11.7 MB/s
20.passwd命令用于修改用户的密码,格式为:“passwd[选项] [用户名]”。
修改当前用户的密码:“passwd”
修改其他用户的密码:“passwd 其他用户名”
参数 | 作用 |
---|---|
-l | 锁定用户禁止其登陆 |
-u | 解除锁定,允许用户登陆。 |
--stdin | 允许从标准输入修改用户密码,如(echo "NewPassWord" | passwd -stdin Username) |
-d | 使帐号无密码 |
-e | 强制用户下次登陆时修改密码 |
-S | 显示用户的密码状态 |
21.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@linuxprobe~]# 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@linuxprobeost ~]# mkdir /root/etc
开始解压etc.tar.gz文件:
[root@linuxprobe~]# tar xzvf etc.tar.gz -C /root/etc
21.grep命令用于对文本进行搜索,格式为:“grep[选项] [文件]”。
搜索某个关键词:“grep 关键词 文本文件”
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当作文本文件(text)来搜索 |
-c | 仅显示找到的次数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择——仅列出没有“关键词”的行。 |
搜索在/etc/passwd中”/sbin/nologin”出现的行,找出系统中不允许登陆的用户。
[root@linuxprobe~]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
………………………………
找出文件“/usr/share/gedit/plugins/snippets/docbook.xml”中所有包含entry的行并输出到/root/lines:
答案模式:grep entry /usr/share/gedit/plugins/snippets/docbook.xml>> /root/lines
22.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@linuxprobe~]# find /etc -name "host*" -print
/etc/avahi/hosts
/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/selinux/targeted/modules/active/modules/hostname.pp
/etc/hostname
搜索整个系统中所有包含SUID的文件(因SUID的数字表示法是4,而减号表示只要包含即可)。
[root@linuxprobe~]# find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/su
/usr/bin/umount
/usr/bin/passwd
/usr/sbin/userhelper
/usr/sbin/usernetctl
………………………………
找出用户linuxprobe的文件并复制到/root/findresults目录。
重点是”-exec {} \;”其中的{}代表find命令搜索出的文件,记住结尾必须是\;
[root@linuxprobe~]# find / -user linuxprobe -exec cp -arf {} /root/findresults/ \;