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空间的终端都会显示对方的操作。