一、计算机相关简介与linux的一些概念
计算机系统 由硬件(Hardware)系统和软件(Software)系统两大部分构成:
-
硬件系统 :CPU(控制器、运算器),内存储器(RAM、ROM),外存储器(硬盘等),输入设备(键盘、鼠标等),输出设备(显示器等),其他设备相关设备。
软件系统 :系统软件(操作系统,数据库等),应用软件(例如office等用户应用程序)。
CPU (Central Processing Unit)中央处理器。由控制器和运算器构成,是整个计算机系统的大脑。
计算机(computer):是一种能够接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速的处理,并输出结果的一种电子设备。
发展历史
- 第一代计算机 (1946-1957)电子管时代
- 第二代计算机 (1958-1964)晶体管时代
- 第三代计算机 (1965-1970)集成电路时代
- 第四代计算机 (1971-) 大规模集成电路时代
1946年,世界第一台计算机ENIAC(electronic numerical integrator and calculator)在美国宾州大学诞生。使用17468只电子管,占地170平米,重30吨,耗电174千瓦,耗资40多万美元。每秒可进行5000次加法或减法运算。
摩尔定律:Intel联合创始人戈登·摩尔1965年提出,每隔18-24个月,集成电路上可容纳的元器件数目和性能将提高一倍。
按规模划分计算机类型:巨型计算机、大型计算机、小型计算机、微型计算机。
服务器:是计算机的一种,网络中可客户端提供各种服务的高性能计算机。
服务器按应用功能可分为:
- web服务器,数据库服务器,邮件服务器,文件服务器等等。
服务器按外形分类:
式服务器、机架服务器、刀片式服务器。
服务器的主要硬件构成 :电源、CPU、网卡、PCI、硬盘、风扇、内存、RAID卡,显卡、网卡等等。
服务器按CPU架构分类
- 非X86服务器:使用RISC(精简指令集)或EPIC(并行指令代码)处理器。
- x86服务器:CISC(复杂指令集)架构服务器。
服务器按CPU个数来分 :4路及以上服务器;2路服务器;1路服务器。
存储基础知识 :
- 用于存放数据信息的设备和介质,是计算机系统的外部存储,数据可长期驻留。
- 存储设备:软盘、磁带、光盘、磁盘阵列等。
-
存储网络:
- DAS(Direct Attached Storage)–直接连接存储
- NAS(Network Attached Storage)–网络连接存储
- SAN(Storage Area Networks)–存储区域网络
操作系统 :
- OS(operating system):实现硬件驱动、进程管理、内存管理、网络管理、安全管理、文件管理等功能。
- OS分类:服务器OS、桌面OS、移动设备OS。
开发接口标准 :
- ABI:Application BinaryInterface,描述了应用程序和OS之间的底层接口。
- API:Application Programming Interface,定义了源代码和库之间的接口。
- POSIX:可移植操作系统接口。
- 运行程序格式:
- Linux:ELF,.so(shared object), .a
编程语言 :
- 低级语言:汇编等;功能,硬件驱动等
- 中级语言:c语言等; 功能 系统级应用等
- 高级语言:java,php等;功能应用级程序开发。
服务器三大操作系统 :
- windows;Linux;Unix
Linux起源 :
- 1984年RIchard Stallman发起GNU项目和自由软件基金会。
- 1991年Linus Torvalds发布Linux内核
开源 :Open Source,软件和源代码提供给所有人,自由分发软件和源代码,能够修改和创建衍生作品。
-
开源协议:
GPLv2,LGPL
Apache:apache
BSD:bsd
…
linux哲学思想 :
- 一切皆文件:所有设备,通信接口,文件等等都抽象为文件。
- 一个程序负责一项功能,多个小程序完成复杂任务。
- 避免与用户交互,易于以编程化的方式实现特定功能。
- 用文本文件保存配置信息。
端类型:terminal
-
设备终端:
鼠标键盘显示器 -
物理终端:
/dev/consle -
虚拟终端:tty
本地的字符界面-
=伪终端:
pst/[0,1,2,3],远程登录
-
=伪终端:
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
- GUI:graphic user interface
- gnome c 图形库gtk
- kde c++ 图形库qt对面
- xfce 轻量级桌面
-
CLI: comamnd line interface
sh bash csh tcsh ksh …
centos默认shell为bash(bourn again shell) -
shell是linux系统用户界面,提供了用户与内核进行交互操作的一种接口。
- shell是linux的一种命令解释器,负责解析用户提交的命令,找到对应路径下的程序,最终将结果反馈给用户。
Ctrl+c 强制关闭当前命令
Ctrl+d 正常关闭当前命令,可实现快速注销。
“comand/弱引用,内部的命令会被替换name’
强引用,内部的命令等不会被替换
command 或$(command)命令调用,直接调用命令的执行结果
manual man
-
man手册各章节信息:
1、用户命令
2、系统调用
3、c库调用
4、设备文件或特殊文件
5、配置文件格式
6、游戏帮助
7、杂项
8、管理命令
9、linux内核API
文件系统
-
文件和目录被组织成单根倒置树结构
文件从根目录开始,用/表示
根文件系统:root filesystem
文件名严格区分大小写(标准的linux文件系统):
以.开头的文件为隐藏文件
路径分隔符 /
数据类型有两类
元数据:metadata:文件的各种属性,访问时间atime,修改时间mtime等等
数据:data:文件的真实存储内容
文件系统分层结构:LSB linux standard base
FHS:FILFsystem Hierarchy standard。
http://www.pathname.com/fhs/
文件名规则
-
文件名最长255个字节
包括路径在内文件名最长4095节
蓝色–>目录 绿色–>可执行文件 红色–>压缩文件 浅蓝色–>链接文件 灰色–>其他文件 粉色–>套接字文件
除了斜杠和nul,所有字符都有效,但使用特效字符的目录名和文件不推荐使用,有些字符需要用引号来引用它们。
标准linux文件系统如ext4,文件名称大小写敏感。
linux文件类型:
-
-,f普通文件
l,链接文件
b,块设备文件
c,符号链接文件
p,管道文件
s,套接字文件
d,目录文件
-
-,f普通文件
文件系统结构:
-
/boot:引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader,grub)都存放于此目录
/bin:所有用户使用的基本命令:不能关联至独立分区,OS启动即会用到的程序
/sbin:管理类的命令,不能关联至独立分区,OS启动即会用到的命令,
/lib:启动时程序依赖的基本共享文件以及内核模块文件/lib/modudles
/lib64,专用于64位系统上辅助的共享库文件存放位置
/etc 配置文件目录
/home/username 普通用户家目录
/root 管理员的家目录
/media:便携式移动设备挂载点
/mnt 临时文件系统挂载点
/dev 设备文件及特殊文件存储位置
b:block device,随机访问
c:character device,线性访问
/opt 第三方应用程序的安装位置
/srv 系统上运行的服务用到的数据
/tmp 临时文件存储
/usr 全局共享只读数据存储路径
bin 保证系统拥有完整的功能提供的应用程序
sbin
lib
lib64
include c程序的开头文件
share:结构化独立的数据,
local:第三方应用程序的安装位置
bin,sbin,lib,lib64,etc share
/var:数据经常发生变化的目录存放地
cache:应用程序缓存数据目录
lib:应用程序状态信息数据
local:专用于为/usr/local下的应用程序存储可变数据;
lock:锁文件
log:日志目录及文件
opt:专用于为/opt下的应用程序存储可变数据
run:运行中的进程相关数据,通常用于存储进程pid文件
spool 应用程序数据池
tmp:保存系统两次重启之间产生的临时数据
/proc:用于输出内核与进程信息相关的虚拟文件系统
/sys:用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux:security enhanced linux,selinux相关的安全策略等信息的存储位置
文件通配符
-
*匹配零个或多个字符
?匹配任何单个字符
~ 当前用户家目录
~username指定用户家目录
~+当前工作目录
~-前一个工作目录
[0-9]:匹配范围内的字符
[a-z]:匹配a-z,A-Z其中一个
[A-Z]:匹配A-Z,b-z其中一个,按
[^xxx]匹配指定范围外的字符
* man 7 glob*
-
[[:digit:]] 任意数字
[[:lower:]] 任意小写字母
[[:upper:]] 任意大写字母
[[:alpha:]] 任意大小写字母
[[:alnum:]] 任意数字或字母
[[:punct:]] 标点符号
[[:space:]] 水平或垂直空白字符
[[:blank:]] 水平空白字符
[[:print:]] 可打印字符
[[:cntrl:]] 控制字符,非打印字符
[[:graph:]] 图形字符
[[:xdigit:]] 十六进制字符
二、一些基础命令
注:某些命令可以不带选项参数而直接执行
cat – concatenate files and print on the standard out‐put。查看文本文件和打印至标准输出。
cat [OPTION]… [FILE]..
options:
-E:显示行结束符
-n:显示行号
…
examples:
cat /proc/cpuinfo:查看cpu信息(lscpu也可查看)
cat /proc/partitions 查看分区信息
cat /proc/meminfo 查看内存信息 (free也可查看)
cat /proc/swaps 查看交换分区信息
uname:显示系统信息
uname [OPTION]..
options:
-s:显示内核名称
-n:显示主机名称
-r:显示内核信息
…
df:显示系统磁盘空间使用情况
df [OPTION]… [FILE]..
-a,–all:虚拟文件系统也一起显示
-i,–inodes,显示inode使用情况而不是磁盘块使用情况。
-h,–human-readable,单位转换
..
whoami 显示当前终端的登录用户
whoami [OPTION]
options:
–version:显示版本信息并回到输入命名时的shell环境。
tty:显示当前链接系统的终端名
tty [OPTION]…
–version:显示版本信息并回到输入命名时的shell环境。
who:显示所有登录到该系统的终端信息。
who [OPTION]… [ FILE | ARG1 ARG2]
-b:显示最近一次登录系统的时间
-r:显示系统当前的默认运行级别
…
w:显示登录系统的用户信息及其执行的操作
w [options] user […]
options:
-s,–short:使用短格式,不显示登录时间等等
-V,显示w命令的版本信息
shutdown:关机、重启、等
shutdown [OPTIONS…] [TIME] [WALL…]
options:
-h:关机
-r:重启
-c:取消上述操作
TIME:
hh:mm:指定特定时间
+mm/hh:指定当前时间推迟多少时间
WALL:
“告知各个用户即将关机的信息,自己决定写什么”
poweroff:关闭电源
reboot:重启
file: 判定文件类型
file [options] file
gedit /etc/gdm/custom.conf
# “手动输入两行”
[dameon]
AutomaticLoginEnable=True
AutomaticLogin=root
[security]
#通过上述操作可以自动进入系统而不用输入账号密码
runlevel:显示系统改变前和当前的默认运行级别
file:创建空文件
echo:显示文本信息
echo [SHORT-OPTION]… [STRING]..
echo LONG-OPTION
-
options:
-n,不进行换行
-E 不对转义字符进行转义
-e,使转义字符生效
\a 发出警告声
\e 退格键,将后面的字符退后一个
\n 换行且光标移动到行首
\r 回车,即光标移动至行首,但不换行
\t tab键位
\ 插入\字符
\onnn 插入nnn代表的八进制的ASCII字符
\xHH插入HH所代表的ASCII字符hostname:显示主机名
cat /etc/DIR_COLORS 可以查阅shell下一些颜色的设置
type command 查看命令是内部还是外部
外部命令:有专门的文件路径,builtin
内部命令:集成在shell内部
enable:查看和设定内部命令是否可用
enable [options] [command]
enable -n command 禁用内部命令
enable command启用内部命令
enable -n 查看禁用的内部命令列表
hash:查看hash缓存
hash [options] [name]
hash -l 显示hash缓存,可作为输入使用
hash -d name 清除指定缓存
hash -r 清除所有缓存
hash -p path name :给hash缓存设置别名
hash -t name 打印缓存中name的路径
which :显示shell命令的路径全名
which [options] [–] programname […]
-a:显示所有与name相关的命令路径
–skip-alias 忽略别名
alias:定义与查看别面名
定义别名:alias name=’comand’
取消别名:unalias name
ls:显示目录文件
ls [options]..[file]..
options:
-a:显示所有文件包括隐藏
-A:显示所有文件不包括.和..
-l:显示长格式信息,文件的相关属性
-d:显示指定目录的信息,而不显示他的子目录信息。
..
date:显示系统时间
date [OPTION]… [+FORMAT]
-
options:
-d,–date=string 指定日期以显示时间
..
FORMAT:
%A:完整的星期名称(e.g..,Sunday)
%a:简写的星期名称 (e.g..,Sun)
%F:完整的年月日
%T:完整的时分秒
%H:小时
%M:分钟
%S:秒
%y:简写的年
%Y:完整的年
%m:月
%d:日
…
example:
date MMDDHHMM[cc[yy]].[ss]
hwclock ,clock显示硬件时间
-s, –hctosys 以硬件为基准设置系统时间
-w, –systohc以系统时间为基准设置硬件时间
cal:显示日历
screen:(可以实现多个用户共同操作,需要建立在多个用户连接到同一主机的情况)
建立新screen会话
-
screen -S [session]
加入screen会话:
screen -x [session]
退出并关闭screen会话:
exit
剥离当前screen会话
Ctrl+a,d
显示已打开的screen 会话
Ctrl -ls
恢复某screen会话
Ctrl -r [session]
whatis:显示命令的简短描述
whatis [options] name
history:查看命令历史,保存你输入的命令历史
-
history [option]
-c:清空命令历史
-d:删除历史列表中指定的命令
#:显示最近的#条历史
-a: 追加本次会话新执行的命令列表至历史文件
-n:读取历史文件中未读过的行到历史列表
-r:读取历史文件附加到历史列表
-w:保存历史列表到指定的历史文件
-p:展开历史参数成多行,但不存在历史列表中
-s:展开历史参数成一行,附加在历史列表后登录shell时,加载~/.bash_history文件中的历史记录
调用上一个命令的最后一个参数
!$
esc 松手 .
alt 同时 .
一些快捷操作:
-
ctrl + l 清屏,相当于clear命令
ctrl + o 执行当前命令,并重新显示本命令
ctrl + S 阻止屏幕输出,锁定
ctrl + q 允许屏幕输出,锁定
ctrl + c 终止命令
ctrl + z 挂起命令
ctrl + a 移动到命令行首
ctrl + e 移动到命令行尾
ctrl + f 按字符前移 右向
ctrl + b 按字符后移,左向
alt + f 按单词前移 右向
alt + b 按单词后移 左向
ctrl + u 从光标处删除至命令行首
ctrl + k 从光标处删除至命令行尾
Ctrl + w从光标处向左删除至单词首
Alt + d从光标处向右删除至字尾
Ctrl + d删除光标处的字符
Ctrl + h删除光标前的字符
Ctrl + y将删除的字符粘贴至光标后
Alt + c从光标处更改为首字母大写的单词
Alt + u从光标处更改为全部大写的单词
Alt + l从光标处更改为全部小写的单词
Ctrl + t交换光标处和之前的字符
Alt + t交换光标处和之前的单词
Alt + N提示输入指定字符后,重复显示该字符N次
注意:Alt快捷键较少使用,因为常常和编辑器冲突
pwd:显示当前所处的工作目录
-P:显示真实物理路径
-L:显示链接路径(默认)
cd 改变当前工作目录
-P 切换到真实物理路径,而不是链接路径
-在当前工作和前一次的工作目录之间切换
~,回到家目录
~username,回到指定用户的家目录
PWD,存放当前工作目录的变量
OLDPWD,存放上一次工作目录的变量
touch创建空文件或者修改timestap,默认三种类型时间戳都修改
touch -a 仅改变atime和ctime
-m 改变mtime和ctime
-t stamp 修改时间戳
CCYYMMDDhhmm.ss
-c 如果文件不存在,则不创建文件
cp 复制文件和目录
cp – copy files and directories
cp [OPTION]… [-T] SOURCE DEST
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
-
options
-i 交互式
-r,-R递归复制
-d,不复制源文件,而仅仅复制符号链接本身
-a 归档,相当于-dR –preserv=all
–preserv[=ATTR_LIST]
mode:权限
ownership:属主属组
timestamp:时间戳
links 链接
xattr 隐藏属性
-p :=–preserv=mode,ownership,timestamp
-v:显示详细信息
-f:–force如果对一个目录拥有写权限,则可以对目录内的文件进行增加删除操作。
mv – move (rename) files
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
移动文件
-
options:
-i 交互式
-f 强制
rm – remove files or directories
rm [OPTION]… FILE..
-
-i 交互式
-f 强制删除
-r 递归
–no-preserve–root> /some/file 在文件被其他进程占用的情况下,清空该文件内容,释放存储空间。
原创文章,作者:switch,如若转载,请注明出处:http://www.178linux.com/69271