码迷,mamicode.com
首页 > 其他好文 > 详细

马哥教育面授班20-2第一周学习笔记5

时间:2016-07-23 21:24:38      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:学习笔记   linux运维   

系统用户
 PS1 定义提示符的格式 例如:

 PS1=XXX 当前用户名就会被临时修改
 echo $PS1
 [\u@\h \W]\$   //u表示用户,h 主机名 W 当前的文件夹

 #  管理员
 $  普通用户

 当我们输入一个命令后,它会通过shell交给kernel,kernel来判断这个命令的类型

 命令类型:

  内置命令 :内核自带的 kernel自身就有的

  外置命令 :GUN file 安装的文件

查看一下内核

 cd /boot/
 ll vmlinuz-3.10.0-327.el7.x86_64 -h  //h表示符合人类查看的方式,查看数据的大小比较方便,这个内核只有5M。这里包含了所有的内置命令

 root@centos7 ~]# type cat
 cat is /usr/bin/cat                    //外部命令
 [root@centos7 ~]# type type
 type is a shell builtin                  //内置命令
 [root@centos7 ~]# type cd
 cd is a shell builtin                       //内置命令



[root@centos7 ~]# type who
who is /usr/bin/who                     //外部命令
[root@centos7 ~]# who                        //运行这个命令
root     :0           2016-07-21 17:06 (:0)
root     pts/0        2016-07-21 18:55 (:0)
root     pts/1        2016-07-21 19:03 (172.18.16.73)
root     pts/2        2016-07-21 21:32 (172.18.16.73)
[root@centos7 ~]# type who
who is hashed (/usr/bin/who)                //hashed:哈希,当一个外部命令运行过后,对它进行一次哈希运算放到cache中,下次再运行时候能快速读取。


type chmod

chmod 000 /root/111

type chmod  which chmod 都能查看命令的路径,但是which只能找外部命令,不能找内置命令,例如 which type 就失败了

[root@centos7 ~]# which cat
/usr/bin/cat
[root@centos7 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@centos7 ~]# type cat
cat is /usr/bin/cat
[root@centos7 ~]# cp /usr/bin/ca
cairo-sphinx         calibrate_ppa        cancel               caribou-preferences  catman
cal                  canberra-boot        cancel.cups          cat                  
ca-legacy            canberra-gtk-play    captoinfo            catchsegv            
[root@centos7 ~]# cp /usr/bin/cat /usr/local/sbin/cat
[root@centos7 ~]# cat 111
[root@centos7 ~]# type cat
cat is hashed (/usr/local/sbin/cat)

[root@centos7 ~]# rm /usr/local/sbin/cat
rm: remove regular file ‘/usr/local/sbin/cat’? y
[root@centos7 ~]# cat 111
-bash: /usr/local/sbin/cat: No such file or directory   // 一直按照内存的路径来查找的。
[root@centos7 ~]# which cat
/usr/bin/cat
[root@centos7 ~]# type cat
cat is hashed (/usr/local/sbin/cat)
[root@centos7 ~]# /usr/bin/cat 111  //给它加上路径就可以了
 为了彻底解决,就得从缓存到内存解决
 root@centos7 ~]# hash
hits    command
  14    /usr/bin/screen
   1    /usr/bin/rm
   4    /usr/bin/chmod
   5    /usr/local/sbin/cat
   1    /usr/bin/touch
   3    /usr/bin/who
   1    /usr/bin/cp
   2    /usr/bin/vi
   2    /usr/bin/w
   2    /usr/bin/ls
   1    /usr/bin/clear
[root@centos7 ~]# hash -d cat     //hash -r 全部清除


[root@centos7 ~]# hash
hits    command
   0    /usr/bin/cat    //这样就可以从新按照默认路径来搜索了
   cat 111      // ok





[root@centos7 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin   //外部命令存放的路径 搜索的顺序第一个优先级更高,如果我偏偏就想让APP1在/usr/local/bin作为优先则可以
 /usr/local/bin/APP1来执行,否则不写路径找不到


chmod $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

内置命令优先级高
然后根据 hash $PATH
的优先级来判断


enable -n cd //禁用内置命令方法
enable  cd    //启用


root@centos7 tmp]# enable -n cd
[root@centos7 tmp]# type cd
cd is hashed (/usr/bin/cd)      //因为内部命令不在了外部命令还在,centos6不支持这个


whereis chmod  //只在PATH变量里搜

root@centos7 tmp]# ls \
> -l \
>  yum.log                                   //对于较长的命令可以分行显示出来

[root@centos7 tmp]# ls;pwd;ifconfig         //对于短命令可以一起执行并分别生效


date :
 显示日期和时间
 date -u    //显示格林尼治时间

clock :
 显示硬件时间

 同步时间方法:

 clock -s   //以硬件为准同步时间

 clock -w   //以系统时间为准同步时间


 date  月 日 小时 分 年 秒

 date  091811302012.20

例如:

root@centos7 ~]# date -u
Fri Jul 22 02:12:11 UTC 2016
[root@centos7 ~]# date 091011202012.20     //手工设置了一个时间
Mon Sep 10 11:20:20 CST 2012
[root@centos7 ~]# clock
Fri 22 Jul 2016 10:19:24 AM CST  -0.492925 seconds
[root@centos7 ~]# clock -s                    //通过硬件校验回正确的时间
[root@centos7 ~]# date
Fri Jul 22 10:19:33 CST 2016


cal:
 显示日期的命令

 [root@centos7 ~]# cal 09 1752
   September 1752   
Su Mo Tu We Th Fr Sa
       1  2 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30                     //宗教原因造成的



cat /etc/issue

[root@centos7 ~]# vi /etc/issue
 \S
 Kernel \r on an \m
 STOP!!! THIS IS MY ROOM           //添加后以字符界面行进入会出现。

nano /etc/issue

loginout =ctrl + d



[root@centos7 ~]# systemctl restart network   //重启网卡程序



centos 7 命令安装

可以选择在查看本机是否安装了 screen

type screen

如果没有安装则有两种安装方式:
 1:检查光盘已经挂载后,在Packages包中找到screen-4.1.0-0.21.20120314git3c2946.el7.x86_64.rpm 文件双击安装;

 2;df //查看光盘已经挂载
  [root@centos7 ~]# df     
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/sda2       52403200 3348332  49054868   7% /
devtmpfs          923776       0    923776   0% /dev
tmpfs             938316     144    938172   1% /dev/shm
tmpfs             938316    9136    929180   1% /run
tmpfs             938316       0    938316   0% /sys/fs/cgroup
/dev/sda5       20961280   32932  20928348   1% /testdir
/dev/sda1         201388  141756     59632  71% /boot
tmpfs             187664      20    187644   1% /run/user/0
/dev/sr0         7587292 7587292         0 100% /run/media/root/CentOS 7 x86_64

rpm -i /run/media/root/Centos7\7\x86_64/Packages/screen-4.1.0-0.21.20120314git3c2946.el7.x86_64.rpm

安装成功后开始试验

试验目的:帮助用户解决系统应用问题
试验完成的前提条件:双方都要登陆同一个服务器,并使用相同的账号


求助方:
type screen  //查看是否安装screen
 screen
screen -S zcl1840  //打开新的screen session :zcl1840为链接账号

帮助方:

which screen //查看screen的路径

screen -ls //查看是否有求助账户登陆

screen -x zcl1840  // 加入回话:加入求助账户建立链接

连接后两者可以在一个桌面上操作。
若双方任意一方exit退出则链接中断。


通过screen建立一个后台程序,防止中断。例如升级程序在后台运行。

通过无限循环 yes命令模拟
 
  1: screen
  2:  yes
  3:  ctrl + a     //停顿一下按 d 将yes无限循环程序转入后台
  4: screen -ls  //查看到后台进程程序号和随机用户名pts-0.centos7
      screen -x  对名应的用户   //加入后原来后台运行程序则显示在桌面中
  5: screen -r  session //恢复某个进程:如果就一个后台进程则r后面不添加用户名,若有多个则添加对应的进程名,可以恢复这个进程或者ctrl+c终结进程
  6: 若结束进程后,screen -r  There is no screen to be resumed   exit 即可



echo :
 显示字符命令


[root@centos7 ~]# echo aaa bbb ccc
aaa bbb ccc
[root@centos7 ~]# echo -n aaa bbb ccc
aaa bbb ccc[root@centos7 ~]#


变量:表示一些字符串的集合

[root@centos7 ~]# echo $UID
0
[root@centos7 ~]# echo \$UID           //加入“\”后转意
$UID
[root@centos7 ~]#

[root@centos7 ~]# echo ‘$UID‘        //‘‘强引用
$UID
[root@centos7 ~]# echo "$UID"         //“” 弱引用
0
例如:
 [root@centos7 ~]# echo "echo $UID"
 echo 0
 [root@centos7 ~]# echo ‘echo $UID‘
 echo $UID
 [root@centos7 ~]# echo `echo $UID`   // 此命令= $(echo $UID)
  0


  echo -e   //能让后面的字符串显示一些特殊功能

  例如:
       [root@centos7 ~]# echo "aaa \c"
        aaa \c                             //没有加e
       [root@centos7 ~]# echo -e "aaa \c"    
       aaa[root@centos7 ~]#                  //加入e后 \c参数才发生效果


      root@centos7 ~]# echo -e "\a"      //  \a 的作用是发出声音
      [root@centos7 ~]#

echo命令选项:

-n 不在字符的最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 退格键
\c 最后不加上换行符号;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\\插入\字符
\0nnn 插入nnn(八进制)所代表的ASCII字符
echo -e "\033[43;31mabcd \033[0m"        //43为被景色,31为字体颜色 。我在CRT上用不好用


\xHH插入HH(十六进制)所代表的ASCII字

马哥教育面授班20-2第一周学习笔记5

标签:学习笔记   linux运维   

原文地址:http://zhangchunlai.blog.51cto.com/4796141/1829101

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!