与天地兮比寿,与日月兮齐光。这篇文章主要讲述(0基础学Linux系列)1.09 Bash基础相关的知识,希望能为你提供帮助。
1.1 命令行提示符
[root@oldboyedu ~]# [root :命令行提示符@前面的字符代表当前登录的用户(可用whoami查询)# 检查当前用户:
[root@oldboyedu ~]# whoami
root@ 表示分隔符oldboyedu,@后面的为主机名(可用hostname查询),
# 检查主机名:
[root@oldboyedu ~]# hostname
oldboyedu~所在的位置,是窗口当前用户所在的路径(可用pwd查询)。
# 检查当前路径:
[root@oldboyedu ~]# pwd
/root
~ 表示用户家目录所在路径/root]# 提示符,#号是管理员的提示符,root用户提示符,root皇帝。
# $ 提示符是普通用户提示符。一般大臣,布衣。
# 切换普通用户:
[root@oldboyedu ~]# su - oldboy #切换到普通用户oldboy下
[oldboy@oldboy ~]$ whoami
oldboy
[oldboy@oldboy ~]$ pwd
/home/oldboy ##普通用户的家目录
[oldboy@oldboy ~]$快捷键ctrl+d退回
总结:
查看当前用户:whoami
查看当前路径:pwd
查看主机名:hostname
~ 用户的家目录,例如:/root,/home/oldboy
1.2 PS1变量1)Linux命令行提示符受变量PS1控制。
[root@oldboy ~]# echo $PS1
[\\u@\\h \\W]\\$
- PS1环境变量控制提示符长什么样子?
- PS1变量控制命令行组成:
- PS1=[\\u@\\h \\W]\\$ ,
echo "PS1=[\\[\\e[34;
1m\\]\\u@\\[\\e[0m\\]\\[\\e[35;
1m\\]\\H\\[\\e[0m\\]\\[\\e[36;
1m\\] \\w\\[\\e[0m\\]]\\$ " >
>
/etc/bashrc | source /etc/bashrc
字颜色 | 字背景颜色 | 字背景颜色设置效果 |
---|---|---|
30:黑色 | 40:黑色 | 0:关闭所有属性 |
31:红色 | 41:红色 | 1:设置高亮 |
32:绿色 | 42:绿色 | 4:下划线 |
33:黄色 | 43:黄色 | 5:闪烁 |
34:蓝色 | 44:蓝色 | 7:反显 |
35:紫色 | 45:紫色 | 8:消隐 |
36:深绿色 | 46:深绿色 | |
37:白色 | 47:白色 |
[root@oldboy ~]# echo $SHELL
/bin/bash# sh等价于bash,工作中,多用bash
[root@oldboy ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
2)命令基本语法:
命令行语法,中括号内可选。
命令[选项][路径/文件/目录]
ls-ld/etc/hosts
3)命令行快捷键
快捷键 | 作用 |
---|---|
tab | 自动补全功能* |
ctrl+a | 将光标移动至开头 |
ctrl+e | 将光标移动至结尾 |
ctrl+u | 删除光标前内容 |
ctrl+k | 删除光标后内容 |
ctrl+l | 清屏(同clear 命令) |
ctrl+方向键 | 按单词移动光标 |
esc+. | 调出上一个命令最后一个【空格】后面的部分 |
ctrl+c | 终止当前操作 |
ctrl+d | 退出当前会话(logout),连续操作关闭xshell |
Ctrl+Insert | 复制命令行内容* |
Shift+Insert | 粘贴命令行内容* |
1)查看当前目录下的内容
[root@oldboyedu ~]# ls /usr
binetcgamesincludeliblib64libexeclocalsbinsharesrctmp
[root@oldboyedu ~]# ls /root
anaconda-ks.cfganaconda-screenshots
2)-l 参数 查看文件属性
[root@oldboyedu ~]# ls -l /root
total 4
-rw-------. 1 root root 1470 May6 21:19 anaconda-ks.cfg
drwxr-x---. 2 root root276 May6 21:19 anaconda-screenshots
3)-a 参数 查看隐藏文件
什么是隐藏文件?就是以.开头的文件
[root@oldboyedu ~]# ls -a /root
.anaconda-ks.cfg.bash_history.bash_profile.cshrc.ssh
..anaconda-screenshots.bash_logout.bashrc.pki.tcshrc
1.4.2 cd 切换路径
[root@oldboyedu /etc]# cd /tmp/
[root@oldboyedu /tmp]# pwd
/tmp
一些和
cd
相关的特殊字符特殊字符 | 含义 |
---|---|
~ | 表示用户的家目录 |
- | 表示上一次所在目录 |
. | 表示当前目录 |
.. | 表示上一级目录 |
[root@oldboyedu ~]# pwd
/root[root@oldboyedu ~]# cd /etc/sysconfig/network-scripts/
[root@oldboyedu network-scripts]#
[root@oldboyedu network-scripts]# pwd
/etc/sysconfig/network-scripts
1.4.4 mkdir 创建目录
1)创建一个目录
[root@oldboyedu ~]# mkdir oldboyedu
[root@oldboyedu ~]# ls
anaconda-ks.cfganaconda-screenshotsoldboyedu
2)创建一个连续的目录
[root@oldboyedu ~]# mkdir oldboyedu1..5
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyeduoldboyedu2oldboyedu4
anaconda-screenshotsoldboyedu1oldboyedu3oldboyedu5
3)-p 参数 递归创建目录
[root@oldboyedu ~]# mkdir -p oldboyedu01/oldboyedu02/oldboyedu03
[root@oldboyedu ~]#
[root@oldboyedu ~]#tree oldboyedu01
oldboyedu01
└── oldboyedu02
└── oldboyedu032 directories, 0 files
1.4.5 tree 以树形结构显示文件和目录
1)以树形结构显示文件和目录
[root@oldboyedu ~]# tree /root
/root
├── anaconda-ks.cfg
├── oldboyedu
└── oldboyedu01
└── oldboyedu02
└── oldboyedu034 directories, 1 file
2)-L 参数 显示层数
[root@oldboyedu ~]# tree -L 1 /
/
├── bin ->
usr/bin
├── boot
├── dev
├── etc
├── home
├── lib ->
usr/lib
├── lib64 ->
usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin ->
usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var19 directories, 0 files
1.4.6 touch 创建文件
1)创建一个文件
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyeduoldboyedu01test
2)创建一个连续的文件
[root@oldboyedu ~]# touch test01..05
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyeduoldboyedu01test01test02test03test04test05
1.4.7 cp 复制文件或目录
语法:cp 源文件 目的
1)复制test文件至/tmp目录下
[root@oldboyedu ~]# cp test /tmp/
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyeduoldboyedu01testtest01test02test03test04test05
[root@oldboyedu ~]# ls /tmp/
test
2)将test文件复制并改名
[root@oldboyedu ~]# cp test oldboy
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyoldboyeduoldboyedu01test
3)-r 参数 递归复制(可复制目录)
[root@oldboyedu ~]# tree oldboyedu01
oldboyedu01
└── oldboyedu02
└── oldboyedu032 directories, 0 files
[root@oldboyedu ~]# cp -r oldboyedu01 /tmp/
[root@oldboyedu ~]# ls /tmp/
oldboyedu01
[root@oldboyedu ~]# tree /tmp/oldboyedu01/
/tmp/oldboyedu01/
└── oldboyedu02
└── oldboyedu032 directories, 0 files
1.4.8 mv 移动文件或目录,剪切
1)移动文件
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyoldboyeduoldboyedu01testtest01test02test03test04test05
[root@oldboyedu ~]#
[root@oldboyedu ~]# mv test oldboyedu/
[root@oldboyedu ~]# ls oldboyedu/
test
2)移动目录
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyoldboyeduoldboyedu01test01test02test03test04test05
[root@oldboyedu ~]#
[root@oldboyedu ~]# mv oldboyedu /opt/
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyoldboyedu01test01test02test03test04test05
[root@oldboyedu ~]# ls /opt/
oldboyedu
3)改名
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyoldboyedu01test01test02test03test04test05
[root@oldboyedu ~]# mv oldboyedu01/ oldboyedu
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyoldboyedutest01test02test03test04test05
1.4.9 rm 删除文件或目录
1)直接删除文件
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyoldboyedutest01test02test03test04test05
[root@oldboyedu ~]# rm oldboy
rm: remove regular empty file ‘oldboy’? y
2)-f 参数 强制删除
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyedutest01test02test03test04test05
[root@oldboyedu ~]# rm -f test01
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyedutest02test03test04test05
3)-r 参数 递归删除(可删除目录)
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyedutest02test03test04test05
[root@oldboyedu ~]# rm -r oldboyedu/
rm: descend into directory ‘oldboyedu/’? y
rm: descend into directory ‘oldboyedu/oldboyedu02’? y
rm: remove directory ‘oldboyedu/oldboyedu02/oldboyedu03’? y
rm: remove directory ‘oldboyedu/oldboyedu02’? y
rm: remove directory ‘oldboyedu/’? y
[root@oldboyedu ~]# ls
anaconda-ks.cfgtest02test03test04test05# 加上 -f 即可强制递归删除
[root@oldboyedu ~]# ls
anaconda-ks.cfgoldboyedutest02test03test04test05
[root@oldboyedu ~]# rm -rf oldboyedu/
[root@oldboyedu ~]# ls
anaconda-ks.cfgtest02test03test04test05
1.4.10 cat 查看文件内容
1)查看文件内容
[root@oldboyedu ~]# cat /etc/hosts
127.0.0.1localhost localhost.localdomain localhost4 localhost4.localdomain4
::1localhost localhost.localdomain localhost6 localhost6.localdomain6
2)-n 参数 显示行号
[root@oldboyedu ~]# cat -n /etc/hosts
1127.0.0.1localhost localhost.localdomain localhost4 localhost4.localdomain4
2::1localhost localhost.localdomain localhost6 localhost6.localdomain6
1.4.11 head 查看文件前10行
1)查看文件前10行
[root@oldboyedu ~]# head /etc/passwd
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
2)-n 参数 指定查看文件前几行(n=数字)
[root@oldboyedu ~]# head -5 /etc/passwd
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
1.4.12 tail 查看文件尾10行
1)查看文件尾10行
[root@oldboyedu ~]# tail /etc/passwd
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
2)-n 参数 指定查看文件尾几行(n=数字)
[root@oldboyedu ~]# tail -5 /etc/passwd
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
3)-f 参数 跟踪文件变化
[root@oldboyedu ~]# tail -f a.txt
111
111
111
111# 新开一个Xshell会话往a.txt文件里写内容
[root@oldboyedu ~]# echo a >
>
a.txt# 原先的会话发生了变化
[root@oldboyedu ~]# tail -f a.txt
111
111
111
111a
::: hljs-center
文章图片
:::
1.4.13 echo 打印字符输出
[root@oldboyedu ~]# echo a
a
[root@oldboyedu ~]# echo 1..5
1 2 3 4 5
[root@oldboyedu ~]# echo a..d
a b c d
1.5 路径相关 绝对路径:
从根开始,开头必须是/
- /etc/hosts
- /etc/sysconfig
- /etc/hostname
- /home/oldboy
相对路径:
沙河镇老男孩教育教室8
【(0基础学Linux系列)1.09 Bash基础】不从根/开始,相对于当前路径的路径
[root@oldboy ~]# cd /
[root@oldboy /]# cd etc
[root@oldboy etc]# pwd
/etc
[root@oldboy etc]# cd ../root
[root@oldboy ~]# pwd
/root
推荐阅读
- EmlBuilder(一款超轻量级的EML格式电子邮件阅读和编辑工具)
- 多个组件重复用
- yum安装的Nginx添加模块支持tcp
- yum Install tinyproxy on centos
- 实践GoF的设计模式(工厂方法模式)
- Zabbix监控Apache
- centos8.0配置静态IP详解及永久关闭防火墙
- HCIA-Datacom 网络层_IPv4地址基础
- 多媒体技术概述