芬兰大学生Linux,出于兴趣,编写了Linux操作系统内核,开源,所有人都能免费得到系统源码,免费使用
现在,服务器多数采用Linux操作系统,因为Linux安全,免费
将来用Java编写的服务器端程序,很可能要运行在 Linux服务器上.
服务器端会尽量安装最少的软件,也不会安装桌面系统,必须用命令行,执行命令来管理服务器.
一般需要远程管理服务器,从远程终端登录远程服务器.
下载操作系统安装光盘 iso,刻录成光盘或用u盘进行安装,用虚拟机安装 Linux
安装选项:
最小安装 - 缺少基本的网络服务和命令
带网络的最小安装 (推荐)
带桌面 – 默认启动桌面系统(个人使用)
分区
必须分区
/ Linux文件系统的根目录
swap 磁盘交换分区,虚拟内存,
当内存不够用时,使用磁盘
来虚拟内存使用
建议分区
/var 动态文件
/home 用户目录
安装CentOS 7时,可以使用自动分区
用户名: root 超级管理员
密码: root
pwd命令
查看当前所在的目录
pwd
/root 是超级管理员的home
cd命令 切换目录
cd / 根目录
pwd 显示包路径
cd ~ cd 回家
ls命令
-a 全部,包括隐藏文件
-l 长格式
-h 人性化, Kb, Mb, Gb
-d 列出目录本身
-i 文件id
目录列表
ls 列出当前目录的列表
ls /dev 对指定目录进行列表
ls -a /etc -a all全部文件,包括隐藏文件
ls -l /etc -l 长格式显示
第一个字符: -文件,d目录,l软连接
rwxr--r--: 权限
数字: 硬连接数
用户, 组
文件大小字节量
最后修改时间
ls -lh /etc -h 人性化显示,文件大小用Kb, Mb, Gb
ls -ld /etc -d 列出目录本身,而不是目录内部文件
ls -li /etc -i 显示文件的数字id
文件命令
mkdir -p 递归,逐层创建多层目录
mkdir d1 创建d1目录
mkdir aa/bb/cc 不能创建
mkdir -p aa/bb/cc
先建aa
再在aa中建bb
再在bb中建cc
rmdir 删除目录 remove dir
rm 删除文件或目录 remove
-r 删除目录
-f 无需确认
cd ~
touch f1 新建文件
touch aa/f2 在aa目录下创建f2
ls –l
ls –l aa
rm f1
rm -r aa 删除目录
touch f1
rm -f f1 无需确认
mkdir -p aa/bb/cc
touch aa/f2
rm -rf aa 无需确认删除目录
touch 新建文件
touch f1
ls -l
默认权限: rw-r--r—
6.5权限:
r 读 4
w 写 2
x 执行 1
用户 文件的所有者
用户组 用户所在的组
其他人
rw-r--r--
用户用户组其他人
cp 复制 copy
-r 复制目录
-p 保持文件属性(一般指最后修改时间)
cd ~
cp /etc/passwd . 复制到当前目录
ls -l /etc/passwd
ls -l passwd
cp /etc/passwd pwd 复制成一个新的文件名
ls -l
cp -p /etc/passwd pwd2
复制时保持文件属性
ls -l /etc/passwd
ls –l pwd2
mkdir -p aa/bb/cc
touch aa/f2
cp -rp aa aa2
cd aa2
ls
cd bb
cd cc
cd ../../../
mv 移动或改名 move
cd ~
mv pwd aa/bb/ 文件移动到bb目录下
ls -l
ls -l aa/bb/
mv pwd2 pwd 改名
ls -l
查看文件内容:
cat 查看文件内容
-n 显示行号
cat pwd
cat -n pwd
tac 反向查看文件
tac pwd
head 查看头部几行
-n 指定显示几行,默认10行
cat pwd
head pwd 默认前10行
head –n 5 pwd 前5行
查看前5行,并显示行号
cat -n pwd |head –n 5
| 是管道
前一个命令的执行结果
交给后面命令处理
tail 尾部几行
-n 指定行数,默认10行
tail pwd
tail –n 5 pwd
more 分页查看
more /etc/services
空格或f – 翻页
回车 - 下一行
q或ctrl+c - 结束
分页查看,并显示行号
cat -n /etc/services |more
less 可以前后翻页
less /etc/services
pgup 上翻页
pgdn 下翻页
上箭头 上一行
下箭头 下一行
/ 输入关键词进行搜索
n 搜索时,继续搜索下一个
上下翻页查看文件,并显示行号
cat -n /etc/services |less
文件连接 1ln
文件连接 link
-s 创建软连接文件(软连接就相当于windows的快捷方式)
软连接
cd ~
cp -p /etc/passwd .
ln -s passwd plink 对passwd创建软连接文件
ls –l
cat plink 查看源文件
echo asdfsdfsdf >> plink 向源文件输出
cat plink
cat passwd
删除原文件,软连接失效
rm -f passwd
ls -l
cat plink
硬连接,
是一个原文件的副本,
保存与原文件相同的数据
与原文件id相同
修改原文件或硬连接文件,同时对另一个文件做相同修改
删除任意文件,不影响其它文件
硬连接
cp -p /etc/passwd .
ls -l
ln passwd passwd2
ln passwd passwd3
ln passwd passwd4
ls -li
echo asdfweegfwe >> passwd
cat passwd3
ls –l
rm -f passwd
ls -l
cat passwd3
文件权限
用户,用户组,其他人
r 读 4
w 写 2
x 执行 1
目录权限
r 目录列表权限
w 创建,删除文件
x 进入目录,打开目录
chmod 修改权限 change mode
u 用户
g 用户组
o 其它人
+ 增加权限
- 减少权限
= 设置成指定权限
chmod u+wx,g=r,o-rwx passwd
chmod 764 passwd
chmod +x /usr/local/bin/docker-compose ugo用户、用户组、其它人
1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!
修改文件,目录权限测试
添加新用户
useradd tony
cat /etc/passwd
为tony设置密码123456,
提示密码太简单,不理他再输一次123456
passwd 123456
快捷键 alt+f2,使用zhangsan登录
alt+f1...f6,切换工作界面
alt+f1
cd /home/zhangsan
touch f1
echo asdfasdf >> f1
ls -l
alt+f2
cat f1
echo werwsdfasdf >> f1
alt+f1
chmod o+w f1 其他人添加写权限
alt+f2
echo werwsdfasdf >> f1
cat f1
alt+f1
mkdir d1
ls -l
touch d1/f2
chmod o+w d1/f2
alt+f2
cd d1
pwd
ls -l
touch f3
rm f2
echo asdfasdf >> f2
cat f2
alt+f1
chmod o+w d1
chmod o-w d1/f2
alt+f2
touch f3
echo asdfasf >> f2
rm f2
chown 改变所有者 change owner
chown zhangsan f1
修改文件所有者 alt+f1
cd /home/zhangsan
chown zhangsan f1
chown zhangsan d1
ls -l
chgrp 改变所属用户组
chgrp group1 f1
改变所属组 alt+f1
groupadd group1
chgrp group1 f1
ls -l
查找文件或命令
find 查找任意文件,支持通配符 * 和 ?
find /home -name f1
-name
搜文件名,通配符 *、?
-iname
忽略大小写
-size
按文件大小查找
+块数, 大于...
-块数,小于...
一块等于512字节
-size +20800 大于20800*512字节
-size 20800 等于20800*512字节
-user
-group
按所有者、所属组查找
find -user root
-amin
access minutes, 按访问时间查找
-cmin
change, 属性更改
-mmin
modify, 内容修改
-amin -60 60分钟内
-type
f, d, l
-a
and
-o
or
-exec
-ok
对查找结果直接执行操作命令
... -exec ls -l {} \;
... -ok ls -l {} \;
需用户确认
find查找文件
alt+f1
cd ~
/etc目录下查找文件serv*
find /etc -name se* -a -type f |cat –n
locate和updatedb
在文件数据库中查找,效率比find高得多,新文件不会时时的添加到数据库,locate查找新文件可能找不到,需要更新数据库 updatedb
locate service
locate查找文件
find / -name *service*
locate service
cd ~
touch myfile1
locate myfile1
updatedb
locate myfile1
which 查找命令,可以显示命令别名
which ls
which测试
which ls
which rm
which mv
/bin/ls alias ls='ls --color=auto'
/bin/ls 命令文件
alias ls 起个别名叫ls
ls --color=auto 执行的真实命令
执行真实命令文件
/bin/ls -li
/bin/ls -li --color=auto
/bin/rm f1
alt+f2
which rm
touch f1
rm f1
alt+f1
cd ~
别名配置文件
用户主目录中的隐藏文件 .bashrc
cat .bashrc
cd /home/zhangsan
cat .bashrc
whereis 查找命令,显示帮助文档的路径
whereis ls
whereis cp
whereis useradd
/usr/sbin 超级管理员命令目录
whereis mysqld
命令帮助 --help 简单的帮助信息
ls --help
mkdir --help
ps --help
ifconfig --help
man 详细使用手册 manual,只有shell命令才有手册,内核命令没有独立手册
也可以查看配置文件手册,只指定文件名,不能写文件路径
man mkdir
man ifconfig
man cp
man cd 内核命令没有独立文档
man passwd 配置文件手册
man shadow
man services
whatis 查看命令的简单信息
whatis ls
whatis cp
whatis cd
whatis whatis
info 命令信息
help 命令帮助
apropos 配置文件简单信息
apropos services
apropos passwd
用户管理
useradd 添加用户
useradd zhangsan
-g 指定用户组(主组)
-G 指定附加组 -G grp1,grp2,grp2
添加用户 alt+f2
useradd lisi 普通用户不能添加新用户
alt+f1
useradd -g root -G group1 lisi
cat /etc/passwd
passwd lisi 设置密码123456
cat /etc/shadow
passwd 密码管理
passwd 设置当前用户的密码
passwd zhangsan 对zhangsan的密码进行设置
-l 锁定密码,不允许用户登录
-u 解锁用户
-d 无口令
密码
passwd -l zhangsan
alt+f2
exit
alt+f1
passwd -u zhangsan
alt+f2
alt+f1
passwd -d zhangsan
alt+f2
logout
cat /etc/shadow
userdel 删除用户 user delete
删除用户时,会同时删除他的主目录
userdel lisi
who 查看当前登录的用户
last 显示用户的最近的登录信息
lastlog 显示用户最后一次登录信息
groupadd 添加用户组
groupadd group1
压缩和解压缩
gzip 对 gz 格式压缩文件进行压缩和解压缩,不能直接对目录进行压缩
压缩:
gzip passwd
会生成 passwd.gz,并删除原文件
解压缩:
gzip -d passwd.gz
解压缩,解压之后,生成passwd,并删除压缩文件
gzip
cd ~
cp -p /etc/services .
ls -l
gzip services
ls -l
gzip -d services.gz
ls -l
tar 将目录打成一个tar文件包(不压缩),结合gzip,将tar打包文件可以再进行压缩
tar也提供了参数,自动执行gzip压缩
-c
创建打包文件 create
-v
显示详细信息 verbos
-f
指定文件名 file
-z
打包同时压缩 gz,或者拆包时解压缩
-j
打包同时压缩 bzip2
-x
解包, tar文件,解开成文件夹
-z
解压缩
-czf
创建打包文件,进行压缩,指定文件名
-zxvf
解压缩后进一步解包,显示详细信息,指定文件名
zip 压缩文件:
zip a.zip f1
压缩目录:
zip -r a.zip aa
不会删除原文件或压缩文件
zip s.zip services 压缩services文件
unzip 解压缩
unzip s.zip
unzip s.zip 解出services
unzip b.zip 解出aa目录
bzip2 默认压缩后会删除原文件
bzip2 services
-k 保留原文件
bunzip2 默认解压后不保留压缩文件
bunzip2 services.bz2
-k 保留压缩文件
tar+bzip2对目录打包压缩
tar -cjf j.tar.bz2 aa
通信和网络
服务器上登录的用户之间通信 write
向登录的其他用户发送信息 write zhangsan
wall 向在线所有用户发送信息, write all
wall message...
wall sdfsdf
ifconfig 查看本机的网卡ip设置
Centos7 ip addr
ping 测试与另一台主机网络是否连通,及网络的连接速度,向对方发送数据,并等待对方发回数据
ping 192.168.7.xxx
ping 127.0.0.1
ctrl+c 退出当前ping
-c 指定次数
ping -c 2 127.0.0.1
netstat 查看网络服务
-t
tcp
-u
utp
-l
监听
-r
路由
-n
ip、端口
-tlun 本机监听的端口
-an 本机所有网络连接
-rn 本机路由表
常用三个参数
登出和重启
exit 或 logout
shutdown
-h
关机,指定时间 -h now 或 -h 20:00
-r
重启 -r now 或 -r 20:00
-c
取消预订的关机命令
init Linux的运行状态
0 关机
1 单用户(安全模式)
2 不完全多用户,不含nfs服务
3 完全多用户(正常)
4 未分配
5 图形界面
6 重启
init 6
init 5 启动桌面系统
init 3 退出桌面系统,进入命令行界面
init 0
runlevel 查看当前系统运行级别
uptime 连续运行时间
w
系统运行时间,用户数,负载情况
用户的空闲时间,累计cpu时间,单次cpu时间,运行了什么命令
vi或vim
Linux 命令行中的文本编辑工具,编写程序代码文件,shell脚本文件所有编辑操作,都要使用命令
模式
1.命令模式
2.插入模式 i a o
3.编辑模式 :
插入模式: esc 退出
a 字符后插入
A 行尾插入
i 字符前插入
I 行首插入
o 下面插入新行
O 上面插入新行
编辑模式:
冒号进入
:set nu 显示行号
:set nonu 取消行号
gg 到第一行
G 到最后一行
nG 到第n行
:n 到第n行
$ 移到行尾
0 移到行首
x 删除字符
nx 删除后面n个字符
dd 删行
ndd 删除n行
dG 删当前行到文件末尾
D 删当前字符到行尾
:n1,n2d n1行到n2行删除
yy 复制当前行
nyy 复制当前行向下n行
dd 剪切当前行
ndd 剪切当前行向下n行
p、P 粘贴在当前行上面或下面
r 覆盖单个字符
R 持续覆盖字符,esc退出
u 回退
ctrl+r 重做
/ 搜索指定的字符串
n next
:%s/aaaa/bbbb/g 不询问
:%s/aaaa/bbbb/c 询问确认
全文替换, aaaa 替换成 bbbb
:n1,n2s/aaaa/bbbb/g 不询问
:n1,n2s/aaaa/bbbb/c 询问确认
指定行范围内替换
:set ic 不区分大小写
:set noic 区分大小写
:w 保存
:w filename 另存为
:wq 保存并退出
ZZ 保存并退出,快捷方式
:q
:q! 不保存直接退出
:wq! 对只读文件强行保存并退出(所有者和root可用)
:r \aa\bb
导入bb文件内容
:!命令
不退出vim执行系统命令
:r !命令
导入命令执行结果
:map 自定义快捷键
:map [ctrl+vp] I# ctrl+p添加#
:map [ctrl+vb] 0x<ESC> ctrl+b取消#
:n1,n2s/^/#/g 行首添加#
:n1,n2s/^#//g 行首去除#
:n1,n2s/^/\/\//g 行首添加//
:ab omg oh my god!
定义缩写,替换为完整文本
.vimrc
用户目录下 vim 命令配置文件,
可添加快捷键、缩写配置等