Linux shell基础

时间:2021-09-22
本文章向大家介绍Linux shell基础,主要包括Linux shell基础使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、系统命令分类
(1)内建命令:命令位于shell内,不需要shell进行翻译可以直接交给内核处理,没有可执行程序
exit logout
(2)外部命名:位于shell以外,需要shell进行翻译,有对应的可执行程序
ls cd
# whereis 命令 ---查找命令可执行程序所在的路径

2、环境变量

(1)windows环境变量
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

(2)linux环境变量

①常用的环境变量
PATH ---规定了命令的可执行程序的搜索路径
PS1 ---规定了命令提示符的显示格式
HOME ---当前用户的家目录
PWD ---当前用户所在的路径
SHELL ---当前用户使用的shell版本

②提取环境变量值
# echo $SHELL --- $ 变量提取符

[root@localhost ~]# echo $SHELL
/bin/bash
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]#

③修改环境变量值
# PS1="{\u#\h \d \t \w}\\$"

[root@localhost ~]# echo $PS1
[\u@\h \W]\$
[root@localhost ~]# PS1="{\u#\h \d \t \w}\\$"
{root#localhost Wed Sep 22 17:23:25 ~}#

\u :用户名 \h:主机名 \d:当前系统日期 \t:当前系统时间
\W :相对路径 \w :绝对路径 \\$:身份提示符

3、命令修改环境变量值,注销或重启后失效,要永久生效写入配置文件

(1)系统环境变量配置文件:所有系统用户遵守
/etc/profile ---通常修改该文件
/etc/bashrc ---相关shell的设置,通常不修改
vi /etc/profile
最后一行追加
PS1="{\u#\h \t \W}\\$"
保存退出
使配置生效
source /etc/profile 或 使用xshell等工具重新连接 或reboot

(2)个人环境变量配置文件(可以理解为用户的个性化配置)
$HOME/.bash_profile
$HOME/.bashrc

注:当系统环境变量配置文件设置与个人的有冲突,将遵守个人设置

(3)命令别名
给一个长命令起一个简化的名字
# alias 别名="命令"
# alias ---查看当前shell中的所有别名设置
# unalias 别名 ---取消别名

[root@localhost ~]# 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 | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@localhost ~]# 

(4)shell中的保留字
具有特殊含义的符号
①* 通配符 :代表任意多个任意字符
# rm -rf /tmp/* ---清空/tmp
②\ 转义符:去掉特殊符号的特殊含义
# ls \*
③`` 反单引 :在反单引中的内容当做命令来执行
# echo time is date
# echo time is `date`

[root@localhost ~]# echo time is date
time is date
[root@localhost ~]# echo time is `date`
time is Wed Sep 22 17:30:21 CST 2021
[root@localhost ~]# 


④ | 管道符 :命令 | 命令 ---将前一个命令的输出当做后一个命令的输入来用
# ll /etc | grep ^d ---抓取/etc下所有子目录
# history | less

⑤> >> 输出重定向 :改变原有输出方向,重定向到文件
# echo aaaaaaa > f1 ---覆盖
# echo bbbbbbb >>f1 ---追加
# echo > f1 ---清空f1 文件


⑥< 输入重定向 :改变原有的输入方式,本应该通过标准输入进行输入,重定向将文件的内容输入给命令
终端1,创建测试文件,写入内容

[root@localhost ~]# echo 'hello' > test.txt
[root@localhost ~]# 
[root@localhost ~]# cat test.txt 
hello
[root@localhost ~]# 

终端2,打开本机8090端口

[root@localhost ~]# nc -l 8090

终端1,执行 nc 127.0.0.1 8090 < test.txt

[root@localhost ~]# nc 127.0.0.1 8090 < test.txt 
[root@localhost ~]# 

终端2,查看打印信息

[root@localhost ~]# nc -l 8090
hello
[root@localhost ~]# 

⑦& 后台执行符
命令 &

⑧‘’ 和 ”“ 单引号和双引号的区别

日常工作中比较重要的一个区别就是当需要引用变量的值,一定要用双引号,不要用单引号

[root@localhost ~]# m='abc'
[root@localhost ~]# echo $m
abc
[root@localhost ~]# 
[root@localhost ~]# echo '$m'
$m
[root@localhost ~]# echo "$m"
abc
[root@localhost ~]# 

原文地址:https://www.cnblogs.com/ops-blog/p/15291091.html