2

久未见 提交于 2019-12-04 09:45:53

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      #支持特殊符号的含义
            \n  换行符
            \t  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次以上
    .*      #所有
    []      #整体,包含[]里面的字符
    |       #或者
    
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!