(0基础学Linux系列)1.09 Bash基础

与天地兮比寿,与日月兮齐光。这篇文章主要讲述(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]\\$ ,
2)更多调整
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:白色
1.3 bash命令行1)bash解释器或者翻译官,命令行输入命令都是由bash解释执行的
[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.4 基础命令 1.4.1 ls 查看当前目录下的内容(文件和目录)
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相关的特殊字符
特殊字符 含义
~ 表示用户的家目录
- 表示上一次所在目录
. 表示当前目录
.. 表示上一级目录
1.4.3 pwd 显示当前用户所在的路径
[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
(0基础学Linux系列)1.09 Bash基础

文章图片

:::
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
地球中国北京昌平区沙河镇百沙路xxx老男孩教育教室8-1
相对路径:
沙河镇老男孩教育教室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


    推荐阅读