Linux 入门篇第五章
文章导航
- 上一章说了很多命令,都是一些常用的命令,这一章继续我们的命令
- 不过比较精确了,那我们开始
命令导航
screen命令
- 这个命令是一个命令界面远程命令
- 创建新screen会话
- screen –S [SESSION]
- 加入screen会话
- screen –x [SESSION]
- 退出并关闭screen会话
- exit
- 剥离当前screen会话
- Ctrl+a,d
- 显示所有已经打开的screen会话
- screen -ls
- 恢复某screen会话
- screen -r [SESSION]
- 创建新screen会话
- 这个工具可以开启一个新窗口,开启一个虚拟的窗口
- 首先安装软件
[root@CentOS7 /]# yum install screen
- 那这个东西有什么用,比如:
- 我用以下命令
[root@CentOS6 ~]#yes 他会无限制的运行
-
我这里把他关了
- 那这个yes还在运行吗
- 有一个程序可以来查看某一个进程
[root@CentOS6 ~]#ps aux|grep yes 这是看进程的命令
root 3264 0.0 0.0 103332 848 pts/0 S+ 10:41 0:00 grep yes
- 他还在运行,一关了就只看的到他的进程,看不到他在运行了
- 所以我们要关了一样可以用,也就是也在后台去运行了,前台没了,那么这么进前台,有一个命令,那我开始演示
首先执行命令:
[root@CentOS7 /]# screen -S linux 首先开启一个会话,Linux就是我开启的会话
让后我在另外一台电脑上就可以看到一个会话
[root@CentOS7 ~]# screen -ls
There is a screen on:
3107.linux (Attached) 这个就是我开启的会话
1 Socket in /var/run/screen/S-root.
开启了一个会话以后在进入这个linux会话,输入这个命令,你就可以进入会话了
[root@CentOS7 ~]# screen -x linux 进入会话命令,前提你的电脑要通过SSH协议链接到这台电脑
![2.png](https://upload-images.jianshu.io/upload_images/6132055-60968a6a30a4a0b9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这两部就同步了
记住要前提链接到这台哦,你创建以后你可以链接多个人进来,这样数据就完全同步了
script
- 这个命令的命令界面录屏,如:
执行这个命令就开始录屏了
[root@CentOS6 ~]#script -t 2> time.log -a haha.log
time.log是时间名字随便 haha.log 是命令名字随便 ,这样就开始记录命令了
如果录屏完毕以后输入下面命令就退出录屏了
[root@CentOS6 ~]#exit
exit
Script done, file is linux.log
那这么回看,用下面命令就可以回看了,等的需要耐心哦
[root@CentOS6 ~]#scriptreplay time.log lin.log
这样就可以在命令界面录屏了
echo
- echo 是显示字符串用的,echo 本身是回显的意思
- 功能:显示字符
- 语法:echo [-neE][字符串]
- 说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号
- 选项:
- -E (默认)不支持 \ 解释功能
- -n 不自动换行
- -e 启用 \ 字符的解释功能
- 显示变量
- echo "$VAR_NAME“ 变量会替换,弱引用
- echo '$VAR_NAME‘ 变量不会替换,强引用
- 详细解析
- 启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
- \a 发出警告声
- \b 退格键
- \c 最后不加上换行符号
- \n 换行且光标移至行首
- \r 回车,即光标移至行首,但不换行
- \t 插入tab
- \ 插入\字符
- \0nnn 插入nnn(八进制)所代表的ASCII字符
- echo -e '\033[43;31;5mmagedu\033[0m'
- \xHH插入HH(十六进制)所代表的ASCII字
小命令
[root@CentOS7 /]# rz 是吧windows文件传到linux里面
[root@CentOS7 /]# sz 是吧linux传到windows里
[root@CentOS7 ~]# hexdump anaconda-ks.cfg 让文件以二进制来显示
[root@CentOS7 ~]# dos2unix 把Windows文本格式转化为Linux文本格式
[root@CentOS7 ~]# unix2dos 把Linux文本格式转化为Windows文本格式
[root@CentOS7 ~]# yum install dos2unix 这个需要安装
[root@CentOS7 ~]# df 查看磁盘
[root@CentOS7 ~]# file anaconda-ks.cfg 查看编码机制
几个常用变量
- 先说几个简单的变量,以后再说详细的变量,为了熟悉下
[root@CentOS7 ~]# echo $SHELL shell 变量
/bin/bash
[root@CentOS7 ~]# echo $PATH PATH变量,找外部命令就在这几个目录里面找的,如找不到就给你说找不到了
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@CentOS7 ~]# echo $USER 显示当前用户名和pwd命令一样
root
强引用,若引用等
- 说简单,按照我的理解就是聪明,傻,还有聪明和傻都有,什么意思看下面
[root@CentOS7 ~]# echo "echo $USER" 双引号两者之间
echo root
[root@CentOS7 ~]# echo echo '$USER' 单引号是最傻的
echo $USER
[root@CentOS7 ~]# echo `echo $USER` 反向单引号,这是最聪明的,里面必须是一个命令
root
我常用的是反向单引号
这个命令可以这么用
[root@CentOS7 ~]# touch `hostname`.log
[root@CentOS7 ~]# ls CentOS7.3.log 就是我创建出来的
anaconda-ks.cfg Desktop Downloads Music Public Videos
CentOS7.3.log Documents initial-setup-ks.cfg Pictures Templates
你还可以用他来年月日文件
[root@CentOS7 ~]# touch `date +%Y-%m-%d`.log
[root@CentOS7 ~]# ls
2019-10-23.log Desktop initial-setup-ks.cfg Public
anaconda-ks.cfg Documents Music Templates
CentOS7.3.log Downloads Pictures Videos
你还可以这样玩
[root@CentOS7 ~]# echo i am `whoami`
i am root
还可以这样组合用大括号
[root@CentOS7 ~]# touch file{1,3,5,7}
[root@CentOS7 ~]# ls
2019-10-23.log Desktop file1 file7 Pictures Videos
anaconda-ks.cfg Documents file3 initial-setup-ks.cfg Public
CentOS7.3.log Downloads file5 Music
删除的话也可以这样删除
[root@CentOS7 ~]# rm -rf file{1,3,5,7}
[root@CentOS7 ~]# ls
2019-10-23.log Desktop initial-setup-ks.cfg Public
anaconda-ks.cfg Documents Music Templates
CentOS7.3.log Downloads Pictures Videos
还可以创建很多组合
[root@CentOS7 app]# touch file{1,2,3}.{.txt,log}
[root@CentOS7 app]# ls
file1.log file1..txt file2.log file2..txt file3.log file3..txt
也可以实现范围组合
[root@CentOS7 app]# echo {1..100}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
还可以反过来
[root@CentOS7 app]# echo {10..1}
10 9 8 7 6 5 4 3 2 1
也可以搞负数
[root@CentOS7 app]# echo {-10..10}
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10
也可以定位数
[root@CentOS7 app]# echo {0000..50..2} 0000是格式几位数
0000 0002 0004 0006 0008 0010 0012 0014 0016 0018 0020 0022 0024 0026 0028 0030 0032 0034 0036 0038 0040 0042 0044 0046 0048 0050
也可以搞字母,也可以搞大写
[root@CentOS7 app]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
还可以1到100000000你可以试试,用你的电脑看你的电脑有多牛B
[root@CentOS7 ~]# echo {1..10000000}
命令补全
- 内部命令:
- 外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令
- 用户给定的字符串只有一条惟一对应的命令,直接补全否则,再次Tab会给出列表
- 路径补全
- 把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
- 如果惟一:则直接补全
- 否则:再次Tab给出列表
双击Tab键
- command 2Tab 所有子命令或文件补全
- string2Tab 以string开头命令
- /2Tab 显示所有根目录下一级目录,包括隐藏目录
- ./2Tab 当前目录下子目录,包括隐藏目录
- *2Tab 当前目录下子目录,不包括隐藏目录
- ~2Tab 所有用户列表
- $2Tab 所有变量
- @2Tab /etc/hosts记录 (centos7不支持)
- =2Tab 相当于ls –A (centos7不支持)
- 2是2下的意思,别以为是2,就是按两下tab键