20160217自学Linux_最基本(ls,cd,date,cal,stat,printenv,flie)+使用帮助

05

无论是GUI还是CLI都是一种Shell

GUI:graphic User Interface:图形用户接口

Linux的桌面叫做(X-Window):电影中X-战警的X表示的是超级的意思,这里的X是超级的意思

Linux三种桌面:Gnome,KDE,Xface

CLI:Command Line Interface:命令行接口

有很多shell,如:bashcshkshzsh

   内核是和硬件交互的,提供方式的叫做系统调用,但是开发人员用系统调用开发就太困难,所以就出现了API,也就是库,也叫做应用程序接口,这样有了这个接口作为中间件,开发不用直接面对底层硬件,开发就容易多了

    库就是LibraryAPI库是程序,但是没有执行入口,所以只能被调用。

IDE:集成开发环境

window下的system下有一系列的.dll文件

其实就是动态链接库,就是dynamic link Library(翻译上就是库的意思)

而在linux下就是叫做.so   shared object

以前没见过,现在记住就ok

最小的linux我们做到2-3M就可以实现

所以为什么装出来这么大,就是各种程序的补充而已

window为什么这么大,就是装了很多程序,而且是必须要装,而且装系统自带

login

用户名:计算机所能处理的最快的不是字符,而是数字

用户ID

访问入口,是可以访问,比如一个家,你是跟这个家有关的人,你就有进入大门的权利,所以就有了认证:你是谁

认证机制:Authentication:识别和鉴别真假   认证:othintication

认证了不是啥也能干,指定谁进来之后,谁可以干什么,就有了授权

授权:Authorization                授权:ozorization

为防止滥用职权,不该谁做的事情谁做了就是错误,就有了审计这东西

审计:Audition对计算机而言,审计的话大多数看日志来完成的

 

magic number:魔数

shell   ------------------     #!/bin/bash   脚本第一行必须要这么写

 

#command(命令)options(选项) .. arguments(参数) ...

选项: 修改命令执行的特性     有一些选项是可以带参数的

短选项

长选项

参数:指定命令的作用对象

ls: list  列表,列出的意思 可以列出指定路径下的文件

目录也是一个文件,是一个路径映射文件

路径:从指定起始点到目的地所经过的位置 

 

层次化的管理机制我们叫做:文件系统(file system

绝对路径:从根开始

相对路径:相对于当前所处的位置的路径

我们无时不刻每时每刻都在某一个目录

目录:working directorycurrent directorycd

 

问:文件名是不是文件本身的数据?

文件名不是文件本身的数据。所以文件名放在什么地方,这些数据放在哪里?

 

常用命令---开始学习

一、pwd――Print  Working directory 打印工作当前的目录

二、ls 

-l 长格式

常见文件类型

-:   d:   b:   l:   c:   p:  s:

dev目录下很多这些文件类型

文件权限:9位 ,每三位一组:rwx(读,写,执行)

[root@www ~]# ls -l /dev/

drwxr-xr-x. 2 root root          80 Jul 19 17:38 bsg

上面的输出各个代表的意思是什么?

文件类型   d

文件权限   rwxr-xr-x

1,2这些就是文件被硬链接的次数   

文件的属主(owner)   root     

文件的属组(group)    root  

文件的大小(size)默认单位是字节  80

jul 19 17:38 是时间戳(这里显示的是最近一次被修改的时间戳)

每一个文件都有三个时间戳:1、访问:access  

                            2.修改:modify

                                3.改变:changemetadata,元数据

文件有两种数据:1、文件自身的数据,2、属性的数据,也叫做元数据metadata

查看时间戳用stat

如何理解修改和改变

    比如一个文件内容不动,但是改变文件名,就是改变了属性了,就不是修改

通俗来讲内容修改了,时间戳上的理解就是修改时间的改变。

20160217自学Linux_最基本(ls,cd,date,cal,stat,printenv,flie)+使用帮助_第1张图片

ls的一个选项 -h是做单位转换

[root@www /]# ls -lh

total 32K

dr-xr-xr-x.   3 root root 4.0K Jul 19 21:20 boot

-a  显示以.开头的隐藏文件

   .表示当前目录(隐藏文件以.号开头

   ..表示父目录(当前目录的上一级目录)

-A 显示所有隐藏文件,不包含...

 [root@www tmp]# ls -a

.             .esd-993         ifcfg.log         ssh-Kiidoc531jHo        

[root@www tmp]# ls -A

anaconda.log  .font-unix       ifcfg.log         program.log       

-d显示目录自身属性

[root@www tmp]# ls -ld /root

dr-xr-x---. 6 root root 4096 Jul 19 22:02 /root

 

-i  index node(文件节点,索引节点),inode 显示每个文件对应的一个数字

因为计算机识别是用数字的,而我们自己使用名称来记的。所以每一个文件都会有一个对应的数字,也就是inode。。方便计算机自身去查询

[root@www tmp]# ls -i

34233486 anaconda.log      34233489 packaging.log     63130510 systemd-private-1ITqMy  

数字叫做索引节点号

-r就是按字母的逆序显示文件,默认是顺序的显示文件

-R:递归(recursive)显示(目录的,子子目录也是会显示出来的)

递归是相当消耗资源的

20160217自学Linux_最基本(ls,cd,date,cal,stat,printenv,flie)+使用帮助_第2张图片 

三、cd

cdchange directory切换目录,不能进入文件

cd 不加任何参数回到家目录(主目录home directory)

bash的家目录就是波浪线

用户在自己的家有一切操作权限,所以用户一般执行删除增加都在家目录去执行,当然只有管理员才能进入别人的家

cd - 表示在前一个目录和当前目录来回的切换

[root@www local]# cd ~

[root@www ~]# cd /etc/sysconfig/network-scripts/

[root@www network-scripts]# cd

[root@www ~]# cd /home/mage/

[root@www mage]# pwd

/home/mage

 

type:显示命令属于哪种类型,或者可以显示默认的命令格式

经常用于查看命令是否是内置命令(shell内置)等

不同的shell内置的命令不一样的,只要显示a shell builtin就是shell的内置命令,其实bin下的命令都不是内置命令

命令类型:

内置命令(shell内置),内部,内建

外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件

[root@www mage]# type ls

ls is aliased to `ls --color=auto'

[root@www mage]# type cd

cd is a shell builtin

 [root@www mage]# type su

su is /usr/bin/su

[root@www mage]# which ls

alias ls='ls --color=auto'

        /usr/bin/ls

我们直接用ls,而不需要带上路径去执行一个命令,是因为环境变量的原因

环境变量:命名的内存空间

 

变量赋值

NAME=Jerry,为什么叫变量呢,因为NAME我还可以改NAME=HOHN

环境变量就是定义当前用户的

[root@1qewr html]# echo $NAME

Jerry

四、printenv

 [root@www mage]# printenv

printenv命令可以显示环境变量

主要是看PATH:它是使用冒号分隔符的路径

当我们执行命令的时候就会在PATH上找,找到它为止。

缓存(hash),哈希(键值数据库,在这个库里查找是O1(欧1),),会记录,不会每次都去PATH那里去找

欧1特点:就是无论你这个哈希再多再长,它查找的速度都是等效的,瞬间可以被找到

[root@www mage]# hash    只有缓存才有命中的概念---计算机组装与原理中讲到

hits命中command

   1    /usr/bin/printenv

  27    /usr/bin/ls

所以用的时候先找这个缓存,而不会去找PATH这个路径

都是找,但是缓存为王,先看缓存有没有,因为找缓存比找路径要快很多

[root@www mage]# printenv 

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

 

 

06

五、date

[root@www ~]# date  常用语shell的编程上

[root@www tmp]# date

2016年 02月 07日 星期日 01:24:34 CST

 

Date:时间管理

主板的电池

1.维持计算机的时间

Linuxrtc(开机自动会从BIOS芯片的时间获取,也就是从硬件时钟获取给系统时钟

时间服务器:ntp(读取别人的时间改变自己的时间)

 

硬件时钟----系统时钟

硬件时钟是存储在CMOS里的时钟,关机后该时钟依然运行,主板的电池为它供电那个时钟依照主板石英晶体振荡器频率工作,在启动系统后,系统从该时钟读取时间信息,之后独立运行。当调整系统时钟或与internet同步后,不会改变硬件时钟,下次启动又会变成硬件时钟的时间。

[root@www ~]# date    系统时间

Mon Jul 20 04:50:11 EDT 2015 

[root@www ~]# clock   硬件时钟

Mon 20 Jul 2015 04:50:15 AM EDT  -0.547535 seconds

[root@www ~]# hwclock    硬件时钟

Mon 20 Jul 2015 04:50:21 AM EDT  -0.287855 seconds

hwclock -w 系统时间同步给硬件时钟,改变的是硬件时间,以系统时间为准。

-s 则相反,以硬件时钟为准

 

六、如何获得命令的使用帮助

1.内部命令而言:

help CONMAND

3.外部命令:

    CONMAND --help

这是获得简要的帮助信息的

3.无论是内部命令还是外部命令都有命令手册:manual

man COMMAND---类似于说明书,使用手册

man ls

内部命令一般很少使用man去查看,一般使用help查看一些简洁的命令,因为man一下内部命令可能显示的是shell的帮助,而不是内部命令的帮助

man是分章节的:各个章节是什么用处呢,下面介绍8个章节

1.用户命令:所有用户都可以使用的命令(/bin,/usr/bin,/usr/local/bin)

2.系统调用:man 2 read

man加数字是出现第几章

[root@www ~]# whatis read(whatis 查看这个命令出现在哪一些章节

read (1)             - bash built-in commands, see bash(1)

read (1p)            - read a line from standard input

read (2)             - read from a file descriptor

read (3p)            - read from a file

3.调用

4.特殊文件(用来解释设备文件的:比如/dev下的

[root@www tmp]# ll /dev/tty

crw-rw-rw- 1 root tty 5, 0 Feb  7 00:22 /dev/tty

[root@www tmp]# man 4 tty

5:文件格式(某一个配置文件的配置的语法)

比如看passwd的格式语法。就可以解释某一个配置文件对应的语法的,在man 5下就可以知道下面:之间都是代表的是什么,像会告诉你tcpdump(抓包的一个命令)是什么:x:这个又是什么

[root@www ~]# tail /etc/passwd

tcpdump:x:72:72::/:/sbin/nologin

mage:x:1000:1000:mage:/home/mage:/bin/bash

6.游戏

7.杂项(Miscellaneous

8.管理命令(即是管理员才有的命令,如/sbin,/usr/sbin,/usr/local/sbin

 

man出来的某些命令帮助选项中,有一些符号要知道的

<>表示必须要选的

[]表示可选的

...表示可以重复多次

|:多选一

{}:分组

 

 

man出来的信息有下面几个大标题,各个代表的是什么意思

man手册中的章节黑体大标题说明

NAME:命令名称及功能简要说明

SYNOPSIS:用法说明,包括可用的选项

DESCRIPTION:命令功能的详尽说明,包括每一个选项的意义。

OPTINOS;说明每一个选项的意义

FILES:此命令相关的配置文件

BUGS:报告

EXAMPLES使用实例。如:man lvcreate看得到一些相关的举例

SEE ALSO:另外参照

 

SYNOPSIS

       date [OPTION]... [+FORMAT]

       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

修改时间:月日小时分钟年.

[root@www tmp]# date 0217212816.30

Wed Feb 17 21:28:30 CST 2016

[root@www tmp]# hwclock -w

[root@www tmp]# date

Wed Feb 17 21:29:16 CST 2016

翻屏:

20160217自学Linux_最基本(ls,cd,date,cal,stat,printenv,flie)+使用帮助_第3张图片 

查找功能:   选中了要找的字母就用n向后翻,用N就是向前翻

/KEYWORD:自前向后

?KEYWORD:自后向前

退出使用q:退出

[root@www tmp]# date +"the year is %Y. %ntoday is %d"

the year is 2016. 

today is 17.

%s second since 1970-01-01 00:00:00 UTC

 

4.在线文档:

info COMMAND  告诉你相关的历史,info只是man的一个补充,用的不多

5.补充性文档――――跟我们相关的是看内核的文档,以后会用的了

[root@www /]# cd /usr/share/doc/

[root@www doc]# ls

abattis-cantarell-fonts-0.0.12        iwl5000-firmware-8.83.5.1_1                

6.内事不决问百度,外事不决问Google

apachehadoop

 

七、cal

cal 日历    

cal 2013 出现2013整一年的日历   cal 12 2013  出现201312月的日历

 

练习

八、echo

echo是内部命令还是外部命令?其作用?  type echo

如何显示“the year is 2013.today is 26 为两行?

type echo 可以得到是内部还是外部 

[root@www doc]# echo "The year is 2013\nToday is 26"

The year is 2013\nToday is 26

 [root@www doc]# echo -e "The year is 2013\nToday is 26"   

有了-e就可以识别\n这种转义字符,还有其他的一些\t,\b之类的。

\b:退格 相关一些看man都是可以看得到的选项

wKiom1bEj1XiINIRAABVvogkXsc078.png 

将来我们在写脚本的时候会反复的用到这个命令―echo

 

九、printf

printf --format and print data   默认的是没有换行符的,而echo默认是有换行符的

[root@www doc]# printf "today is 215\nis a good day\n"

today is 215

is a good day

[root@1qewr yum-3.2.29]# echo $NAME

Jerry

[root@1qewr yum-3.2.29]# printf $NAME

Jerry[root@1qewr yum-3.2.29]#

 

file命令及其用法

[root@www ~]# file /etc/passwd

/etc/passwd: ASCII text

file查看文件类型,而type是查看命令的类型

如果man 命令中有乱码,用export LANG=en命令,然后再进入,就看不到乱码了

 


本文出自 “malinux学习” 博客,谢绝转载!

你可能感兴趣的:(dynamic,应用程序,graphic)