控制台
在计算机最初,是没有鼠标和触屏这些输入设备。
当时标准的输入设备就是键盘。
人们通过控制台和计算机进行交互,
如在ubuntu中就可以通过控制台命令来实现人机交互。
而所谓的系统调用,就是内核提供给我们的编程接口,当今的主流操作系统,全部提供的都是C语言接口。
如:
在C语言标准库这个层次,我们使用的是fopen函数打开文件,而在Linux中,我们使用open函数打开文件。open函数就是Linux的系统调用之一。
只要会C语言,就可以使用Linux的全部系统调用函数,从而间接的操作操作系统。
但是,如果所有工作都需要临时编程解决,还是太麻烦了。
于是,为了方便,有人便写了对应的可执行文件,这种可执行文件中,集成了几乎Linux的
所有常见的系统调用的接口,并且很容易操作。
这种可执行文件,就叫做:shell。
而控制台,本质上就是一个shell程序
。
linux的常用命令行
ls
格式
ls [-alrtAFR] [name...]
参数 :
- -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
- -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
- -r 将文件以相反次序显示(原定依英文字母次序)
- -t 将文件依建立时间之先后次序列出
- -A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
- -F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
- -R 若目录下有文件,则以下之文件亦皆依序列出
如以下例子:
clear
命令用于清除屏幕内容,但不停止程序工作。
输入之后:
echo
用于字符串的输出。
命令格式:
echo string
echo还可以实现更复杂的格式输出
如:
- 1.显示普通字符串:
如:
echo hello
结果为:
向屏幕中打印了hello
再比如:
echo "It is a test"
这里的双引号完全可以省略,以下命令与上面实例效果一致:
echo It is a test
- 2.显示转义字符
echo "\"It is a test\""
结果将是:
"It is a test"
同样,双引号也可以省略
- 3.显示变量
read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
#!/bin/sh
read name
echo "$name It is a test"
以上代码保存为 test.sh,name 接收标准输入的变量,结果将是:
[root@kong ~]# sh test.sh
OK #标准输入
OK It is a test #输出
- 4.显示换行
echo -e "OK! \n" # -e 开启转义
echo "It is a test"
输出结果:
OK!
It is a test
- 5.显示不换行
#!/bin/sh
echo -e "OK! \c" # -e 开启转义 \c 不换行
echo "It is a test"
输出结果:
OK! It is a test
- 6.显示结果定向至文件
echo "It is a test" > myfile
- 7.原样输出字符串,不进行转义或取变量(用单引号)
echo '$name\"'
输出结果:
$name\"
- 8.显示命令执行结果
echo `date`
执行结果为:
read
read命令用于从标准输入读取数值。
read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。
语法:
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]
参数说明:
- -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
- -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
- -p 后面跟提示信息,即在输入前打印提示信息。
- -e 在输入的时候可以使用命令补全功能。
- -n 后跟一个数字,定义输入文本的长度,很实用。
- -r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。
- -s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
- -t 后面跟秒数,定义输入字符的等待时间。
- -u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。
如以下例子:
read类似于scanf
read name
可将下一个输入的值赋予name,通过$name
输出
##du
显示文件或目录所占用的磁盘空间。
命令格式:
du [option] 文件/目录
-
-h 输出文件系统分区使用的情况,例如:10KB,10MB,10GB等
-
-s 显示文件或整个目录的大小,默认单位是KB
写法的区别: -
du -sh xxx 显示总目录的大小,但是不会列出目录中的每一个文件
-
du -sh xxx/* 列出xxx下每个目录和文件所占的容量
##df
用来检查linux服务器的文件系统的磁盘空间占用情况。
语法
df [选项]... [FILE]...
- 文件-a, --all 包含所有的具有 0 Blocks 的文件系统
- 文件–block-size={SIZE} 使用 {SIZE} 大小的 Blocks
- 文件-h, --human-readable 使用人类可读的格式(预设值是不加这个选项 的…)
- 文件-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024
- 文件-i, --inodes 列出 inode 资讯,不列出已使用 block
- 文件-k, --kilobytes 就像是 --block-size=1024
- 文件-l, --local 限制列出的文件结构
- 文件-m, --megabytes 就像 --block-size=1048576
- 文件–no-sync 取得资讯前不 sync (预设值)
- 文件-P, --portability 使用 POSIX 输出格式
- 文件–sync 在取得资讯前 sync
- 文件-t, --type=TYPE 限制列出文件系统的 TYPE
- 文件-T, --print-type 显示文件系统的形式
- 文件-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE
- 文件-v (忽略)
- 文件–help 显示这个帮手并且离开
- 文件–version 输出版本资讯并且离开