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
bin etc games include lib lib64 libexec local sbin share src tmp
[root@oldboyedu ~]# ls /root
anaconda-ks.cfg anaconda-screenshots
2)-l 参数 查看文件属性
[root@oldboyedu ~]# ls -l /root
total 4
-rw-------. 1 root root 1470 May 6 21:19 anaconda-ks.cfg
drwxr-x---. 2 root root 276 May 6 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.cfg anaconda-screenshots oldboyedu
2)创建一个连续的目录
[root@oldboyedu ~]# mkdir oldboyedu{1..5}
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboyedu oldboyedu2 oldboyedu4
anaconda-screenshots oldboyedu1 oldboyedu3 oldboyedu5
3)-p 参数 递归创建目录
[root@oldboyedu ~]# mkdir -p oldboyedu01/oldboyedu02/oldboyedu03
[root@oldboyedu ~]#
[root@oldboyedu ~]# tree oldboyedu01
oldboyedu01
└── oldboyedu02
└── oldboyedu03
2 directories, 0 files
1.4.5 tree 以树形结构显示文件和目录
1)以树形结构显示文件和目录
[root@oldboyedu ~]# tree /root
/root
├── anaconda-ks.cfg
├── oldboyedu
└── oldboyedu01
└── oldboyedu02
└── oldboyedu03
4 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
└── var
19 directories, 0 files
1.4.6 touch 创建文件
1)创建一个文件
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboyedu oldboyedu01 test
2)创建一个连续的文件
[root@oldboyedu ~]# touch test{01..05}
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboyedu oldboyedu01 test01 test02 test03 test04 test05
1.4.7 cp 复制文件或目录
语法:cp 源文件 目的
1)复制test文件至/tmp目录下
[root@oldboyedu ~]# cp test /tmp/
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboyedu oldboyedu01 test test01 test02 test03 test04 test05
[root@oldboyedu ~]# ls /tmp/
test
2)将test文件复制并改名
[root@oldboyedu ~]# cp test oldboy
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboy oldboyedu oldboyedu01 test
3)-r 参数 递归复制(可复制目录)
[root@oldboyedu ~]# tree oldboyedu01
oldboyedu01
└── oldboyedu02
└── oldboyedu03
2 directories, 0 files
[root@oldboyedu ~]# cp -r oldboyedu01 /tmp/
[root@oldboyedu ~]# ls /tmp/
oldboyedu01
[root@oldboyedu ~]# tree /tmp/oldboyedu01/
/tmp/oldboyedu01/
└── oldboyedu02
└── oldboyedu03
2 directories, 0 files
1.4.8 mv 移动文件或目录,剪切
1)移动文件
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboy oldboyedu oldboyedu01 test test01 test02 test03 test04 test05
[root@oldboyedu ~]#
[root@oldboyedu ~]# mv test oldboyedu/
[root@oldboyedu ~]# ls oldboyedu/
test
2)移动目录
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboy oldboyedu oldboyedu01 test01 test02 test03 test04 test05
[root@oldboyedu ~]#
[root@oldboyedu ~]# mv oldboyedu /opt/
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboy oldboyedu01 test01 test02 test03 test04 test05
[root@oldboyedu ~]# ls /opt/
oldboyedu
3)改名
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboy oldboyedu01 test01 test02 test03 test04 test05
[root@oldboyedu ~]# mv oldboyedu01/ oldboyedu
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboy oldboyedu test01 test02 test03 test04 test05
1.4.9 rm 删除文件或目录
1)直接删除文件
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboy oldboyedu test01 test02 test03 test04 test05
[root@oldboyedu ~]# rm oldboy
rm: remove regular empty file ‘oldboy’? y
2)-f 参数 强制删除
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboyedu test01 test02 test03 test04 test05
[root@oldboyedu ~]# rm -f test01
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboyedu test02 test03 test04 test05
3)-r 参数 递归删除(可删除目录)
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboyedu test02 test03 test04 test05
[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.cfg test02 test03 test04 test05
# 加上 -f 即可强制递归删除
[root@oldboyedu ~]# ls
anaconda-ks.cfg oldboyedu test02 test03 test04 test05
[root@oldboyedu ~]# rm -rf oldboyedu/
[root@oldboyedu ~]# ls
anaconda-ks.cfg test02 test03 test04 test05
1.4.10 cat 查看文件内容
1)查看文件内容
[root@oldboyedu ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
2)-n 参数 显示行号
[root@oldboyedu ~]# cat -n /etc/hosts
1 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
2 ::1 localhost 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
111
a
::: 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
地球中国北京昌平区沙河镇百沙路xxx老男孩教育教室8-1
相对路径:
沙河镇老男孩教育教室8
不从根/开始,相对于当前路径的路径
[root@oldboy ~]# cd /
[root@oldboy /]# cd etc
[root@oldboy etc]# pwd
/etc
[root@oldboy etc]# cd ../root
[root@oldboy ~]# pwd
/root