现在很多公司项目部署都使用的是 Linux 服务器,互联网公司更是如此。对于大一些的互联网公司,系统可能会非常复杂,本地无法启动,一般都会采用专门的开发机给开发人员开发测试使用。我实习期间接触的项目没一个可以在本地启动的,都需要写好代码,把代码更新到开发机上,然后编译部署,并查看部署过程中是否有错误或是查看访问这台机器的日志。而这些操作,都需要对基本的 Linux 命令熟悉。
今天总结下 Linux 的相关概念和基本操作,如果想了解更多,可以去看看《鸟哥的私房菜》。同时希望大家多动手实践,这样理解得更深刻。
Linux 知识总结以下部分内容:Linux 常见概念、Linux 常用命令、vi 操作和一个最简单的 shell 脚本。
扩展分区
必须分区
推荐分区
/usr 系统软件资源目录
根目录下的 bin 和 sbin,usr 目录下的bin 和 sbin,这四个目录都是用来保存系统命令的。proc 和 sys 目录不能直接操作,这两个目录保存的是内存的过载点。
命令 [选项] [参数]
ls [选项] [文件或目录]
选项:
mkdir -p [目录名]
-p 递归创建
命令英文原意:make directories
cd [目录]
命令英文原意:change directory
cd ~ 进入当前用户的家目录cd
cd - 进入上次目录
cd .. 进入上一级目录
cd . 进入当前目录
查询所在目录位置:pwd
命令英文原意:print working directory
rm -rf [文件或目录]
选项:
cp [选项] [源文件或目录] [目标目录]
选项:
mv [原文件或目录] [目标目录]
ln -s [原文件] [目标文件]
生成链接文件
选项:-s 创建软链接
硬链接特征:
软链接特征:
locate 文件名
在后台数据库中按文件名搜索,搜索速度更快
/var/lib/mlocate
locate 命令所搜索的后台数据库
updatedb
更新数据库。默认一天一更新。快。缺点:只能按文件名来搜索
find [搜索范围] [搜索条件]
搜索文件
find / -name install.log
避免大范围搜索,会非常耗费系统资源
find 是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。
* 匹配任意内容 ? 匹配任意一个字符 [] 匹配任意一个中括号内的字符
find /root -iname install.log
不区分大小写
find /root -user root
按照所有者搜索
find /root -nouser
查找没有所有者的文件
find /var/log -mtime +10
查找10天前修改的文件
find . -size 25k
查找文件大小是 25KB 的文件
find . -inum 262422
查找i结点是 262422 的文件
whereis 命令名
搜索命令所在路径及帮助文档所在位置
选项:
which 命令能看到目录和别名
grep [选项] 字符串 文件名
在文件当中匹配符合条件的字符串
选项:
man 命令命令 --help
help shell内部命令
info 命令
zip 格式压缩
zip 压缩文件名 源文件
压缩文件
zip -r 压缩文件名 源目录
压缩目录
zip格式解压缩
unzip 压缩文件
gz 格式压缩
gzip 源文件
压缩为.gz 格式的压缩文件,源文件会消失
gzip -c 源文件 > 压缩文件
压缩为.gz 格式,源文件保留
gzip -r 目录
压缩目录下所有的子文件,但是不能压缩目录
gz 格式解压缩
gzip -d 压缩文件
解压缩文件
gunzip 压缩文件
解压缩文件
bz2 格式压缩
bzip2 源文件
压缩为.bz2格式,不保留源文件
bzip2 -k 源文件
压缩之后保留源文件
bzip2命令不能压缩目录
打包命令tar
tar -cvf 打包文件名 源文件
解打包命令
tar -xvf 打包文件名
.tar.gz压缩格式
其实.tar.gz 格式是先打包为.tar格式,再压缩为.gz格式
tar -zcvf 压缩包名.tar.gz 源文件
.tar.gz 解压缩
tar -zxvf 压缩包名.tar.gz
.tar.bz2压缩格式
tar -jcvf 压缩包名.tar.bz2 源文件
.tar.bz2 解压缩
tar -jxvf 压缩包名.tar.bz2
shutdown [选项] 时间
选项:
haltpoweroff
init 0
rebootinit 6
cat /etc/inittab
修改系统默认运行级别
runlevel
查询系统运行级别
logout
退出登录
mount
查询系统中已经挂载的设备
mount -a
依据配置文件/etc/fstab 的内容,自动挂载
mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点
mkdir /mnt/cdrom
建立挂载点
mount -t iso9660 /dev/cdrom /mnt/cdrom/
挂载光盘
umount 设备文件名或挂载点umount /mnt/cdrom
w 用户名
命令输出:
who 用户名
last
lastlog
history [选项] [历史命令保存文件]
选项
历史命令默认会保存 1000 条,可以在环境变量配置文件 /etc/profile 中进行修改
wc [选项] [文件名]
选项
分页查看输出内容
ls -l /etc | morenetstat -an | grep ESTABLISHED
/etc/group:存储当前系统中所有用户组信息
/etc/gshadow:存储当前系统中用户组的密码信息
/etc/passwd:存储当前系统中所有用户的信息
/etc/shadow 存储当前系统中所有用户的密码信息
vim + abc
打开文件并把光标定位到最后一行
vim +2 abc
第二行
vim +/xxx abc
跳到指定字符串第一次出现的地方
同时打开多个文件 可用n N prev来切换
:w
:q
:!
/xxx
?xxx
echo [选项] [输出内容]
首行
#!/bin/bashecho "hello world"
赋予执行权限,直接运行
chmod 755 hello.sh./hello.sh
通过bash 执行脚本
bash hello.sh