文章目录
linux理论基础
计算机的组成
先稍微回顾一下"冯诺依曼体系"的计算机
linux常见发行版
linux 内核->发行版
Linux内核,一个由Linus Torvalds负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。
Linux发行版,由Linux内核与各种常用软件的集合产品
常见的linux发行版
Fedora是基于RHEL,CentOS,Scientific Linux, 和Oracle Linux的社区版本。相比RHEL,Fedora打包了显著的更多的软件包。其中一个原因是,多样化的社区参与Fedora的建设;它不只是一家公司。在这个过程中,CentOS用于活动,演示和实验,因为它是对最终用户免费提供的,并具有比Fedora的一个更长的发布周期(通常每隔半年左右发布一个新版本)。
SUSE, SUSE Linux Enterprise Server (SLES), 和openSUSE 之间的关系类似于 Fedora, Red Hat Enterprise Linux, 和CentOS的关系。
Debian是包括Ubuntu在内许多发行版的上游,而Ubuntu又是Linux Mint及其他发行版的上游。Debian在服务器和桌面电脑领域都有着广泛的应用。Debian是一个纯开源计划并着重在一个关键点上,稳定性。它同时也提供了最大的和完整的软件仓库给用户。
linux哲学思想
1. 一切皆文件
把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等,便于统一管理和定义;
对文件的操作有:open,read,write,close,delete,create
2. 由众多功能单一的程序组成
一个程序只做一件事,并且做好,保证了Linux内核的高效运行;
3. 组合小程序完成复杂任务
通过连接多个简单的程序实现复杂的功能;
4. 尽量避免和用户交互
更贴近编程,易于以编程的方式实现自动化任务;
5. 使用文本文件保存配置信息
修改配置信息只需要任意一款文本编辑器就可以进行。
Linux基础命令
文件和目录操作类
{参数尽量按照常用程度排序}
ls
(list)列出指定目录下的内容
ls [OPTION] [FILE]
-a all显示所有,包括隐藏
-A 显示除了.和..之外的所有
-l 长格式,显示详细信息(ll就是 ls -l)
-d 查看目录自身
-r reverse逆序
-R 递归
-t 按照修改时间排序
...
pwd
(printing working directory)显示当前工作目录
cd
(change directory)切换目录
随便一提
~,家目录; ~ USERNAME,指定用户家目录;
-,上次所选目录; ..,上一级目录
touch
创建新文件、修改文件时间戳
touch [OPTION] FILE
-c -no-create,非创建模式/文件不存在时不创建文件
-a 仅修改access time(访问时间)
-m 仅修改modify time(修改时间)
-t 指定日期
cp
cp [OPTION] [-T] SOURCE DEST
-r,-R 递归复制
-i 交互式复制/如要覆盖需提醒确认
-f 强制覆盖
-d 复制符号链接文件本身,而非其指向的源文件
mode 权限
ownership属主和属组
all 所有属性
mkdir
(make directories)创建目录
mkdir [OPTION] DIRECTORY
-p 级联创建
-v 显示过程
-m 给定权限
mv
(move)移动文件
mv [OPTION] [-T] SOURCE DIRECTORY
-f 强制移动
-i 交互式
rm
(remove)删除命令
rm [OPTION] FILE
-r 递归
-f 强制删除
-i 交互式
#删除命令是一个非常危险的操作,所有不用的文件建议不要直接删除,而是移动至某个专用目录【回收站】;非常明确肯定不要了再删除。
开机类命令(线上服务器禁用)
shutdown
关机
shutdown [OPTION] [TIME] [WALL]
-r 关机并重启
-c 取消关机
-h 系统关机
例shutdown +20 #20min后关机
reboot
重启
文本查看类命令
cat
(concatenate)查看文本文件内容
cat [OPTION] [FILE]
-n 每行编号
-E 显示空格、空行
tac
将文件以行为单位反序输出,最后一行先显示
less、more
从尾到头、从头到尾 翻屏查看
回车键 下一行,相当于上下箭头
空格键 下一屏幕,相当于pageup、pagedown
head
显示前n(默认为10)行
head [OPTION] [FILE]
-v 显示文件名
-c <字节数> 显示字节数
-<n行数> 显示行数
例,
head -50 FILENAME #显示前50行
head -c 50 FILENAME #显示前50个字节
head -c -50 FILENAME#显示后50个字节
tail
显示指定文件末尾内容。常用出查看日志文件。
tail [OPTION] FILE
-<n行数> 查看n行
-f 查看后不退出,接着显示更新的行
stat
显示文件和文件的系统属性
日期时间类
date
显示、设定系统的日期和时间,仅root用户可用。
date [OPTION] [+FORMAT]
格式
%T 时间,包含时分秒
%Y 年份,四位显示
%m 月份,01-12显示
%d 日期,01-31显示
%H 小时,00-23显示
%M 分钟00-59显示
%S 秒
%s: 从1970年1月1号(unix元年)0点0分0秒到命令执行那一刻经过的秒数;
clock = hwclock
显示、设定硬件时钟
网络相关类
ifconfig / ip addr list
查看活动接口的ip地址
ss
(socket statistics)获取socket统计信息,[比较netstat]能更详细地显示更多有关TCP和连接状态的信息,且更快速高效。
例
#ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::22 :::*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 100 127.0.0.1:25 *:*
ping
测试当前主机与目标主机的连通性
用户管理类
useradd
添加用户
chmod
修改用户权限
chmod [-cfvR] [--help] [--version] FILE
-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help : 显示辅助说明
--version : 显示版本
u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
也可用二进制数表示
搜索查询类
file
查看文件内容
type
判断一个命令是内部命令还是外部命令
type COMMAND
help
用于shell内部命令的帮助信息
help COMMAND
man
帮助手册
man COMMAND
info
在线获取命令帮助
which
查找可执行命令文件的位置
which COMMAND
whereis
用于程序名的搜索
whereis [OPTION] NAME
-b 二进制程序搜索
-m 手册文件路径搜索
who
识别当前登录的用户
w
显示目前登入系统的用户信息
w [-fhlsuV][用户名称]
-f 开启或关闭显示用户从何处登入系统。
-h 不显示各栏位的标题信息列。
-l 使用详细格式列表,此为预设值。
-s 使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
-u 忽略执行程序的名称,以及该程序耗费CPU时间的信息。
-V 显示版本信息。
history
默认保留1000条历史命令,存放在~.bash_history下
history
-c 清除当前命令径路
-d<offset> 删除第offset条记录
其他类
tty
显示当前终端
echo
打印、输出内容,查询变量值。常用于编程。
echo [-ne][STRING]
echo [–help][–version]
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
文字输出:
a 发出警告声;
b 删除前一个字符;
c 最后不加上换行符号;
f 换行但光标仍旧停留在原来的位置;
n 换行且光标移至行首;
r 光标移至行首,但不换行;
t 插入tab;
v 与f相同;
\ 插入字符;
nnn 插入nnn(八进制)所代表的ASCII字符;
–help 显示帮助
–version 显示版本信息
export
设置、显示环境变量
export [-fnp][变量名称]=[变量设置值]
-f 代表[变量名称]中为函数名称。
-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
-p 列出所有的shell赋予程序的环境变量。
补充说明:
在shell中执行程序时,shell会提供一组环境变量。 export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。
一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。 —-《UNIX教程》
startx
启动图像界面接口
例,startx &
参考 http://www.magedu.com/74165.html