linux常用命令:

         文件系统:

1.文件名严格区分大小写

2.文件可以使用除 / 以外的任意字符、

3.文件名长度不能超过255字符

4..点开头的文件为隐藏文件

 

常用命令第一组

         pwd:printingworking directory

                            显示工作目录

演示:

[root@localhost ~]# pwd

/root

[root@localhost ~]#

 

常用命令第二组

         cd:changedirectory

                   切换目录

                   cd [ /PATH/TO/SOMEDIR(路径) ]

                   cd后面的路径可有可无,如果没有,则表示切换到家目录

演示:

[root@localhost ~]# cd /etc/sysconfig

[root@localhost sysconfig]# pwd

/etc/sysconfig

[root@localhost sysconfig]# cd

[root@localhost ~]# pwd

/root

[root@localhost ~]#

                   注意在bash中,~表示家目录

cd  ~:也表示切换到自己家目录

cd  ~用户名(USERNAME:切换到指定用户的家目录

cd-:当前目录与上一级目录循环切换。

         bash解释器中,有两个环境变量,每切换一下目录,这两个变量的值就发生变化。

所以pwd其实就是引用PWD这个变量值来显示。

                   PWD:当前工作目录

                   OLDOWD:上一次的工作目录

                                     我们可以用echo $来显示上面的两个变量的值。

                   ~]#echo $PWD  ~]#echo $OLDPWD

        

演示:

[root@localhost log]# pwd

/var/log

[root@localhost log]# echo $PWD

/var/log

[root@localhost log]# cd /etc/sysconfig

[root@localhost sysconfig]# pwd

/etc/sysconfig

[root@localhost sysconfig]# echo $PWD

/etc/sysconfig

[root@localhost sysconfig]# echo $OLDPWD

/var/log

[root@localhost sysconfig]#

演示:

[root@localhost ~]# cd  ~gentoo

[root@localhost gentoo]# pwd

/home/gentoo          //普通用户的家目录统一在/home目录下,而管理员家目录在/root

[root@localhost gentoo]#

注意:只有管理员才能切换到普通用户的家目录

 

上面cd 用的是绝对路径,我们也可以用相对路径。

演示:

[root@localhost ~]# cd /etc/sysconfig

[root@localhost sysconfig]# pwd

/etc/sysconfig

[root@localhost sysconfig]# cd ..

[root@localhost etc]# pwd

/etc

[root@localhost etc]# cd ../var/log

[root@localhost log]# pwd

/var/log

[root@localhost log]#

 

在这里讲到了绝对路径和相对路径,在这里  .  .. 使用很关键。

 

 

常用命令第三组

ls: list,列出指定目录下的内容

ls  [OPTION]...  [FILE]...

         选项:

                   -a:    显示所有目录和文件,包括隐藏文件和目录

                   -A显示隐藏文件和目录,但是除去 . ..

                   -l:      --long,长格式列表,即显示文件跟目录的详细属性信息

                   -S: 按文件大小排序(从大到小)

         drwxr-xr-x. 2 root root    4096 Jul 24 22:16 Desktop

解释

         d:文件类型,种类有:-,d,b,c,l,s,p

         rwxr-xr-x:

                   rwx:左三位,文件属主的权限;

                   r-x:中三位,文件数组的权限;

                   r-x:右三位,其他用户(非属主,属组)的权限。

         . 表示有隐藏属性

         2:数字表示文件被硬链接的次数

         root: 文件的属主

         root:文件的属组

         4096:数字表示文件的大小,单位是字节。

         Jul 24 22:16:文件最后一次被修改的时间。

         Desktop:文件名

                  

如上当用ls  -l 命令时,显示如上信息,最后才是文件或者目录的名称。

演示:

[root@localhost ~]# ls -l

total 3888

-rw-------. 1 root root    1484 Jul 24 21:03 anaconda-ks.cfg

-rw-------. 1 root root 4952064 Jul 2423:04 core.10718

drwxr-xr-x.2 root root    4096 Jul 24 22:16 Desktop

 

-h:--human-readable:对文件大小单位换算,但是换算后的结果可能会非精确值。

演示:

         [root@localhost~]# ls -lh

total 3.8M

-rw-------. 1 root root 1.5K Jul 24 21:03anaconda-ks.cfg

-rw-------. 1 root root 4.8M Jul 24 23:04core.10718

drwxr-xr-x. 2 root root 4.0K Jul 24 22:16Desktop

 

-d:查看目录自身属性,而非其内部的文件属性列表,并且与-l一起使用。

对比演示:

 

[root@localhost ~]# ls -l /var/log              //查看目录下文件以及目录的属性

total 5592

-rw-------. 1 root  root    2368 Jul 24 21:03 anaconda.ifcfg.log

-rw-------. 1 root  root   23380 Jul 24 21:03 anaconda.log

-rw-------. 1 root  root    43252 Jul 24 21:03 anaconda.program.log

-rw-------. 1 root  root  272759 Jul 24 21:03 anaconda.storage.log

 

[root@localhost ~]# ls -ld /var/log           //查看目录本身的属性,而非目录下文件或目录的属性

drwxr-xr-x. 14 root root 4096 Sep 18 21:12/var/log

[root@localhost ~]#

 

-r:--reverse 逆序显示

对比演示:

[root@localhost ~]# ls -l           //默认显示是按照文件或目录名称的开头第一个字母a-z升序

total 3888

-rw-------. 1 root root    1484 Jul 24 21:03 anaconda-ks.cfg

-rw-------. 1 root root 4952064 Jul 2423:04 core.10718

drwxr-xr-x. 2 root root    4096 Jul 24 22:16 Desktop

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Documents

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Downloads

-rw-r--r--. 1 root root   55348 Jul 24 21:02 install.log

-rw-r--r--. 1 root root   10608 Jul 24 20:59 install.log.syslog

drwxr-xr-x. 2 root root    4096Jul 24 21:58 Music

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Pictures

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Public

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Templates

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Videos

[root@localhost ~]# ls -lr                   //逆序显示

total 3888

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Videos

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Templates

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Public

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Pictures

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Music

-rw-r--r--. 1 root root   10608 Jul 24 20:59 install.log.syslog

-rw-r--r--. 1 root root   55348 Jul 24 21:02 install.log

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Downloads

drwxr-xr-x. 2 root root    4096 Jul 24 21:58 Documents

drwxr-xr-x. 2 root root    4096 Jul 24 22:16 Desktop

-rw-------. 1 root root 4952064 Jul 2423:04 core.10718

-rw-------. 1 root root    1484 Jul 24 21:03 anaconda-ks.cfg

[root@localhost ~]#

 

-R:--recursive递归显示

 

 

常用命令第四组

cat

cat - concatenate files and print on thestandard output(翻译:连接文件并且显示在标准输出上)

(concatenate ):文本文件内容查看工具,不能查看二进制文件

怎样确定文件是文本文件还是二进制文件?

用命令:

file

~]#file /etc/fstab

 

演示:

[root@localhost ~]# file /etc/fstab

/etc/fstab:ASCII text

[root@localhost ~]#

演示操作:

[root@localhost ~]# cat /etc/passwd

 

 [root@localhost~]# cat /etc/fstab

 

cat还有连接的功能,即将两个文件内容一并显示:

[root@localhost ~]# cat /etc/fstab

 

 [root@localhost ~]# cat /etc/fstab /etc/issue

 

#

# /etc/fstab

# Created by anaconda on Sun Jul 2420:43:09 2016

#

# Accessible filesystems, by reference, aremaintained under '/dev/disk'

# See man pages fstab(5), findfs(8),mount(8) and/or blkid(8) for more info

#

UUID=9178142b-aba1-42e8-a984-521da92da283/                       ext4    defaults        1 1

UUID=038bc1fd-9027-46c8-872d-bda4da62d67c/boot                   ext4    defaults        1 2

UUID=225e2fe0-5d7f-46b0-940a-c19a3d27f9a8/testdir                ext4    defaults        1 2

UUID=9566dc6f-05de-43ec-be5f-59d430a47766swap                    swap    defaults        0 0

tmpfs                  /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc   defaults        0 0

CentOSrelease 6.8 (Final)

Kernel\r on an \m

 

[root@localhost ~]#

 

-n:    给显示文件内容,统一加上行号源文件内容没有行号

[root@localhost ~]# cat -n /etc/fstab

-E显示行结束符$

[root@localhost ~]# cat -E /etc/fstab

    

常用命令第五组

tac

         文件文本查看工具:

                   tac/etc/fstab

                   tac/etc/passwd

tac [OPTION]... [FILE]...

         -n:    给显示的文本行编号

         -E显示行结束符$

对比演示:

[root@localhost ~]# cat /etc/fstab

 

#

# /etc/fstab

# Created by anaconda on Sun Jul 2420:43:09 2016

#

# Accessible filesystems, by reference, aremaintained under '/dev/disk'

# See man pages fstab(5), findfs(8),mount(8) and/or blkid(8) for more info

#

UUID=9178142b-aba1-42e8-a984-521da92da283/                       ext4    defaults        1 1

UUID=038bc1fd-9027-46c8-872d-bda4da62d67c/boot                   ext4    defaults        1 2

UUID=225e2fe0-5d7f-46b0-940a-c19a3d27f9a8/testdir                ext4    defaults        1 2

UUID=9566dc6f-05de-43ec-be5f-59d430a47766swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs  defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

[root@localhost ~]# tac /etc/fstab

proc                    /proc                   proc    defaults        0 0

sysfs                   /sys                    sysfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

UUID=9566dc6f-05de-43ec-be5f-59d430a47766swap                    swap    defaults        0 0

UUID=225e2fe0-5d7f-46b0-940a-c19a3d27f9a8/testdir                ext4    defaults        1 2

UUID=038bc1fd-9027-46c8-872d-bda4da62d67c/boot                   ext4    defaults        1 2

UUID=9178142b-aba1-42e8-a984-521da92da283/                       ext4    defaults        1 1

#

# See man pages fstab(5), findfs(8),mount(8) and/or blkid(8) for more info

# Accessible filesystems, by reference, aremaintained under '/dev/disk'

#

# Created by anaconda on Sun Jul 2420:43:09 2016

# /etc/fstab

#

 

[root@localhost ~]#

 

常用命令第五组

file

file  - determine file type (翻译:确定文件 类型)这个是确定文件内容的类型。

演示:

[root@localhost ~]# file /etc/fstab

/etc/fstab: ASCII text

[root@localhost ~]# file /etc/issue          //显示是文本文件

/etc/issue: ASCII text

[root@localhost ~]# file /bin/ls                 //显示是二进制文件

/bin/ls: ELF 64-bit LSB executable, x86-64,version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18,stripped

[root@localhost ~]#

 

常用命令第六组

echo:回显

         echo- display a line of text (翻译:显示一行文本)

语法:

echo [SHORT-OPTION]... [STRING]...

         STRING可以使用引号,单引号双引号均可以使用。

单引号:强引用,变量引用不会执行替换;

双引号:弱引用,变量引用会被替换。

演示:

[root@localhost ~]# echo $SHELL

/bin/bash

[root@localhost ~]# echo '$SHELL'

$SHELL

[root@localhost ~]# echo "$SHELL"

/bin/bash

[root@localhost ~]#

         语法:

 echo LONG-OPTION

演示:

[root@localhost ~]# echo "hello everyone"

hello everyone

[root@localhost ~]#

注意:变量引用的正规符号 ${ 变量名 }只是,花括号可以省略。

 

 

-n:不进行换行

演示:

[root@localhost ~]# echo -n "helloeveryone"

hello everyone[root@localhost ~]#

 

-e:让转义符生效

        

      \\     backslash

 

      \a     alert (BEL) 警报

 

      \b     backspace 退格

演示:

[root@localhost ~]# echo  -e "hello\beveryone"

helleveryone

[root@localhost ~]#

 

      \c     produce no further output

 

      \e     escape

 

      \f     form feed

 

      \n     new line 换行

演示:

[root@localhost ~]# echo  -e"hello \neveryone"

hello

everyone

 

 

      \r     carriage return回车符

 

      \t     horizontal tab 横向制表符

演示:

[root@localhost ~]# echo  -e"hello \t everyone"

hello         everyone

 

 

      \v     vertical tab  纵向制表符

演示:

[root@localhost ~]# echo  -e"hello \v everyone"

hello

      everyone

[root@localhost ~]#

 

拓展演示:

hello everyone[root@localhost ~]# echo  "hello \neveryone"

hello \neveryone

 [root@localhost~]# echo  -e "hello \neveryone"       //\n后留一个空格,显示的时候,                                                                                                                      everyone前面就会显示有个空格

hello

 everyone

[root@localhost ~]#

另外echo还能实现颜色控制:

wKioL1gcGxSBkIvaAABF_2WJR5U471.png-wh_50

 

常用命令第七组

         关机或者重启命令:

                  shutdown                   //关机并切断电源

语法:

shutdown [OPTION]...  TIME [MESSAGE]

OPTION:

         -r:--reboot重启

         -P--poweroff关机

         -h:--halt 关机

         -c:--cancel取消上面的操作

TIME:

         now:立刻关机

         hh:mm:几点几分

         +m:几分钟之后

                   +0就相当于now

MESSAGE:

其实这个message消息,相当于wall命令。

[root@localhost ~]# man wall

wall -- send a message to everybody’sterminal.(翻译:每个人的终端发送一条消息

wKiom1gcGzHQqEI1AABIXt1o5Ec465.png

另一台主机会收到如下信息:

wKiom1gcG0nRkk2EAAA4zrmU3C8712.png

 

在执行shutdown时,系统会自动向其他所有用户发送提示信息,如果要想取消shutdown命令,可以在本机上执行ctrl+c命令,也可以在其他管理员用户上,执行shutdown  -c命令:

 

 

演示1

[root@localhost ~]# shutdown -h now             //关机

 

演示2

[root@localhost ~]# shutdown -r +10

 

Broadcast message fromroot@localhost.localdomain

         (/dev/pts/0)at 6:58 ...

 

The system is going down for reboot in 10minutes!

在另一台主机上会收到提示信息:

[root@localhost ~]#

Broadcast message fromroot@localhost.localdomain

         (/dev/pts/0)at 6:58 ...

 

The system is going down for reboot in 10minutes!

 

Broadcast message fromroot@localhost.localdomain

         (/dev/pts/0)at 6:59 ...

 

The system is going down for reboot in 9minutes!

如果在本地取消关机命令:直接按ctrl+c

^Cshutdown: Shutdown cancelled

[root@localhost ~]#

如果在其他主机上取消该命令,则执行#shutdown -c

[root@localhost ~]# shutdown -c

[root@localhost ~]#

在另一台主机上会显示:

shutdown: Shutdown cancelled

[root@localhost ~]#

 

所以shutdown命令,会自动向所有人发起wall信息

MESSAGE也可以指定为要发送的信息

[root@localhost ~]# shutdown -r +10"hello everyone"

 

Broadcast message fromroot@localhost.localdomain

         (/dev/pts/0)at 7:10 ...

 

The system is going down for reboot in 10minutes!

helloeveryone

 

 

 

常用命令第八组

         日期相关的命令:

linux:系统启动时从硬件读取日期和时间信息,读取完成以后,就不在与硬件相关联,启动以后,就靠系统内核的时钟进行。

         系统时钟

         硬件时钟

date :查看系统时钟

         date- print or set the system date and time(打印或设置系统日期和时间)

                   语法一:

         date [OPTION]... [+FORMAT]  //打印日期和时间

                   +FORMAT:

                            +是固定不变的

                            FORMAT:格式符,有很多种,但是都以%开头

                                     %F:只显示年与日,例如:2016-08-10

演示:

[root@localhost ~]# date +%F

2016-09-19

[root@localhost ~]#

                                     %T:只显示小时分钟秒,例如:02:23:45

演示:

[root@localhost ~]# date +%T

07:25:51

[root@localhost ~]#

date命令中,+只能出现一次,如果要想将+%F+%T一起显示,在显示时要用空格隔开,则要加上双引号引起来,以避免将空格解释成其他字符、

[root@localhost ~]# date +"%F  %T"

2016-09-19  07:32:43

[root@localhost ~]#

[root@localhost ~]# date +  "%F   %T"     //加号+FORMAT格式符之间不能有空格。

date: extra operand `%F   %T'

Try `date --help' for more information.

[root@localhost ~]#

                                     %c: 显示哪年那月那日几点几分

[root@localhost ~]# date +%c

Mon 19 Sep 2016 07:36:44 AM EDT

[root@localhost ~]#

                                     %Y:哪一年

[root@localhost ~]# date +%Y

2016

[root@localhost ~]#

                                     %m:哪一月

[root@localhost ~]# date +%m

09

[root@localhost ~]#

                                     %d:哪一日

[root@localhost ~]# date +%d

19

[root@localhost ~]#

                            %H:哪一小时

[root@localhost ~]# date +%H

07

[root@localhost ~]#

                            %M:哪一分钟

[root@localhost ~]# date +%M

44

[root@localhost ~]#

                            %S:哪一秒

[root@localhost ~]# date +%S

35

[root@localhost ~]#

                            %x:显示年//

[root@localhost ~]# date +%x

09/19/2016

[root@localhost ~]#

%sseconds since 1970-01-01 00:00:00 UTC(翻译:从197011日到现在的秒数)

[root@localhost ~]# date +%s                            //并且这个值时刻在累加

1474286264

[root@localhost ~]#

这样都拆开了,我们就可以任意组合各种显示:

演示1用减号“-”来连接年月日

[root@localhost ~]# date +%Y-%m-%d           //所以叫格式字符串

2016-09-19

[root@localhost ~]#

语法二:                  

wKiom1gcG4OjIJisAAABfgQRhaM903.gif           date [-u|--utc|--universal][MMDDhhmm[[CC]YY][.ss]]           //设置日期和时间

 

 

 

wKiom1gcG6PwxyjDAAABgI-b1-o873.gif                      [-u|--utc|--universal]:不经常使用可以去掉

 

spacer.gif                                               年可以设置4个数字,也可以设置2                                                                                                                                                                            个数字

                                                                                                                                                                                

spacer.gifspacer.gifspacer.gifspacer.gifspacer.gifspacer.gif                   date [MMDDhhmm[[CC]YY][.ss]]

spacer.gif 

 


关键字              

演示:

将时间设置为20131010888

[root@localhost ~]# date

Mon Sep 19 08:14:30 EDT 2016

[root@localhost ~]# date 101008082013.8

date: invalid date `101008082013.8'

[root@localhost ~]# date 101008082013.08

Thu Oct 10 08:08:08 EDT 2013

[root@localhost ~]# date 1010080813.08                //可以设置两位数的年份13

Thu Oct 10 08:08:08 EDT 2013

[root@localhost ~]#

 

clock:硬件时钟

hwclock:硬件时钟

clockhwclock:显示或设置硬件时间

[root@localhost ~]# hwclock            //显示硬件时钟

Mon 19 Sep 2016 08:28:48 AM EDT  -0.284459 seconds

[root@localhost ~]#

         -s:--hctosys 以硬件时钟为准,设置系统时间

         -w:--systohc:以系统时钟为准,设置硬件时钟

[root@localhost ~]# hwclock -w   //设置硬件时钟

[root@localhost ~]# which clock //显示clock命令的所在位置

/sbin/clock

[root@localhost ~]# file /sbin/clock //显示文件内容的类型,是个软连接,说明clockhwclock                                                                  是同一个命令

/sbin/clock: symbolic link to `hwclock'

 

 

 

 

 

 

cal :日历

语法:

         cal  [[ month] year]

[root@localhost ~]# cal            //显示当月的日历

   October 2013   

Su Mo Tu We Th Fr Sa

      1  2  3 4  5

 6 7  8  9 10 11 12

13 14 15 16 17 18 19

20 21 22 23 24 25 26

27 28 29 30 31

 

[root@localhost ~]#

[root@localhost ~]# cal 2015           //显示2015年的全年日历

 

[root@localhost ~]# cal 4 2013                 //查看指定月份日历

    April 2013    

Su Mo Tu We Th Fr Sa

   1  2  3 4  5  6

 7 8  9 10 11 12 13

14 15 16 17 18 19 20

21 22 23 24 25 26 27

28 29 30

 

[root@localhost ~]#

 

 

课外作业:

         man 手册。学习

                   which

which - shows the full path of (shell)commands.(翻译:显示()命令的完整路径

         语法:

         which[options] [--] programname [...]

演示:

[root@localhost ~]# which ls

alias ls='ls --color=auto'

         /bin/ls

[root@localhost ~]# which cd

/usr/bin/which: no cd in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

[root@localhost ~]# which cp

alias cp='cp -i'

         /bin/cp

[root@localhost ~]#

                   whereis

 

                    who

who - show who is logged on(翻译:显示谁登录了系统

演示:

[root@localhost ~]# who

root    tty1         2016-09-18 20:40 (:0)

root    pts/0        2016-09-19 03:15(10.1.250.23)

root    pts/1        2016-09-19 04:08(10.1.250.23)

[root@localhost ~]#

                    w

w - Show who is logged on and what they aredoing.(翻译:显示登录是谁,在做什么

语法:

w - [husfiV] [user]

演示:

[root@localhost ~]# w

 08:36:19 up 12:07,  3 users, load average: 0.17, 0.17, 0.17

USER    TTY      FROM              LOGIN@   IDLE  JCPU   PCPU WHAT

root    tty1     :0               20:40     ?    7.76s  7.76s /usr/bin/Xorg :0 -br-verbose -audit 4 -auth /va

root    pts/0    10.1.250.23      03:15    ?     0.37s  0.00s man date

root    pts/1    10.1.250.23      04:08   0.00s  0.28s  0.01s w

[root@localhost ~]#