linux操作系统基础命令-2

CentOS7 linux操作系统基础命令-2

1.在linux 操作系统中 有内部命令和外部命令之分,使用type命令可以查看该命令是外部命令还是内部命令 。

[root@000000 ~]# type echo
echo is a shell builtin
[root@000000 ~]# type ls
ls is aliased to `ls --color=auto'

从上面的命令可以看出 echo 是内部命令,ls 为外部命令,而且还是定义了别名的命令。

先从内部命令所起:由shell自带的,且通过命令形式提供。

使用help可以查看所有的内部命令;

[root@000000 ~]# help
GNU bash, version 4.2.46(1)-release (x86_64-redhat-linux-gnu)
These shell commands are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.

A star (*) next to a name means that the command is disabled.

 job_spec [&]                                                                            history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]>
 (( expression ))                                                                        if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMMANDS; ] >
 . filename [arguments]                                                                  jobs [-lnprs] [jobspec ...] or jobs -x command [args]
 :                                                                                       kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
 [ arg... ]                                                                              let arg [arg ...]
 [[ expression ]]                                                                        local [option] name[=value] ...
 alias [-p] [name[=value] ... ]                                                          logout [n]
 bg [job_spec ...]                                                                       mapfile [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [a>
 bind [-lpvsPVS] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq] [-x keyseq:>  popd [-n] [+N | -N]
 break [n]                                                                               printf [-v var] format [arguments]
 builtin [shell-builtin [arg ...]]                                                       pushd [-n] [+N | -N | dir]
 caller [expr]                                                                           pwd [-LP]
 case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac                              read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t >
 cd [-L|[-P [-e]]] [dir]                                                                 readarray [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] >
 command [-pVv] command [arg ...]                                                        readonly [-aAf] [name[=value] ...] or readonly -p
 compgen [-abcdefgjksuv] [-o option]  [-A action] [-G globpat] [-W wordlist]  [-F func>  return [n]
 complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlis>  select NAME [in WORDS ... ;] do COMMANDS; done
 compopt [-o|+o option] [-DE] [name ...]                                                 set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
 continue [n]                                                                            shift [n]
 coproc [NAME] command [redirections]                                                    shopt [-pqsu] [-o] [optname ...]
 declare [-aAfFgilrtux] [-p] [name[=value] ...]                                          source filename [arguments]
 dirs [-clpv] [+N] [-N]                                                                  suspend [-f]
 disown [-h] [-ar] [jobspec ...]                                                         test [expr]
 echo [-neE] [arg ...]                                                                   time [-p] pipeline
 enable [-a] [-dnps] [-f filename] [name ...]                                            times
 eval [arg ...]                                                                          trap [-lp] [[arg] signal_spec ...]
 exec [-cl] [-a name] [command [arguments ...]] [redirection ...]                        true
 exit [n]                                                                                type [-afptP] name [name ...]
 export [-fn] [name[=value] ...] or export -p                                            typeset [-aAfFgilrtux] [-p] name[=value] ...
 false                                                                                   ulimit [-SHacdefilmnpqrstuvx] [limit]
 fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [command]                        umask [-p] [-S] [mode]
 fg [job_spec]                                                                           unalias [-a] name [name ...]
 for NAME [in WORDS ... ] ; do COMMANDS; done                                            unset [-f] [-v] [name ...]
 for (( exp1; exp2; exp3 )); do COMMANDS; done                                           until COMMANDS; do COMMANDS; done
 function name { COMMANDS ; } or name () { COMMANDS ; }                                  variables - Names and meanings of some shell variables
 getopts optstring name [arg]                                                            wait [id]
 hash [-lr] [-p pathname] [-dt] [name ...]                                               while COMMANDS; do COMMANDS; done
 help [-dms] [pattern ...]                                                               { COMMANDS ; }

 内部命令还可以通过 enable 来进行管理;

[root@000000 ~]# enable --help
-bash: enable: --: invalid option
enable: usage: enable [-a] [-dnps] [-f filename] [name ...]

除了可以通过help命令外查看linux内部命令外,还可以通过 enable -a 或者 enable 查看;

[root@000000 ~]# enable 
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller  //下面太多了 就不列出了

[root@000000 ~]# enable -a
enable .
enable :
enable [
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
enable command    //下面太多了 就不列出了

[root@000000 ~]# enable -n cd  //禁用cd命令
[root@000000 ~]# cd /opt/
[root@000000 ~]# enable -n     //查看被禁用的命令
enable -n cd

 这里并没有进入到/opt目录

启用内部命令: enable  [cmd]

外部命令:在文件系统路径下有对应的可执行的应用程序文件。

如:可以使用 which 命令查看。

[root@000000 ~]# which echo
/usr/bin/echo
[root@000000 ~]# whereis  echo
echo: /usr/bin/echo /usr/share/man/man1/echo.1.gz

外部命令有一个特点:当执行外部命令时,系统会有一个哈希表(hash tab),它的初始值为空,当执行命令时会默认从$PATH下的路径读取命令,并将该命令记录到hash tab 中,hash tab 保存在内存中,当下次读取时直接在内存中提取hash tab ,就不会去$PATH路径下查找命令程序,可大大提高命令的使用效率。

hash 命令常见用法:

[root@000000 ~]# hash         //查看当前的所有缓存命令
hits    command
   1    /usr/bin/tty
   1    /usr/bin/echo
   1    /usr/bin/ls
   2    /usr/bin/cd
[root@000000 ~]# hash -t cd           //打印缓存中命令的路径
/usr/bin/cd
[root@000000 ~]# hash -p PATH name    //将命令的全路径 PATH 去一个别名为 name
[root@000000 ~]# hash -r              //清除所有的缓存命令

关于其他用法可参考hash --help

2. alias 命令可以定义别名,下面我们来演示一下。

[root@000000 ~]# alias test="cat /etc/passwd"
[root@000000 ~]# test
root:x:0:0:root:/root:/bin/bash
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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin

[root@000000 ~]# unalias test
[root@000000 ~]# test

这里需要注意下:定义别名时最好测试一下是否有和别名相同的命令,因为设置了别名的命令 别名命令的优先级更高;
如:
[root@000000 ~]# type yum
yum is /usr/bin/yum
[root@000000 ~]# alias yum="ls" 
[root@000000 ~]# yum
auto_install_lnmp  auto_lamp.sh  ll  nginx-1.12.2  nginx-1.12.2.tar.gz  test.sh
[root@000000 ~]# unalias yum     //取消定义的别名
[root@000000 ~]# yum
Loaded plugins: fastestmirror
You need to give some command
Usage: yum [options] COMMAND

List of Commands:

check          Check for problems in the rpmdb
check-update   Check for available package updates
clean          Remove cached data
deplist        List a package's dependencies

 3.时间相关的命令 date(操作系统时间) clock/hwclock(硬件主板的时间),

先从硬件主板时间开始:

clock或者hwclock命令可以显示主板上的时间,-s参数可以以硬件上的时间为准校正操作系统时间,-w参数可以以操作系统时间校正硬件上的时间。

[root@000000 ~]# date
Thu Mar 28 08:54:17 CST 2019
[root@000000 ~]# clock
Thu 28 Mar 2019 08:54:22 AM CST  -0.100966 seconds

[root@000000 ~]# clock w   //现在把操作系统上的时间同步到硬件上。

[root@000000 ~]# date
Thu Mar 28 08:54:37 CST 2019
[root@000000 ~]# clock
Thu 28 Mar 2019 08:54:42 AM CST  -0.489366 seconds
[root@000000 ~]# 



现在把硬件上的时间同步到操作系统上。
[root@000000 ~]# clock
Thu 28 Mar 2019 12:00:10 AM CST  -0.973433 seconds
[root@000000 ~]# date
Thu Mar 28 00:00:11 CST 2019
[root@000000 ~]# date -s "2000-01-01"
Sat Jan  1 00:00:00 CST 2000
[root@000000 ~]# date
Sat Jan  1 00:00:01 CST 2000
[root@000000 ~]# clock -s
[root@000000 ~]# date
Thu Mar 28 00:00:40 CST 2019
[root@000000 ~]# 

timedatectl  命令在centos7中用来查看时区和设置时区。

[root@000000 ~]# timedatectl --help
timedatectl [OPTIONS...] COMMAND ...

Query or change system time and date settings.

  -h --help                Show this help message
     --version             Show package version
     --no-pager            Do not pipe output into a pager
     --no-ask-password     Do not prompt for password
  -H --host=[USER@]HOST    Operate on remote host
  -M --machine=CONTAINER   Operate on local container
     --adjust-system-clock Adjust system clock when changing local RTC mode

Commands:
  status                   Show current time settings
  set-time TIME            Set system time
  set-timezone ZONE        Set system time zone
  list-timezones           Show known time zones
  set-local-rtc BOOL       Control whether RTC is in local time
  set-ntp BOOL             Control whether NTP is enabled

[root@000000 ~]# timedatectl  status    //查看时区状态信息
      Local time: Thu 2019-03-28 00:05:31 CST
  Universal time: Wed 2019-03-27 16:05:31 UTC
        RTC time: Thu 2019-03-28 00:05:31
       Time zone: Asia/Shanghai (CST, +0800)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: yes
      DST active: n/a

[root@000000 ~]# timedatectl  list-timezones    ///查看所有的时区,我没有全部列出。
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo

[root@000000 ~]# timedatectl  set-timezone Africa/Lagos   //修改时区
[root@000000 ~]# timedatectl  status                    
      Local time: Wed 2019-03-27 17:08:44 WAT
  Universal time: Wed 2019-03-27 16:08:44 UTC
        RTC time: Wed 2019-03-27 17:08:44
       Time zone: Africa/Lagos (WAT, +0100)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: yes
      DST active: n/a

cal 命令查看日历:

[root@000000 ~]# cal
     March 2019     
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@000000 ~]# cal 2019   //选择年份
                               2019                               

       January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2                   1  2
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    3  4  5  6  7  8  9
13 14 15 16 17 18 19   10 11 12 13 14 15 16   10 11 12 13 14 15 16
20 21 22 23 24 25 26   17 18 19 20 21 22 23   17 18 19 20 21 22 23
27 28 29 30 31         24 25 26 27 28         24 25 26 27 28 29 30
                                              31
        April                   May                   June        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6             1  2  3  4                      1
 7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                              30
        July                  August                September     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                1  2  3    1  2  3  4  5  6  7
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
28 29 30 31            25 26 27 28 29 30 31   29 30

       October               November               December      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2    1  2  3  4  5  6  7
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    8  9 10 11 12 13 14
13 14 15 16 17 18 19   10 11 12 13 14 15 16   15 16 17 18 19 20 21
20 21 22 23 24 25 26   17 18 19 20 21 22 23   22 23 24 25 26 27 28
27 28 29 30 31         24 25 26 27 28 29 30   29 30 31

4.关机/重启命令;关机有halt,poweroff

[root@000000  ~]#reboot -f  //强制重启  -p选项切断电源。

标准命令:shutdown
-r  重启; -h halt(关机) -now 立刻执行 time 相对于时间的表示方法,time的值代表多久关机; 
-c 取消关机或重启;

[root@iZwz99ng9hibpr5iou16pxZ ~]# shutdown -h  5  //表示5分钟后关机。
Shutdown scheduled for Thu 2019-03-28 09:45:08 CST, use 'shutdown -c' to cancel.
[root@iZwz99ng9hibpr5iou16pxZ ~]# 
Broadcast message from root@iZwz99ng9hibpr5iou16pxZ (Thu 2019-03-28 09:40:08 CST):

The system is going down for power-off at Thu 2019-03-28 09:45:08 CST!


[root@iZwz99ng9hibpr5iou16pxZ ~]# shutdown -h now  //立即关机

[root@iZwz99ng9hibpr5iou16pxZ ~]# shutdown -h 12:00   //将在12:00关机
Shutdown scheduled for Thu 2019-03-28 12:00:00 CST, use 'shutdown -c' to cancel.

5. 系统广播  wall 命令,这个命令的用法很简单。

[root@iZwz99ng9hibpr5iou16pxZ ~]# wall --help
wall: invalid option -- '-'
usage: wall [message]

[root@iZwz99ng9hibpr5iou16pxZ ~]#  wall "This a info"
[root@iZwz99ng9hibpr5iou16pxZ ~]# 
Broadcast message from root@iZwz99ng9hibpr5iou16pxZ (pts/0) (Thu Mar 28 09:52:55 2019):

This a info   //这句话会在所有的终端上显示

6. screen 远程协助命令工具,相当于多个不同的终端,其中一个的操作会打印显示在其他终端上,screen工具不会受到网络的中断而终止命令。。并且其中任何一个终端都有中断对方操作的权力。有点像windows的 TeamViewer。

这个工具在centos系统镜像里有 要配置centos镜像的yum来安装 screen.
# yum -y install screen
安装完成后,在其中一个终端输入:
# screen -S connect_name    //创建连接空间,名为connect_name;
其他终端上
# screen -ls   //查看可以使用的连接名
# screen -x connect_name   //连接到connect_name 空间。

这样所有连接到connect_name空间的终端都会显示对方的操作。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值