linux 介绍
内核
库: .so 共享对象,windows:dll 动态链接库
应用程序
Linux的基本原则:
1、由目的单一的小程序组成;组合小程序完成复杂任务;
2、一切皆文件;
3、尽量避免捕获用户接口;
4、配置文件保存为纯文本格式;
用户接口:所有用户接口都是一个shell。
GUI 接口(桌面图形化用户接口):
CLI接口(命令用户接口):
命令提示符,PRompt, bash(shell)
#: root
$: 普通用户
命令:就是应用程序的执行入口,一个应用程序可能会有多个入口。
命令格式:命令 选项 参数
选项:
短选项: -
多个选项可以组合:-a -b = -ab
长选项: --
参数:命令的作用对象
虚拟终端(terminal):Ctrl+Alt+F1-F6
Shell:
GUI: Graphic User Interface
Windows(explorer.exe就是Windows的桌面程序)
X-Window
Gnome
KDE:linux的图形化桌面接口
Xface
CLI: Command Line Interface
sh
bash
csh
ksh
zsh
tcsh
prompt,命令提示符:
命令:
magic number: 魔数
shebang
#!/bin/bash
# command options... arguments...
选项:
短选项 -
长选项 --
参数:
list: ls
列出,列表
目录:文件,路径映射
路径:从指定起始点到目的地所经过位置
文件系统:file system
列出指定路径下的文件
目录:working directory, current directory
pwd: Printing Working directory
ls
-l:长格式
文件类型:
-:普通文件 (f)
d: 目录文件
b: 块设备文件 (block)
c: 字符设备文件 (character)
l: 符号链接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket)
文件权限:9位,每3位一组,3组 权限(U,G,O)每一组:rwx(读,写,执行), r-- ,第一组:文件的属主用户权限。第二组:文件的属组用户权限,第三组:其他用户权限
文件硬链接的次数
文件的属主(owner)
文件的属组(group)
文件大小(size),单位是字节
时间戳(timestamp):最近一次被修改的时间
访问:access
修改:modify,文件内容发生了改变
改变:change,metadata,元数据
-h:做单位转换
-a: 显示以.开头的隐藏文件
. 表示当前目录
.. 表示父目录
-A
-d: 显示目录自身属性
-i: index node, inode
-r: 逆序显示
-R: 递归(recursive)显示
cd: change directory
家目录,主目录, home directory
cd ~USERNAME: 进入指定用户的家目录
cd -:在当前目录和前一次所在的目录之间来回切换
命令类型:
内置命令(shell内置),内部,内建
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
type: 显示指定属于哪种类型
date:时间管理
Linux: rtc
硬件时钟
系统时钟
获得命令的使用帮助:
内部命令:
help COMMAND 比如:help cd
外部命令:
COMMAND --help 比如:date --help
命令手册:manual
man COMMAND
whatis COMMAND
分章节:
1:用户命令(/bin, /usr/bin, /usr/local/bin)
2:系统调用
3:库用户
4:特殊文件(设备文件)
5:文件格式(配置文件的语法)
6:游戏
7:杂项(Miscellaneous)
8: 管理命令(/sbin, /usr/sbin, /usr/local/sbin)
MAN:
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS:说明每一个选项的意义
FILES:此命令相关的配置文件
BUGS:
EXAMPLES:使用示例
SEE ALSO:另外参照
翻屏:
向后翻一屏:SPACE
向前翻一屏:b
向后翻一行:ENTER
向前翻一行:k
查找:
/KEYWord: 向后
n: 下一个
N:前一个
q: 退出
练习:
使用date单独获取系统当前的年份、月份、日、小时、分钟、秒
hwclock
-w:
-s:
练习:
1、echo是内部命令还是外部命令?
2、其作用?
3、如何显示 echo “The year is 2013." echo "Today is 26.”为两行?
请设置系统时间和硬件时间保持一致。
cp
mv
文件系统:
rootfs: 根文件系统 /
FHS:Linux
/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
/dev: 设备文件
设备文件:
块设备:随机访问,数据块
字符设备:线性访问,按字符为单位
设备号:主设备号(major)和次设备号(minor)
/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
/root:管理员的家目录;
/lib:库文件
静态库, .a
动态库, .dll, .so (shared object)
/lib/modules:内核模块文件
/lib64
/media:挂载点目录,移动设备
/mnt:挂载点目录,额外的临时文件系统
/opt:可选目录,第三方程序的安装目录
/proc:伪文件系统,内核映射文件
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp:临时文件, /var/tmp
/var:可变化的文件
/bin: 可执行文件, 用户命令
/sbin:管理命令
绝对路径:以跟目录为起点到目标的路径。
相对路径:以当前目录为起点到目标的路径
mkdir:创建空目录
-p:
-v: verbose
/root/x/y/z
/mnt/test/x/m,y
mkdir -pv /mnt/test/x/m /mnt/test/y
mkdir -pv /mnt/test/{x/m,y}
# tree:查看目录树
删除目录:rmdir (remove directory)
删除空目录
-p
文件创建和删除
# touch
-a
-m
-t
-c
# stat 查看文件信息
创建文件,可以使用文件编辑器
nano
vi(另外一个文件)
删除文件:rm
-i 删除之前确认
-f 删除之前不确认
-r 递归删除
rm -rf / linux 自杀
cp: copy
cp SRC DEST
-r
-i 存在覆盖前确认
-f
-p
-a:归档复制,常用于备份
cp file1 file2 file3
一个文件到一个文件
多个文件到一个目录
cp /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/
mv: move
移动文件
mv SRC DEST
mv -t DEST SRC
目录管理:
ls、cd、pwd、mkdir、rmdir、tree
文件管理:
touch、stat、file、rm、cp、mv、nano,vi,vim
日期时间:
date、clock、hwclock、cal ,ntpdate
查看文本:cat、tac、more、less、head、tail
cat:顺序显示文件信息,从第一行到最后一行;
tac:倒叙显示文件信息,从最后一行到第一行;
more:分屏显示文件,按空格向后翻屏;
less:分屏显示文件,按空格向后翻屏,按回车向后翻一行;
head:显示文件的前10行;
head -#:显示文件的前#行;
tail:显示文件的最后10行;
tail -#:显示文件的最后#行;
head 文件名 | tail -m:“|”表示通道,显示文件前10行中的最后m行;
head -n 文件名 | tail -m:显示文件前n行中的最后m行;
tail -f: 查看文件尾部,不退出,等待显示后续追加至此文件的新内容,按ctrl+c退出;
文本处理:cut、sort,join、sed、awk
cut:文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不
指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数:
-b(byte):以字节为单位进行分割,一个空格算一个字节,一个汉字算三个字节;
-c(char):以字符为单位进行分割,中文字符和空格都算一个字符;
-d:自定义分割符,默认为制表符,要与-f一起使用,当以一个空格为分割符的时