Linux基础命令

执行命令过程

输入命令后回车,通过shell程序找到键入的命令找到所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行。
执行命令的过程(优先级):
别名>内部命令>外部命令hash>外部命令路径
shell中可执行的两类命令
内部命令:由shell自带,通过某命令形式提供,不同shell中内部命令不尽相同。
外部命令:在文件系统路径下有对应的可执行程序文件。

判断命令类型

type COMMAND(type 后跟想要查看的命令即可)
添加选项[-a],可以查看所有类型如果输出结果是COMMAND is a shell builtin,则该命令是内部命令,如果输出结果显示的是包含bin目录的路径,则是外部命令,外部命令执行过一次之后会,路径会被写入hash内存中,重启或退出之后,hash路径会消失。
范例
history是内部命令

[10:48:55 root@centos8 ~]#type -a history
history is a shell builtin

cat是外部命令

[10:28:50 root@centos8 ~]#type -a cat
cat is /usr/bin/cat

有的命令既是内部命令又是外部命令,如echo

[10:35:22 root@centos8 ~]#type -a echo
echo is a shell builtin
echo is /usr/bin/echo

对于既是内部命令又是外部命令的命令,想要让其使用外部部命令去执行,则可以禁用内部命令,通过enable命令可实现。

[10:49:13 root@centos8 ~]#enable -n echo
[11:07:04 root@centos8 ~]#type -a echo 
echo is /usr/bin/echo
#若要重新启用内部命令则可以
[11:10:13 root@centos8 ~]#enable echo
[11:10:34 root@centos8 ~]#type -a echo
echo is a shell builtin
echo is /usr/bin/echo

命令若是别名,则不能执行原来命令的功能,只实现别名的作用,如下

[root@centos8mini ~]#echo abc
abc
[root@centos8mini ~]#alias "echo=history"
[root@centos8mini ~]#alias echo
alias echo='history'
[root@centos8mini ~]#echo abc 
-bash: history: abc: numeric argument required
[root@centos8mini ~]#history
    1  echo abc
    2  alias "echo=history"
    3  alias echo
    4  echo abc
    5  history
    #此时echo执行的是history命令
[root@centos8mini ~]#echo   
    1  echo abc
    2  alias "echo=history"
    3  alias echo
    4  echo abc
    5  history
    6  echo
    #若要执行原来echo的功能,则需加"\"或通过unalias COMMAND取消别名即可恢复
[root@centos8mini ~]#\echo abc
abc
[root@centos8mini ~]#unalias echo
[root@centos8mini ~]#echo abc
abc

hash命令的常见用法
hash 显示hash缓存
hash -l 显示hash缓存,可作为输出使用
hash -p path name 将命令全路径path起别名为name
hash -t name 显示缓存中name的路径
hash -d name 清除指定命令名字的缓存
hash -r 清除所有缓存
命令别名作用
可以把一些较长的命令通过起别名的方法,使其变短,方便操作。
alias 命令可以显示当前shell的所有别名

[root@centos8mini ~]#alias
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='(alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot'
alias xzegrep='xzegrep --color=auto'
alias xzfgrep='xzfgrep --color=auto'
alias xzgrep='xzgrep --color=auto'
alias zegrep='zegrep --color=auto'
alias zfgrep='zfgrep --color=auto'
alias zgrep='zgrep --color=auto'

定义别名alias NAME=‘原命令’ 例:

[root@centos8mini ~]#free
              total        used        free      shared  buff/cache   available
Mem:         810524      230324      330104        5744      250096      444832
Swap:       2097148           0     2097148
[root@centos8mini ~]#free -h
              total        used        free      shared  buff/cache   available
Mem:          791Mi       224Mi       322Mi       5.0Mi       244Mi       434Mi
Swap:         2.0Gi          0B       2.0Gi
[root@centos8mini ~]#alias 'free=free -h'
[root@centos8mini ~]#free
              total        used        free      shared  buff/cache   available
Mem:          791Mi       225Mi       322Mi       5.0Mi       244Mi       434Mi
Swap:         2.0Gi          0B       2.0Gi
#以上方法只能暂时更改别名,重启或退出后消失,若要永久更改可如下将别名定义写入配置文件
[root@centos8mini ~]#echo "alias free='free -h'">> .bashrc
 #重启别名配置文件
[root@centos8mini~] #source ./.bashrc    

别名写入“~/.bashrc”仅对当前用户有效;
别名写入/etc/bashrc对所有用户有效
撤销别名unalias [-a] name
unalias -a 可以取消所有别名
如果要临时执行原命令,可使用\ALIASNAME

日期和时间

系统时间

[root@centos8mini ~]#date
Wed Jul 29 17:02:58 CST 2020

硬件时间

[root@centos8mini ~]#clock
2020-07-29 15:03:10.429188+08:00

date相关命令
-d datestr(指定时间) : 显示 datestr 中所设定的时间 (非系统时间)
–help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
–version : 显示版本编号
时间方面:
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00…23)
%I : 小时(01…12)
%k : 小时(0…23)
%l : 小时(1…12)
%M : 分钟(00…59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00…61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
日期方面:
%a : 星期几 (Sun…Sat)
%A : 星期几 (Sunday…Saturday)
%b : 月份 (Jan…Dec)
%B : 月份 (January…December)
%c : 直接显示日期与时间%d : 日 (01…31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b%j : 一年中的第几天 (001…366)
%m : 月份 (01…12)
%U : 一年中的第几周 (00…53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0…6)
%W : 一年中的第几周 (00…53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000…9999)
clock相关命令
-s,以硬件时间为准校正系统时间
-w,以系统时间为准校正硬件时间
显示日历

#显示当月日历
[root@centos8mini ~]#cal 
#显示全年日历
[root@centos8mini ~]#cal -y
#显示指定年日历   例如
[root@centos8mini ~]#cal 9 1752
   September 1752   
Su Mo Tu We Th Fr Sa
       1  2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

关机和重启命令

关机:halt poweroff
重启:reboot -f:强制 -p:切断电源
关机或重启:shutdown
-r:重启
-h:halt
-c:取消关机或重启
shutdown 可定时关机
shutdown不加任何参数,默认相当于+1
now 立刻关机,相当于+0
+number,相对时间,几分钟之后关机
hh:mm 绝对时间,指定关机时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值