一、Linux基础知识
1、命令的语法通用格式:
# COMMAND OPTIONS ARGUMENTS
COMMAND:
发起一命令:请求内核将某个二进制程序运行为一个进程;
程序 --> 进程
静态 --> 动态(有生命周期)
2、命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;
3、多数系统程序文件都存放在:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin
4、普通命令:/bin, /usr/bin, /usr/local/bin
5、管理命令:/sbin, /usr/sbin, /usr/local/sbin
6、32bits的库:/lib, /usr/lib, /usr/local/lib
7、64bits的库:/lib64, /usr/lib64, /usr/local/lib64
注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件
8、命令必须遵循特定格式规范:exe, msi, ELF(Linux)
~]# file /bin/ls
9、命令分为两类:
(1)由shell程序的自带的命令:内置命令(builtin)
(2)独立的可执行程序文件,文件名即命令名:外部命令
10、shell程序是独特的程序,负责解析用户提供的命令;
环境变量:
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;
~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
11、查找次序:自左而右;
查看命令类型:
type COMMAND
12、OPTIONS:
指定命令的运行特性;
13、选项有两种表现形式:
(1) 短选项:-C, 例如-l, -d
注意:有些命令的选项没有-;
如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
(2)长选项:--word, 例如--help, --human-readable
注意:长选项不能合并;
注意:有些选项可以带参数,此称为选项参数;
14、ARGUMENTS:
命令的作用对象;命令对什么生效;
注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;
例如:ls -ld /var /etc
15、获取命令的使用帮助:
内部命令:
help COMMAND
外部命令:
(1) 命令自带简要格式的使用帮助
# COMMAND --help
(2) 使用手册:manual
位置:/usr/share/man
# man COMMAND
SECTION:
NAME:功能性说明
SYNOPSIS:语法格式
DESCRIPTION:描述
OPTIONS:选项
EXAMPLES:使用示例
AUTHOR: 作者
BUGS: 报告程序bug的方式
SEE ALSO: 参考
...
SYNOPSIS:
[]:可选内容;
<>:必须提供的内容;
a|b|c:多选一;
...:同类内容可出现多个;
16、使用手册:压缩格式的文件,有章节之分;
/usr/share/man
man1, man2, ...
1:用户命令;
2:系统调用;
3:C库调用;
4:设备文件及特殊文件;
5:文件格式;(配置文件格式)
6:游戏使用帮助;
7:杂项;
8:管理工具及守护进行;
~]# man CHAPTER COMMAND
注意:并非每个COMMAND在所有章节下都有手册;
查看:
~]# whatis COMMAND
注意:其执行过程是查询数据库进行的;
手动更新数据库:
~]# makewhatis
17、 man命令打开手册以后的操作方法:
翻屏:
空格键:向文件尾翻一屏;
b: 向文件首部翻一屏;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
回车键:向文件尾部翻一行;
k: 向文件首部翻一行;
G:跳转至最后一行;
#G: 跳转至指定行;
1G:跳转至文件首部;
18、 文本搜索:
/keyword:从文件首部向文件尾部依次查找;不区分字符大小写;
?keyword:从文件尾部向文件首部依次查找;
n: 与查找命令方向相同;
N: 与查找命令方向相反;
退出:
q: quit
选项:
-M /PATH/TO/SOMEDIR:到指定目录下查找命令手册并打开之;
19、 练习:获取useradd命令的用法
(1) 添加用户gentoo;
# useradd gentoo
# id gentoo
(2) 添加用户slackware,要求指定其所用的shell为/bin/tcsh;
# useradd -s /bin/tcsh slackware
# tail -1 /etc/passwd
(3) info COMMAND
获取命令的在线文档;
(4) 很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION
README:程序的相关的信息;
INSTALL: 安装帮助;
CHANGES:版本迭代时的改动信息;
(5) 主流发行版官方文档
http://www.redhat.com/doc
(6) 程序官方的文档:
官方站点上的“Document”
(7) 搜索引擎
keyword filetype:pdf
keyword site:domain.tld
...
二、常用命令和格式介绍:
1、 Linux文件系统:
1、文件名名称严格区分字符大小写;
2、文件可以使用除/以外任意字符;
3、文件名长度不能超过255字符;
4、以.开头的文件为隐藏文件;
.: 当前目录;
..: 当前目录的上一级目录;
/etc/sysconfig/
.: sysconfig
..: /etc
2、工作目录:working directory
家目录:home
3、常用命令:
pwd: printing working directory
显示工作目录
cd:change directory
cd [/PATH/TO/SOMEDIR]
cd: 切换回家目录;
注意:bash中, ~表示家目录;
cd ~:切换回自己的家目录
cd ~USERNAME:切换至指定用户的家目录;
cd -:在上一次所在目录与当前目录之间来回切换;
相关的环境变量
$PWD:当前工作目录
$OLDPWD:上一次的工作目录
.
..
ls: list, 列出指定目录下的内容
ls [OPTION]... [FILE]...
-a: 显示所有文件,包括隐藏文件;
-A:显示除.和..之外的所有文件;
-l: --long, 长格式列表,即显示文件的详细属性信息;
-rw-r--r--. 1 root root 8957 10月 14 19:34 boot.log
-:文件类型,-, d, b, c, l, s, p
rw-r--r--
rw-:文件属主的权限;
r--:文件属组的权限;
r--:其它用户(非属主、属组)的权限;
1:数字表示文件被硬链接的次数;
root:文件的属主;
root:文件的属组;
8957:数字表示文件的大小,单位是字节;
10月 14 19:34 :文件最近一次被修改的时间;
boot.log:文件名
-h, --human-readable:对文件大小单位换算;换算后结果可能会非精确值;
-d:查看目录自身而非其内部的文件列表;
-r: reverse, 逆序显示;
-R: recursive,递归显示;
cat:concatenate
文件文本查看工具;
cat /etc/fstab
cat /etc/passwd
cat [OPTION]... [FILE]...
-n:给显示的文本行编号;
-E: 显示行结束符$;
tac:
文件文本查看工具;
tac /etc/fstab
/etc/passwd
tac [OPTION]... [FILE]...
-n:给显示的文本行编号;
-E: 显示行结束符$;
file:查看文件内容类型;
file [FILE]...
echo:回显
echo [SHORT-OPTION]... [STRING]...
-n: 不进行换行;
-e:让转义符生效;
\n:换行
\t:制表符
STRING可以使用引号,单引号和双引号均可用;
单引号:强引用,变量引用不执行替换;
~]# echo '$SHELL'
双引号:弱引用,变量引用会被替换;
~]# echo "$SHELL"
注意:变量引用的正规符号
${name}
4、关机或重启命令:shutdown
shutdown [OPTIONS...] [TIME] [WALL...]
OPTIONS:
-h: halt
-r:reboot
-c:cancel
TIME:
now
hh:mm
+m
+0
WALL
5、日期相关的命令:
Linux:系统启动时从硬件读取日期和时间信息;读取完成以后,就不再与硬件相关联;
系统时钟
硬件时钟
date:系统时钟
显示日期时间:date [OPTION]... [+FORMAT]
FORMAT:格式符
%F
%T
%Y
%m
%d
%H
%M
%S
%s: 从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经过的秒数;
...
设定日期时间:date [MMDDhhmm[[CC]YY][.ss]]
hwclock, clock:硬件时钟
显示或设定硬件时钟
-s, --hctosys:以硬件为准,把系统调整为与硬件时间相同;
-w, --systohc:以系统为准,把硬件时间调整为与系统时钟相同;
cal:日历
cal [[month] year]