linux命令

 

 

 

 

 

[root@tz script]# ping -c1 www.baidu.com &>/dev/null && echo "baidu is up" || echo "baidu is down!"
baidu is up

&>

包含正确输出和错误输出

&&

前面命令执行成功会返回一个参数$?,值为0,执行不成功值为非0

 

#!/usr/bin/bash
ping -c1 "114.114.114.114" &> /dev/null && echo "114 is up" || echo "114 is down!"

/usr/bin/python <<-EOF
print "hello python!"
EOF

echo "hello bash!"

其中-EOF加上-,后续代码遇到tab键缩进也可以正常执行。

EOF结束符,可以替换为任何大写字母,如YANG

image

[root@mysql Script]# cat bash.sh
cd /root
ls

[root@mysql Script]# bash bash.sh
anaconda-ks.cfg.back  mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
js80.TQh!	      VMwareTools-10.0.6-3595377.tar.gz
[root@mysql Script]# . bash.sh
anaconda-ks.cfg.back  mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
js80.TQh!             VMwareTools-10.0.6-3595377.tar.gz
[root@mysql ~]# cd -
/home/Script
[root@mysql Script]# source bash.sh
anaconda-ks.cfg.back  mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
js80.TQh!             VMwareTools-10.0.6-3595377.tar.gz
[root@mysql ~]#

.跟source都是在父Shell中执行,所以当前目录会变。

其他都是在子Shell执行。

 

Shell是在用户登录后执行的第一个程序

[root@mysql ~]# rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc

rpm -qc 查看某命令的配置文件

[root@mysql ~]# rpm -qc bash
/etc/skel/.bash_logout
/etc/skel/.bash_profile
/etc/skel/.bashrc

更改用户的shell

[root@mysql ~]# usermod -s /bin/bash tz

su - 跟su 的区别

[tz@mysql root]$ su - tz
Password:
Last login: Mon Jun  1 18:20:53 CST 2020 on pts/1
[tz@mysql ~]$ pwd
/home/tz
[tz@mysql ~]$ exit
logout
[root@mysql ~]# su tz
[tz@mysql root]$ pwd
/root

su - 会重新跳到登录用户的家目录

login shell 会执行4个配置文件

nologin shell 只会执行2个配置文件

退出都会执行~/.bash_logout跟~/.bash_history两个配置文件

image

自动补齐软件包

[root@mysql ~]# rpm -qa | grep bash-com
bash-completion-2.1-6.el7.noarch

命令历史记录

!11

↑↓

!da  等于!date

!$ 上一个命令最后一个参数

[root@mysql ~]# ls /etc/netconfig /etc/hostname
/etc/hostname  /etc/netconfig
[root@mysql ~]# head !$
head /etc/hostname
mysql

!! 上一个命令,在脚本中常用

[root@mysql ~]# cat /etc/hostname
mysql
[root@mysql ~]# !!
cat /etc/hostname
mysql

alias 查看当前shell的别名

[root@mysql ~]# alias cp
alias cp='cp -i'
[root@mysql ~]# unalias cp

或者在命令前加\

[root@mysql ~]# \cp -rf /etc

临时定义别名

[root@mysql ~]# alias yang="sl"
[root@mysql ~]# yang

~/.bashrc 定义别名是永久的

ctrl + R 搜索历史命令

ctrl + D 退出,相当于logout 或exit

ctrl + A 将光标移动到最前

ctrl + E 将光标移动到最后

ctrl + K 剪切当前光标后的字符串

ctrl + U 剪切当前光标前的字符串

ctrl + Y 粘贴粘贴板里的内容

ctrl + S 锁屏,在当前环境下,输入所有东西都生效,只是不显示

ctrl + q 解锁

 

& 将程序后台执行

tty 查看当前终端

[root@mysql ~]# tty
/dev/pts/2
posted @ 2020-05-30 23:42  努力吧阿团  阅读(161)  评论(0编辑  收藏  举报