Linux-day02
bash特性
#1. tab键补全
命令补全
[root@qls ~]# user
useradd userdel usermod usernetctl users
选项补全
参数补全
[root@qls ~]# ls /etc/sys
sysconfig/ sysctl.conf sysctl.d/ systemd/ system-release system-release-cpe
#2.快捷键
Ctrl键+c #终止当前的操作
Ctrl键+d #退出当前所登录的用户
Ctrl键+l #清屏
Ctrl键+a #将当前光标所在位置移动到命令行的行首
Ctrl键+e #将当前光标所在位置移动到命令行的行尾
Ctrl键+u #删除当前光标所在位置向前的所有字符
Ctrl键+k #删除当前光标所在位置向后的所有字符
Ctrl键+y #粘贴剪切板上面的内容
Ctrl键+w #删除当前光标所在位置向前的一组字符串
Ctrl键+方向键 #向左或者向右移动一组字符串
delete #从前往后删除一个字符
Ctrl键+r #搜索历史命令
Ctrl键+z #把当前的任务放到后台运行
Ctrl键+s #锁屏
Ctrl键+q #解锁
esc键+. #使用上一条命令的最后的参数
!! #执行上一条命令
!ls #执行最近的一次以ls开头的命令
#3.历史记录history
选项:
-c #清空的历史命令
-d #指定删除历史命令,id
-w #命令写入到文件中
#4.别名
[root@qls ~]# alias tong='ping baidu.com'
[root@qls ~]# tong
PING baidu.com (39.156.69.79) 56(84) bytes of data.
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=128 time=29.8 ms
64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=128 time=30.8 ms
^C
--- baidu.com ping statistics ---
3 packets transmitted, 2 received, 33% packet loss, time 2004ms
rtt min/avg/max/mdev = 29.849/30.346/30.844/0.527 ms
[root@qls ~]# unalias tong
#系统自带的别名
[root@qls ~]# 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'
查看命令的帮助信息
man #查看命令的详细的帮助信息
help #查看内置命令的帮助信息,help 直接查看所有的内置命令
#使用选项查看帮助信息
[root@qls ~]# ss --help
Usage: ss [ OPTIONS ]
ss [ OPTIONS ] [ FILTER ]
-h, --help this message
info #显示命令帮助信息
#网站命令帮助
http://man.linuxde.net
http://liunx.web3.xin
http://linux.51yip.com
关机和重启的命令
关机
shutdown -h 0 #立刻关机 或者 now
shutdown -h 1 #1分钟之后进行关机,是以分钟为级别的
shutdown -h 11:00 #在11:00的时候会执行关机的命令
shutdown -c #取消当前的关机操作
poweroff #关机
halt #关机,只会关闭系统,不会关闭电源
-p #关闭电源
init 0 #切换运行级别进行关机
重启
shutdown -r 0 #立刻重启 或者 now
shutdown -r 1 #1分钟之后进行重启,是以分钟为级别的
shutdown -r 11:00 #在11:00的时候会执行重启的命令
reboot #重启
init 6 #重启
注销
logout #注销
Ctrl键+d #快捷键注销
exit #退出当前用户
显示ip地址的命令
ip #显示ip地址
[root@qls ~]# ip address #显示所有的ip地址
[root@qls ~]# ip a
[root@qls ~]# ip address show eth0 #显示某块网卡的ip地址
[root@qls ~]# ip a s eth0
ifconfig #查看ip地址的命令
[root@qls ~]# ifconfig #查看所有的ip地址
[root@qls ~]# ifconfig eth0 #显示某块网卡的ip地址
hostname #本身显示主机名的命令
[root@qls ~]# hostname -i
fe80::52f8:a673:eea3:dc47%eth0 fe80::e6c7:9516:7898:2bcb%eth1 10.0.0.100 172.16.1.100
[root@qls ~]# hostname -I
10.0.0.100 172.16.1.100
文件管理
目录结构
一切以根为顶点的目录
/bin #普通命令的目录
/usr/bin
/sbin #超级管理员所使用的命令目录
/usr/sbin
/boot #引导目录
/dev #设备目录
/dev/cdrom sr0 #光驱。光盘
/dev/random #产生随机数
/dev/zero #源源不断产生数据
/dev/pts/ #虚拟终端
/dev/sd* #磁盘分区
/dev/stderr #错误输出 2
/dev/stdin #标准输入 0
/dev/stdout #标准输出 1
/dev/null #黑洞
/etc #配置文件
/etc/sysconfig/network-scripts/ifcfg-eth* #网卡配置文件
/etc/hostname #主机名配置文件
/etc/resolv.conf #本地的dns配置文件
/etc/fstab #挂载设备配置文件
/etc/sysconfig/selinux #安全策略
/etc/motd #登录系统前显示内容
/etc/hosts #本地域名解析的文件
/home #所有普通用户的家目录 /home/username
/root #超级管理员的家目录
/lib #库文件 32位
/lib64 #库文件 64位
lib -> usr/lib
lib64 -> usr/lib64
/media #挂载点,可移动的设备
/mnt #临时挂载点
/opt #早期第三方软件安装目录
/proc #虚拟的信息,存放系统实时状态信息
/run #程序运行产生的pid文件存放点
/srv #物理设备的信息
/sys #物理设备
/tmp #文件的临时的存放点
/usr #安装软件目录
/usr/local
/var #可变的目录
/var/run #pid文件
/var/log #日志
/var/log/messages #系统日志
/var/log/secure #用户登录日志
路径的定位
linux中一个点和两个点是什么意思?
. #表示的是当前目录
.. #当前目录的上一级目录
什么是绝对路径,什么是相对路径?
以根为开头的路径就是绝对路径,以~开头也是绝对路径
不是以根开头的路径就是相对路径
[root@qls ~]# cd /etc/sysconfig/ #绝对路径
[root@qls /etc/sysconfig]# cd network-scripts/ #相对路径
文件管理的基础命令
cd #切换目录
cd / #切换到根目录
cd . #保持当前目录
cd .. #切换到当前目录的上一级目录
cd ~ #切换到当前用户的家目录下
cd #默认切换到当前用户的家目录下
cd - #切换到上一次所在的目录
pwd #显示当前所在位置
tree #以树状形显示目录结构,yum install -y tree
选项:
-a #显示隐藏文件
-d #只显示目录
-f #只显示文件
-F #给目录加个标识符
-L #查看目录的深度,层级,后面跟的是正整数
ls #显示目录列表
选项:
-a #显示所有文件,包括隐藏文件
-l #以长格式显示目录列表,带属性信息
-d #只显示目录本身信息
-i #显示inode号
-h #以人类可读的形式文件大小
-F #给显示出来的目录加个标识符
-S #根据文件大小排序
-t #根据时间进行排序
-r #倒序排序
-1 #显示列表
mkdir #创建目录
选项:
-p #递归创建
-v #显示创建过程
-m #创建给目录设置其他权限
{} #生成序列,创建多个目录
mkdir oldboy{a..z}
mkdir oldboy{1..10}
mkdir old{frank,tank,egon}
touch #创建文件
1.在一个路径下,不能出现同名的文件,会改变原文件的时间戳
2.使用{},创建多个文件,区分大小写。
cp #复制,拷贝
选项
-r #递归复制
-p #保持属性
-d #保持软连接
-t #把原目标和目标位置进行替换
-a =-pdr
-i #交互式询问,系统自带别名
mv #移动
选项
-f #强制覆盖
-t #把原目标和目标位置进行替换
-i #交互式询问,系统自带别名
rm #删除
选项
-f #强制删除
-r #递归删除
-i #交互式询问,系统自带别名
别名
[root@qls ~]# alias rm='echo rm command bny'
[root@qls ~]# rm -rf /opt/
rm command bny -rf /opt/
命令练习题
1.如果我在当前在/目录下,之后执行了以下操作,请告诉我,最后我所在的目录位置
cd /etc/sysconfig/
cd ..
cd ..
cd -
cd ~
cd ..
/ 或 /home
2.当前用户是root用户,当前所在位置是/usr/local ,输入cd命令后,当前所在目录是哪里?
/root ~
3.显示当前所在位置信息
pwd
4.批量创建oldboy01,oldboy02,...oldoby05这几个目录
mkdir oldboy{01..05}
5.显示/oldboy 下面所有文件(包含隐藏文件)的详细信息
ls -la
6.在/oldboy目录下创建以你名字的目录。(已知oldboy目录不存在,请用一条命令实现)
mkdir -p /oldboy/frank
7.在你名字的目录下面创建两个文件,分别为test.txt,test.log
touch /oldboy/frank/test.{txt,log}
8.把test.txt文件移动到/tmp目录下面
mv /oldboy/frank/test.txt /tmp
9.把test.log文件重命名为test.sh
cd /oldboy/frank/
mv test.log test.sh
10.删除test.sh这个文件
rm -f test.sh
11.删除oldboy这个目录
rm -rf /oldboy
12.切换到/tmp目录下,查看当前的工作位置,同时创建data1、data2、data3、共三个目录。
cd /tmp
pwd
mkdir data{1..3}
13.接上一题,分别在data1、data2、data3三个目录下创建3个文件,名字为oldboy1、oldboy2、oldboy3.然后查看/tmp目录的整个目录结构情况,最后检查下data1和oldboy1两个对象的属性。
touch /tmp/data{1..3}/oldboy{1..3}
tree /tmp
ll /tmp/data*/oldboy1
ll -d /tmp/data1
14.把/etc/hosts文件复制到/tmp/data1目录下,然后把data1目录复制到/opt/目录下。
cp /etc/hosts /tmp/data1
cp -a /tmp/data1 /opt
15.将/tmp/data1目录移动到/root目录下,然后删除/opt/data1目录下的hosts文件,最后删除/opt目录下的data1目录。
mv /tmp/data1 /root
rm -rf /opt/data1
查看文件命令
echo #所见即所得
选项
-e #支持特殊符号的含义
换行符
tab键
[root@qls ~]# echo $PS1
[u@h W]$
[root@qls ~]# echo '$PS1'
$PS1
[root@qls ~]# echo "$PS1"
[u@h W]$
单引号 强引用,所见即所得
双引号 所见即所得,支持变量,会解析变量
不加引号 所见即所得,出现空格不会看做是个整体,会解析变量,支持通配符
反引号 先执行反引号里面的命令,把结果交给外面的命令。和$()作用一样
[root@qls ~]# echo hello world > oldboy.txt
echo命令可以创建文件,也可以写入内容到文件中
cat #查看文件内容
选项
-n #给显示内容加上行号
-A #给每行的结尾加上标识符
#使用cat创建一个新文件。可以写入内容
[root@qls ~]# cat >oldboy.sh<<EOF
> oldboy
> egon
> EOF
cat >>oldboy.sh<<"EOF"
tank
$jason
EOF
more #分页显示文件内容,文件结束时,会自动退出文件
选项
-n(数字) 指定一页显示多少行
+n(数字) 指定从第几行开始显示
内部命令
空格或f 向下翻页
b 向上翻页
回车 下一行
/ 搜索
= 显示当前光标所在行
q 退出
less #分页显示文件内容,文件结束时,不会自动退出
选项
-N #显示的时候加上行号
内部命令
空格或f 向下翻页
b 向上翻页
回车 下一行
/ 搜索,会高亮显示,n向下查找,N向上查找
= 显示当前光标所在页,第几行到第几行,会显示字节大小
q 退出
head #显示文件头部信息,默认显示前十行内容
选项
-n (数字) #取消默认输出,指定显示几行
-n(数字) #指定显示文件头部几行信息
-c #显示头部几个字符
tail #显示文件尾部信息,默认显示十行内容
选项
-n #取消默认输出,指定显示几行 简写 -数字
-c #显示尾部几个字符,最后一个是换行符
-f #实时查看文件的更新
-F #实时查看文件的更新,文件不存在时,不会退出,会一直尝试读取该文件
tailf #实时查看文件的更新,在磁盘不更新时,不会读取磁盘,减少磁盘的读写。
grep #文本处理工具,过滤,加上颜色
选项
-i #忽略大小写
-v #排除
-n #给过滤出来的内容加上所在文件中的行号
-c #统计过滤出来的内容总共几行
-w #精确匹配,只过滤要过滤出来的字符,而不是包含该字符串的字符
-o #只显示过滤出来的内容
-E #支持使用扩展正则
-A #匹配过滤的内容,在向下匹配n行
-B #匹配过滤的内容,在向上匹配n行
-C #匹配过滤的内容,在向上和向下各匹配n行
正则
^ #以什么开头
$ #以什么结尾
^$ #空行
. #匹配任意一个字符
* #前面一个字符出现0次或者0次以上
.* #所有
[] #整体,包含[]里面的字符
| #或者