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

05-11--第二天笔记

时间:2016-05-13 05:21:44      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:基础命令

M19期第二天笔记,错误之处请改正


1. linux哲学思想

一切皆文件

小型单一程序

避免和用户交互(尽量不用图形界面)

配置数据是存放在文本当中



2. linux里面判断用户是否可以使用root用户实际上是靠用户的uid,uid是系统自动分配的,root管理员的用户id为0,普通用户6版本为500+, 7版本为1000+

查看id的命令   id -u 用户名


3. 用户登录时不同的方式登录的界面会有不同的显示方式:

查看登录方式可以使用:

tty     这个命令会显示如下:

直接物理终端(也就是本机加上显示器和键盘设备) /dev/console

虚拟终端:tty命令显示的tty为本地终端登录的

/dev/tty# #代表1-6,这里没有固定的那就非要要是图形界面,是会变化的

虚拟终端里面还有一类是图形终端,一般是桌面环境下打开的终端

     模拟终端 :图形界面打开的命令行以及使用ssh登录,xshell远程登录的

    /dev/pts#  这个可以有很多个


echo “hellow ,world” > /dev/tty1  可以给用户其他终端发信息,但是需要root用户

普通用户wall iamzou > /dev/pts2



4. 交互式登录:启动终端后,在终端设备附加一个交互式应用程序

GUI: Graphic User Interface

GNOME   根据c开发,图形库gtk

KDE 根据C++开发,图形库qt

XFCE 轻量级桌面

CLI   Command Line Interface

shelle程序:  sh  csh tsh  ksh   bash  GPL  zsh


当我们输入命令并敲下回车键之后:系统会提请shell程序找到键入命令所对应的可执行程序或者代码,并由其分析后提交给内核分配资源,将其运行

5. shell中可执行的命令有两种:

内部命令:由shell自带的,而且可以通过某个命令形式实现

外部命令:在当前系统的某个文件路径下有对应的可执行程序文件

可以通过which,whereis命令查看

区别外部或者内部命令的命令是

type COMMAND

hash命令:shell搜寻到的外部命令的路径结果会缓存到key-value键值对存贮。

如果前面执行过是可以缓存到hash里的

hash  会显示所有调用的外部命令的总数 

哈希算法:当运行命令之后,会缓存到内存当中,下次运行调用内存的命令


  type cat   type 后面加上命令,显示这个命令是内部命令,还是外部命令

  which echo 显示命令二进制文件的完整路径,可以看到别名

  whereis cat 同时显示完整的路径以及帮助文档的路径,不能看到别名




    shell提供字符界面的窗口,是一个命令解释器,不简单的运行小命令,还会支持高级的语言,(如循环,if语句)

当前系统上显示使用上的shell   echo$SHELL

变量就是内存空间,就是一个名字,代表一些数据的集合,

linux当中显示支持的shell   cat /etc/shells

echo $PS1  显示的左边的

echo $PATH   显示米命令的存放位置


6. 文件颜色

    cat /etc/DIR_COLORS  可以配置文件的颜色:

蓝色为目录文件,绿色为可执行文件,红色为压缩文件

7. 命令格式  command [options..] [arguments..]

选项,启用命令的某个功能,可以短格式和长格式

参数:命令的作用对象,文件或者目录,用户等


8. 请求别人事实操作帮助:

screen  

两个人用同一用户登录同一服务器,被帮助的人需要开启回话

screen -S  help   菜鸟请求帮助

screen -x help 大神前来,之后两个界面就可以达到同步了

exit  crtl+c  退出


crtl+c  取消、中断

crtl+d   结束、正常退出(这是在执行某个命令的时候)

crtl +d  登出注销  (这是在没有执行命令的时候)

crtl +l  清屏

多条命令一起写,可以用;分开

\可以换行写命令,\在一行最后面回车


9. date 操作系统时间

-d 与--date=string 一个意思  描述时间段

-s  与 --set=string 一个意思

下面的命令都要在前面用+

%a  显示精简格式的星期日期

%a  显示长的星期 ,如Sunday

%b   显示短的月份的名字  Jan

%B   显示长格式的月份名字

%c   显示格式为: Thu Mar  3 23:05:25 2005

%C   显示世纪的名字,这个不怎么用

%d   显示这是月中的哪一天   01-31

%D   等同于%m/%d/%y   相当于05/11/16  月日年

%e   这是在这个月的那一天  =%d

%F   等同于%Y-%m-%d  2016-05-11  年月日

%g   这一年的后两位,也就是16年

%G   这一年,以4位显示,2016,相当于%C%g

%h   短的月名  等同于%b

%H    小时  00到23

%I    小时  01到12

%j    在这一年的哪一天  001到365

%k    小时  0到23

%l    小时  1到12

%m    月   0到12

%M    分钟  00到59

%n    换行,增加新的一行,别的没有

%p    显示是上午还是下午 AM 或者 PM

%P    同上,只不过这个大写的P  ,显示小写的am或者pm

%r    12小时制   07:31:54 PM   显示具体时间和上午或者下午

%R    时分   18:00   24小时制

%s    从1970年01月01号到现在过的秒数

%S    秒数   00到60

%t    tab空格

%T    分时秒   19:36:48

%u    以数字方式显示星期, 1是星期一   ,7代表sunday

%U    本年度第几个星期几,  假设今天周二,输入后返回12,那这是本年第12个周二

%w    数字显示星期几,0代表sunday

%W    本年第几个星期,以周一为新的一周

%x    05/11/2016    月/日/年

%X    07:42:38 PM   时分秒 上下午

%y    16年

%Y    2016

%Z    显示时区   CST

%z    +0800

%:z   +08:00

%::z  +08:00:00



显示前天是星期几:date --date="2 days ago" +%a

date -d -2 +%A

把日期设置时间为某一时刻: date --set="2008-08-08 08:00"  

date 080808002008.30  月日时分年秒,年和秒之间有小数点

hwclock  硬件时间

hwclock -s --hctosys 以硬件时间为准

        -w --systohc  以软件时间为准

cal 日期  

cal 2017  显示2017年的年历


10. nano 文本编辑工具

crtl+o 存储文件

crtl+r 把某个文件给读近这个文件

crtl+x 退出


11. /etc/issue  用户登录信息

\r  内核信息

\m  系统架构

\n  显示登录的主机名

\t  显示时间

\l  显示登录的终端类型  如tty 或者pts

修改/etc/centos-release文件里面 的内容,当执行命令lsb_release -a 的时候也会发生改变,这样修改版本号,可以再一定程度上防止黑客捣乱。



12. echo   显示文字

-n  不自动换行

-e  echo -e  支持特殊的控制信息 ‘hello \c‘

\a 发出报警声音

\b  回撤一个字符

\c 不换行

\e  向后删除一个字符

\f  把出现在\f后面的字符平移到下面一行,前面为空字符

[root@zou ~]# echo -e "abc\fabc "

abc

  abc 

\n  换行,增加新的一行

\r  在\r后面的内容会逐个字符的替换前面自左向右的字符

[root@zou ~]# echo -e "abc\rxx"

xxc

\t  tab空格

\\ 显示反斜杠  \

\0nnn  n为1到3  插入八进制所代表的ASCII字符

\xnn   n 为1到2  插入十六进制所代表的ASCII字符


echo "the user is `whoami` and my work is on $PWD"

单引号强引用,比较傻

双引号弱引用,聪明   会把变量里面代表的内容也显示出来

反向单引号``  先执行引号内的内用,这里面一般跟的是命令,最聪明  等同于$(command)

{} 大花括号,这个可以使用笛卡尔乘积,{a,b,c} 代表a, b, c 



bc   计算器  2^3 =  8



13. 查找帮助:

whatis  后跟命令,会告诉我们这个命令,简单说是干神魔的 ,等同于 man -f

这个命令是查找命令数据库里面的内容的,更新数据库的方法有

6版本上用makewhatis

7版本上用mandb

/usr/share/man

man1  用户命令

man8  管理类的命令

man2  系统调用

man3  C库调用

man4  设备文件以及特殊文件

man5  配置文件格式

man6  游戏

man7  杂项

man9  linux内核api 


用法: man 5 issue


使用man的一些快捷键:

空格键,crtl+v  crtl+f   向下翻一页

b    向文件收不翻屏

d ^D  向文件尾部翻半屏

u     向文件首部翻半屏

回车   向为文件尾部下走一行 

crtl+N e ^E j ^J   这几个也是向下翻一行

y  ^Y  ^P  k  ^K   这几个是向上翻一行

p  跳转到文件首部,第一行

34  跳转到第34行

1G  跳转到文件首部  这个是假shift,而不是crtl

G   跳转到文件尾部

查找man里面的字符   (这里是不区分文字大小写的)

/字符串   向下     n 顺序  N逆序  

?字符串   向上    同上


man -k passwd  会把whatis数据库当中的所有和这个passwd字符有关的都给你找出来

 

   


  *****man的配置文档**********

  版本6 /etc/man.config 

  里面写入 MANPATH  /path/to/file  指明新的手册位置 

 

 

 如果是想看一些额外的帮助文档可以使用:

  man -M /PATH/To/Somewhere command  到指定的位置搜索command命令的帮助文档



  练习:修改用户登录时显示主机名,时间和登录方式(tty还是pts)

  这里用的文件是/etc/issue

  whereis issue 按照提示操作

  man 5 issue  再里面并没有直接内容,但是你会看到agetty(8)

  man 8 agetty  

  /hostname 查找有\  且有单个字母 的位置 会看到不同字母代表的意思

  vim /etc/issue

  the kernel login \l ,the time is \t and the hostname is \n


 


  info 后直接跟命令,跟网页一样,有些*位置是可以按回车,连接到别的页面

  方向键

  PgUp   跳转页面

  PgDn

  Tab    移动到下一连接 ,这是在这个页面下找有*,也就是连接,光标会跳转到这个位置,但是不会切换

  Home  显示主题首部

  回车键   进入选定的链接

  n   下一链接

  p   前一链接

  u  上一层

  l   到后一个链接

  s   文本搜索

  q  退出


  在线帮助

  第三方程序官方文档

  各种指南

  http://kbase.redhat.com

  http://www.redhat.com/docs

  http://access.redhat.com

  第三方服务: sosreport 命令生成的文件(在/tmp目录下),将这个文件发给红帽或者专业技术人员,让他们分析,当然之前要买服务花钱才可以

  利用搜索引擎或者一些专业网站:

  http;//tldp.org   在这个网页里面咨询一些问题和查看一些报错的解决办法

  http://www.slideshare.net

  http://www.goole.com

  搜索google是的技巧:

  openstack filetype:pdf  这样就会搜索关于openstack的pdf文章了

  rhca site:redhat.com/docs  在这个网页里面搜索文章


 


14. 历史命令 

  history

  !-2  执行倒数第二条

  ! #   执行第n条命令

  crtl+p 执行上一条命令

  !screen   执行最近一条有screen开头的命令

  crtl+r   之后输入已经执行过的命令中的字符串即可

  你输入的内容应该是中间位置的[]里面,后面为匹配内容

  !$   调用上一条命令中的参数

  按esc,松手敲点 (同上公用)

  !cp:2  从命令历史中搜索以产品开头的命令,并获取它的第二个参数

  实例:

[root@zou tmp]# ls /etc/nginx/nginx.conf /etc/issue

/etc/issue  /etc/nginx/nginx.conf

[root@zou tmp]# cat !ls:2

cat /etc/issue

CentOS release 6.8 (Final)

Kernel \r on an \m

kernerl \l, the time is \t and hostname is \n

!cp:$   获取上一条产品命令的最后一个参数


本文出自 “北极的linux” 博客,请务必保留此出处http://941012521.blog.51cto.com/9253690/1772505

05-11--第二天笔记

标签:基础命令

原文地址:http://941012521.blog.51cto.com/9253690/1772505

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