Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机
CentOS独有的yum命令支持在线升级,可以即时更新系统
CentOS 6.x
•
CentOS官网:http://www.centos.org/
•
CentOS搜狐镜像:http://mirrors.sohu.com/centos/
•
CentOS网易镜像:http://mirrors.163.com/centos/
Linux目录结构
•
bin (
bin
aries)存放二进制可执行文件
•
sbin (
s
uper user
bin
aries)存放二进制可执行文件,只有root才能访问
•
etc (
etc
etera)存放系统配置文件
•
usr (
u
nix
s
hared
r
esources)用于存放共享的系统资源
•
home 存放用户文件的根目录
•
root 超级用户目录
•
dev (
dev
ices)用于存放设备文件
•
lib (
lib
rary)存放跟文件系统中的程序运行所需要的共享库及内核模块
•
mnt (
m
ou
nt
)系统管理员安装临时文件系统的安装点
•
boot 存放用于系统引导时使用的各种文件
•
tmp (
t
e
mp
orary)用于存放各种临时文件
•
var (
var
iable)用于存放运行时需要改变数据的文件
Linux常用命令
•
命令格式:命令 -选项 参数
如:ls -la /usr
•
ls:显示文件和目录列表(
l
i
s
t)
•
常用参数:
-l (long)
-a (all) 注意隐藏文件、特殊目录.和..
-t (time)
Linux命令的分类
l
内部命令:属于Shell解析器的一部分
cd 切换目录(
c
hange
d
irectory)
pwd 显示当前工作目录(
p
rint
w
orking
d
irectory)
help 帮助
l
外部命令:独立于Shell解析器之外的文件程序
ls 显示文件和目录列表(
l
i
s
t)
mkdir 创建目录(
m
a
k
e
dir
ectoriy)
cp 复制文件或目录(
c
o
p
y)
l
查看帮助文档
内部命令:help + 命令(help cd)
外部命令:man + 命令(man ls)
操作文件或目录常用命令
pwd 显示当前工作目录(
p
rint
w
orking
d
irectory)
touch 创建空文件
mkdir 创建目录(
m
a
k
e
dir
ectoriy)
-p 父目录不存在情况下先生成父目录 (
p
arents)
cp 复制文件或目录(
c
o
p
y)
-r 递归处理,将指定目录下的文件与子目录一并拷贝(
r
ecursive)
mv 移动文件或目录、文件或目录改名(
m
o
v
e)
rm 删除文件(
r
e
m
ove)
-r 同时删除该目录下的所有文件(
r
ecursive)
-f 强制删除文件或目录(
f
orce)
rmdir 删除空目录(
r
e
m
ove
dir
ectoriy)
cat显示文本文件内容 (
cat
enate)
more、less 分页显示文本文件内容
head、tail查看文本中开头或结尾部分的内容
haed -n 5 a.log 查看a.log文件的前5行
tail -F b.log 循环读取(
f
ollow)
常用命令
wc 统计文本的行数、字数、字符数(
w
ord
c
ount)
-m 统计文本字符数
-w 统计文本字数
-l 统计文本行数
find 在文件系统中查找指定的文件
find /etc/ -name "aaa"
grep 在指定的文本文件中查找指定的字符串
ln 建立链接文件(
l
i
n
k)
-s 对源文件建立符号连接,而非硬连接(
s
ymbolic)
top 显示当前系统中耗费资源最多的进程
ps 显示瞬间的进程状态
-e /-A 显示所有进程,环境变量
-f 全格式
-a 显示所有用户的所有进程(包括其它用户)
-u 按用户名和启动时间的顺序来显示进程
-x 显示无控制终端的进程
kill 杀死一个进程
kill -9 pid
df 显示文件系统磁盘空间的使用情况
du 显示指定的文件(目录)已使用的磁盘空间的总
-h文件大小以K,M,G为单位显示(
h
uman-readable)
-s只显示各档案大小的总合(
s
ummarize)
free 显示当前内存和交换空间的使用情况
netstat 显示网络状态信息
-a 显示所有连接和监听端口
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-p 显示建立相关链接的程序名
ifconfig 网卡网络配置详解
ping 测试网络的连通性
备份压缩命令
•
gzip
压缩(解压)文件或目录,压缩文件后缀为
gz
•
bzip2
压缩(解压)文件或目录,压缩文件后缀为
bz2
•
tar
文件、目录打(解)包
gzip
命令
•
命令格式:gzip [选项] 压缩(解压缩)的文件名
-d将压缩文件解压(
d
ecompress)
-l显示压缩文件的大小,未压缩文件的大小,压缩比(
l
ist)
-v显示文件名和压缩比(
v
erbose)
-num用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6
bzip2
命令
•
命令格式:bzip2 [-cdz] 文档名
-c将压缩的过程产生的数据输出到屏幕上
-d解压缩的参数(
d
ecompress)
-z压缩的参数(compress)
-num 用指定的数字num调整压缩的速度,-1或--fast表示最快压缩方法(低压缩比),-9或--best表示最慢压缩方法(高压缩比)。系统缺省值为6
tar
命令
-c 建立一个压缩文件的参数指令(
c
reate)
-x 解开一个压缩文件的参数指令(e
x
tract)
-z 是否需要用 gzip 压缩
-j 是否需要用 bzip2 压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在 f 之后要立即接档名(file)
关机
/
重启命令
•
shutdown系统关机
-r 关机后立即重启
-h 关机后不重新启动
•
halt 关机后关闭电源 shutdown -h
•
reboot 重新启动 shutdown -r
学习Linux的好习惯
•
善于查看man page(manual)等帮助文档
•
利用好Tab键
•
掌握好一些快捷键
ctrl + c(停止当前进程)
ctrl + r(查看命令历史)
ctrl + l(清屏,与clear命令作用相同)
VIM文本编辑器
•
vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。
•
只有命令,没有菜单。
VIM工作模式、
插入命令
i | 在光标前插入 |
I | 在光标当前行开始插入 |
a | 在光标后插入 |
A | 在光标当前行末尾插入 |
o | 在光标当前行的下一行插入新行 |
O | 在光标当前行的上一行插入新行 |
定位命令
:set nu | 显示行号 |
:set nonu | 取消行号 |
gg | 到文本的第一行 |
G | 到文本的最后一行 |
:n | 到文本的第n行 |
替换和取消命令
u | undo,取消上一步操作 |
Ctrl + r | redo,返回到undo之前 |
r | 替换光标所在处的字符 |
R | 从光标所在处开始替换,按Esc键结束 |
删除命令
x | 删除光标所在处字符 |
nx | 删除光标所在处后的n个字符 |
dd | 删除光标所在行。ndd删除n行 |
dG | 删除光标所在行到末尾行的所以内容 |
D | 删除光标所在处到行尾的内容 |
:5,7d | 删除指定范围的行 |
常用快捷键
Shift+ zz | 保存退出,与“:wq”作用相同 |
v | 进入字符可视模式 |
V 或 Shift + v | 进入行可视模式 |
Ctrl + v | 进入块可视模式 |
用户和组账户管理
•
linux
操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。
配置文件
•
保存用户信息的文件:/etc/passwd
•
保存密码的文件:/etc/shadow
•
保存用户组的文件:/etc/group
•
保存用户组密码的文件:/etc/gshadow
•
用户配置文件:/etc/default/useradd
/etc/passwd格式
用户名 | 用户登陆系统的用户名 |
密码 | 密码位 |
UID | 用户标示号 |
GID | 默认组标示号 |
描述信息 | 存放用户的描述信息 |
宿主目录 | 用户登陆系统的默认目录,默认是在/home/下 |
命令解析器 | 用户使用的Shell,默认是bash |
Linux用户分类
超级用户:(root,UID=0)
普通用户:(UID在500到60000)
伪用户:(UID在1到499)
系统和服务相关的:bin、daemon、shutdown等
进程相关的:mail、news、games等
为用户不能登陆系统,而且没有宿主目录
/etc/shadow格式
用户名 | 登陆系统的用户名 |
密码 | 加密密码 |
最后一次修改时间 | 用户最后一次修改密码距现在的天数,从1970-1-1起 |
最小时间间隔 | 两次修改密码之间的最小天数 |
最大时间间隔 | 密码有效天数 |
警告时间 | 从系统警告到密码失效的天数 |
账号闲置时间 | 账号闲置时间 |
失效时间 | 密码失效的天数 |
标志 | 标志 |
用户组
每个用户至少属于一个用户组
每个用户组可以包含多个用户
同一个用户组的用户享有该组共有的权限
/etc/group格式
组名 | 用的所在的组 |
组密码 | 密码位,一般不使用 |
GID | 主标示号 |
组内用户列表 | 属于改组的用户列表 |
操作用户命令
添加用户命令:useradd
-u 指定组ID(
u
id)
-g 指定所属的组名(
g
id)
-G 指定多个组,用逗号“,”分开(
G
roups)
-c 用户描述(
c
omment)
-e 失效时间(
e
xpire date)
例子:
useradd -u 888 -g users -G sys,root -c "hr zhang" zhangsan
passwd zhangsan
操作用户命令
修改用户命令:usermod(
user
mod
ify)
-l 修改用户名 (login)usermod -l a b(b改为a)
-g 添加组 usermod -g sys tom
-G添加多个组 usermod -G sys,root tom
–L 锁定用户账号密码(
L
ock)
–U 解锁用户账号(
U
nlock)
删除用户命令:userdel(
user
del
ete)
-r 删除账号时同时删除目录(
r
emove)
•
添加组:groupadd
-g 指定gid
•
修改组:groupmod
-n 更改组名(new group)
•
删除组:groupdel
•groups 显示用户所属组
权限管理
三种基本权限
r 读权限(
r
ead)
w 写权限(
w
rite)
x 执行权限 (e
x
ecute)
第1位:文件类型(d 目录,- 普通文件,l 链接文件)
第2-4位:所属用户权限,用u(user)表示
第5-7位:所属组权限,用g(group)表示
第8-10位:其他用户权限,用o(other)表示
第2-10位:表示所有的权限,用a(all)表示
完整信息:一个文件,所属用户具有读写执行权限;所属组的用户
有读写权限,没有执行权限;其他用户只有读权限
更改操作权限
•
chmod修改文件权限命令(
ch
ange
mod
e)
参数:-R 下面的文件和子目录做相同权限操作(
R
ecursive递归的)
例如:chmod u+x a.txt
•
用数字来表示权限(r=4,w=2,x=1,-=0)
例如:chmod 750 b.txt
rwx用二进制表示是111,十进制4+2+1=7
r-x用二进制表示是101,十进制4+0+1=5
RPM软件包管理
•
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便
RPM命令使用
•
rpm的常用参数
i:安装应用程序(
i
nstall)
e:卸载应用程序(
e
rase)
vh:显示安装进度;(
v
erbose
h
ash)
U:升级软件包;(
u
pdate)
qa: 显示所有已安装软件包(
q
uery
a
ll)
结合grep命令使用
•
例子:
rmp -ivh gcc-c++-4.4.7-3.el6.x86_64.rpm
YUM命令
•
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
。
•
例子(需要上网,没有网络可以建本地源):
yum install gcc-c++
yum remove gcc-c++
yum update gcc-c++