Linux 常用命令汇总

1.默认保存历史命令(可用上下键翻看)

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 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

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 mtu 65536

inet127.0.0.1 netmask 255.0.0.0

inet6::1 prefixlen 128 scopeid 0x10

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/ \;

 

你可能感兴趣的:(Linux 常用命令汇总)