本文涉及的更多是Linux下的使用命令,可作为参考使用,如果是想学习Linux,那这篇文章可能不太适应。适合有一定基础的朋友。如有错误之处,希望朋友们在评论处指出,谢谢翻阅!!!
1、注意事项
Linux的命令和文件名严格区分大小写;
Linux中所有内容以文件形式保存,包括硬件;硬盘文件是
.dev.sd[a-p]、光盘文件是/dev/sr0;Linux中命令行对网络设置、环境变量或服务配置文件的更改是临时生效的;
Linux不靠扩展名区分文件类型;但可以使用扩展名的形式用来管理,作为提示:
压缩包:
*.gz、*.bz2、*.tar.bz2、*.tgz等;二进制软件包:
*.rpm;网页文件:
*.html、*.php;脚本文件:
*.sh;配置文件:
*.conf;Linux所有的存储设备都必须挂载(类似分配盘符)之后才能使用,包括硬盘、U盘等;
2、各目录的作用



3、命令格式
命令格式:命令 [-选项] [参数];例:ls -la /etc。参数是命令操作的对象,可以是目录、文件、对象等;
说明:
- 个别命令使用不遵循此格式;
- 当有多个选项时,可以写在一起;
- 简化选项与完整选项;-a 等于 --all
4、常用命令
1 目录处理命令
1.1 显示目录文件信息
ls:显示所有目录文件;语法:ls 选项[-all] [文件或目录]。
选项:-a显示所有包括隐藏的文件;-l显示详细信息;-d查看目录属性;-i显示文件的唯一标识;-h换格式显示文件大小
文件信息内容格式
-rw-r--r-- 1 root root 9.9M Dec 11 20:38 bison
* 所属者 所属组 文件大小 最后修改时间 文件名
-rw-r--r--
-:是文件类型(- 二进制文件;d 目录;l 软连接文件)
rw- r-- r--
u(所有者) g(所属组) o(其他人)
r读——w写——x执行
mkdir -p [目录名...]:创建新目录;-p递归创建目录
cd /路径:切换目录;.当前目录;..上一级目录;\转义符
pwd:显示当前目录路径
1.2 复制、剪切、删除
rmdir /路径:删除空目录;
cp -rp [原文件][目标目录]:复制文件或目录;-r复制目录;-p保留目录属性
mv [原文件][目标目录]:剪切文件、重命名;
rm -rf [文件或目录]:删除文件;-r删除目录;-f强制删除
2 文件处理命令
2.1 创建文件
touch [文件名]:创建空文件;
2.2 查看文件内容
cat -n [文件名]:显示文件内容;-n 显示行号;
tac -n [文件名]:反向显示文件内容;
more [文件名]:分页显示文件内容;
操作:空格或f——翻页;Enter——换行;q——退出;
less [文件名]:分页显示文件内容,可向上翻页;
操作:除more的操作外,还支持PageUp——向上翻页;↑ ——向上换行;/——调用搜索功能;n——查找下一个搜索内容;
head -n 行数 [文件名]:显示文件内容前几行;
tail -nf 行数 [文件名]:显示文件内容后几行;-f动态显示文件末尾内容;
2.3 输出重定向、追加
>:输出重定向。将原来文件的内容覆盖掉;
>>:追加。将内容追加到文件尾部;
ls -lh > a.txt #将文件信息列表输出重定向到a.txt文件中,若文件不存在会创建
cat a.txt > b.txt #将a.txt的文件内容覆盖到b.txt
2.4 软、硬链接
ln -s [原文件] [目标文件]:生成连接文件;-s创建软链接
软链接:文件权限lrwxrwxrwx(类似Windows快捷方式);
只是符号链接,箭头指向源文件;
硬链接:拷贝cp -p + 同步更新;
通过i节点识别;与源文件的i节点一致
不能跨分区;
不能针对目录使用;
3 权限管理命令
chmod [mode=421]:改变文件或目录权限;
两种方式
语法:chmod [{ugoa}{+-=}{rwx}] [文件或目录]
[mode=421] [文件或目录]
r----4;w----2;x----1
rwx——7;rw——6;r-x——5
-R递归修改,改变目录权限同时改变目录下所有文件的权限;
chown [用户] [文件或目录]:改变文件或目录的所有者;
chgrp [所属组] [文件或目录]:改变文件或目录的所有组;
umask [-S]:显示、设置文件的缺省权限;
新建的文件是没有可执行权限的;
4 文件搜索命令
4.1 find搜索
find [搜索范围] [匹配条件]:文件搜索;
* 匹配任意字符
?匹配任意一个字符
选项
# -name:根据文件名搜素(区分大小写)
find /tmp -name init
# -iname:根据文件名搜索(不区分大小写)
# -size +n;-size -n :根据数据块搜索;一个数据块=512字节=0.5k
find / +204800 查找大于100M的文件
# -user:根据所有者查找
# -group:根据所属组查找
# -amin:根据访问时间access查找
# -change:根据文件属性change查找
# -mmin:根据文件内容modify查找
# 连接符号:
# -a:两个条件同时满足
# -o:满足其中一个条件
find / -size +163840 -a -size -204800
# -type:根据文件类型查找:f 文件;d 目录;l 软链接文件
# -inum:根据i节点查找
# -exec 命令 {} \; 对搜索结果执行操作
# -ok 命令 {} \; 对搜索结果执行操作时进行询问
find /etc -name init* -exec ls -l {} \;
4.2 locate指令
locate [文件名]:在文件资料库查找文件;
yum install locate # 获取locate命令
updatedb # 更新资料库
# locate -i [文件名]:不区分大小写
locate -i a.txt
新建的文件需要更新到资料库
4.3 搜索命令
which [命令]:搜索命令所在目录及别名信息;
whereis [命令]:搜索命令所在目录及帮助文档路径;
4.4 管道指令
grep -iv [指定字符] [文件]:在文件中搜寻字符串匹配的行并输出;-i不区分大小写;-v排除指定字串
|:管道符号。表示将前一个命令的的处理结果传递给后面的指令进行处理;
5 帮助命令
man [命令或配置文件]:获得命令或配置文件的帮助信息;当同时获取命令帮助文档和配置文件的帮助信息;1 命令的帮助 ;5 配置文件的帮助
whatis [命令]:查看命令的简短信息;
apropos [配置文件]:查看配置文件的简短信息;
命令 --help:可以查看当前命令可用的选项;
help:查找shell内置命令的帮助信息
6 用户管理命令
6.1 添加、删除用户
useradd [新用户]:添加新用户;
useradd -d [目录] [用户名]:指定目录作为新创建用户的家目录;
useradd -g [所属组] [用户名]:创建用户,并指定其所属组;
usernod -g [所属组] [用户名]:修改用户的所属组;
userdel [用户名]:删除指定用户名,但会保留家目录;
userdel -r [用户名]:删除指定用户及其家目录;
6.2 修改密码
passwd:修改当前用户密码;passwd [用户]管理员能修改所有用户的密码;
6.3 查看、切换用户
id [用户名]:查看指定用户信息;
su - [用户名]:切换用户;
exit:返回原来的用户状态
6.4 添加、删除组
groupadd [新组]:添加新所属组;
groupdel [组名]:删除所属组;
6.4 查看登录用户信息
whoami:查看当前是哪个用户;
who:查看登录用户信息:登录用户名 登录终端 登录时间(IP地址);
w:查看登录用户详细信息;
7 压缩解压命令
7.1 gzip文件
gzip [文件]:压缩成.gz格式文件;不能压缩目录;
gunzip [压缩文件] /gzip -d [压缩文件]:解压缩.gz的压缩文件;
压缩后/解压缩后不保存源文件。
7.2 tar文件
tar [选项] [压缩后文件名] [目录]:打包或解包;
-c打包;-z打包同时压缩;-v显示详细信息;-f指定文件名;
-x解包;-z解压缩;-v显示详细信息;-f指定解压文件名;
tar -czvf file.tar.gz files
tar -xzvf file.tar.gz
tar -xzvf file.tar.gz -C /root/ # 解压到其它文件目录
7.3 zip文件
zip 选项[-r] [压缩后文件名] [文件或目录]:压缩文件或目录;-r压缩目录;
unzip [压缩文件]:解压.zip的压缩文件
7.4 bzip2文件
bzip2 选项[-k] [文件]:压缩.bz2文件(与.gz格式一样);-k 产生压缩文件后保留原文件
bunzip2 -k [文件]:解压缩;-k解压缩后保留原文件
bzip2 -k first.txt
tar -cjf file.tar.bz2 files
-cjf:表示打包并压缩为bz2格式
bunzip2 first.txt.bz2
tar -xjf file.tar.bz2
-xjf:表示解包并解压缩bz2格式文件
文件格式 | 压缩 | 解压
------------------------------------------------------
.gz | gzip | gunzip(gzip -d)
.tar | tar -cf | tar -xf
.zip | zip -r | unzip
.bz2 | bzip2 -k | bunzip2
.tar.gz | tar -czf | tar -xzf
.tar.bz2 | tar -cjf | tar -xjf
8 网络命令
write[用户] 内容 :给用户发信息,以Ctrl+D保存结束;
- 编辑内容时,使用Ctrl+退格键删除内容;
- 用户在线才可发送;
wall [内容]:给所有在线用户发广播信息;
ping [选项] IP地址:测试网络连通性;-c指定发送次数;
ifconfig [网卡名称] [IP地址]:查看和设置网卡信息;
mail [用户名] 内容 :发送电子邮件;
mail查看邮件——输入邮箱序列号查看内容——h再次查看邮箱列表——d 序列号删除邮箱
last:列出目前与过去登入系统的用户信息;
lastlog:列出所有用户的最后登录信息;
traceroute [网址或网址IP]:显示数据包到主机间的路径;
natstat [选项]:显示网络相关信息;-tTCP协议;-uUDP协议;-l监听;-r路由;-n显示IP地址和端口号
netstat -ltun 查看本机监听的端口
netstat -an 查看本机所有的网络连接
netstat -rn 查看本机路由表
setup:配置网络;
mount [-t 文件系统] 设备文件名 挂载点:挂载设备
umount 设备文件名:卸载挂载点
mkdir /mnt/cdrom 设置挂载点
mount -t iso9660 /dev/sr0 /mnt/cdrom/ 挂载设备
mount /dev/sr0 /mnt/cdrom/
umount /dev/sr0 卸载挂载点
cd /mnt/cdrom/ 访问挂载点
9 关机重启命令
shutdown [选项] 时间:关机;-c取消前一个关机命令;-h关机;-r重启
shutdown -h now 现在关机
shutdown -h 20:00 20:00关机
halt:直接使用,等价于立即关机;
reboot:重新启动计算机;
sync:把内存的数据同步到磁盘上;
通过runlevel显示当前系统的运行级别,init _设置运行级别;
logout:用户注销;
5、Vim
所有的Linux系统都会内建 vi 文本编辑器。Vim 具有程序编辑的能力,可以看做是Vi的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
5.1 三种常见模式
正常模式
正常模式下,不能插入文本内容;但可以使用快捷键编辑文本;
插入模式
使用
a、A;o、O;i、I;r、R快捷键,可以进入编辑文本模式;一般使用i即可;命令行模式
提供相关指令,完成读取、存盘、替换、离开 vim 、显示行号等动作则是在此模式中达成的;
5.2 快捷键命令
插入命令
a在光标所在字符后插入内容;A在光标所在行尾插入;i在光标所在字符亲插入;I在光标所在行行首插入;o在光标下插入新行;O在光标上插入新行;定位命令
:set nu设置行号;:set nonu取消行号;G到最后一行;nG到第n行;:n到第n行;删除命令
x删除光标所在字符;nx删除光标之后n个字符;dd删除光标所在行内容;ndd删除光标所在行起n行内容;dG删除光标所在处起至文件末尾内容;D删除光标所在处到行尾内容;复制剪切命令
yy复制当前行;nyy复制当前行以下n行;dd剪切当前行;ndd剪切当前行以下n行;p粘贴在当前光标所在行下;P粘贴在当前光标所在行上;替换取消命令
r取代光标处字符;R从光标所在处起替换字符,按ESC结束;u取消上一步操作;搜索命令
/string搜索指定字符串;:set ic忽略大小写;set noic区分大小写;n搜索指定字符串的下一个出现位置;:%s/old/new/g全文替换指定字符;:%s/old/new/c每次替换前询问;:n1,n2s/old/new/g在一定范围内替换内容;保存退出命令
:w保存修改;:w newFileName另存为指定文件;:q退出;:wq保存退出;ZZ保存退出,快捷键;:q!不保存修改退出;:wq!保存修改并退出,在不允许写入的文件内进行保存修改(仅文件所有者及root);
5.3 Vim技巧
导入命令执行结果
导入命令:-r 文件
-r /tmp/readme.msge
执行:!命令(在vim中执行命令但不影响文件内容)
-r !命令:将命令的执行结果导入文件光标处
-r !date
定义快捷键
:map 快捷键 触发命令 —— 快捷键:Crtl+v+p = ^p
:map ^p I#<ESC> 设置Crtl+P快捷键为跳到行首添加#
连续行注释
:n1,n2s/^/#/g 在n1,n2行首添加#,^表示行首添加
:n1,n2s/^#//g 将n1,n2行首的#删除
替换
ab 输入内容 替换内容
ab email xxxxxxxx@xx.com——在vim中输入email空格或换行可替换成真正的邮箱
永久保存快捷键
在/root目录或用户目录下,创建配置文件 .vimrc
设置快捷键
例如: /root/.vimrc、/home/username/.vimrc
set nu
map ^p I#<ESC>
map ^B 0x
ab email xxxxxxxx@xx.com
6、软件包管理
源码包:源代码开源包;编译安装,更稳定效率更高;卸载方便(直接删除);
二进制包:源码包进行编译之后的软件包(RPM包、系统默认包);二进制包便于安装,只需几个命令就可以安装、升级、查询和卸载;
缺点:经过编译,无法查看源码;功能选择比源码不灵活;依赖性高
6.1 RPM包管理
RPM包命名原则
软件包名-软件版本-软件发型次数.适合的Linux平台.适合的硬件平台.rpm包扩展名
RPM包依赖性
- 树形依赖:a→b→c(先安装c,最后安装a)(先卸载a,最后卸载c)
- 环形依赖:a→b→c→a(一条命令同时安装abc包)
- 模块依赖:模块依赖查询网址
包全名:操作的包是没有安装的软件包时。使用包全名,而且要注意路径;
包名:操作已经安装的软件包,使用包名。是搜索/var/lib/rom中的数据库;
6.2 rpm管理
1. 安装
rpm -ivh 包全名;-i安装;-v显示详细信息;-h显示进度;--nodeps不检测依赖性
2. 升4级
rmp -Uvh 包全名;-U升级
3. 卸载
rpm -e 包名;-e卸载;--nodeps不检查依赖性
4. 查询
rpm -q 包名:检查包是否安装
rpm -qa:查询所有已安装的包
rpm -qi 包名:查询包名的详细信息;-i查询软件信息;-p查询未安装包(包全名)信息
rpm -ql 包名:查询包的文件安装位置;-l列表;-p查询未安装包(包全名)信息
rpm -qf 系统文件名:查询系统文件名属于哪个RPM包;-f查询系统文件属于哪个软件包 (file)
rpm -qR 包名:查询软件的依赖性;R查询软件包的依赖性;-p查询未安装包(包全名)信息
5. 包校验
rpm -V 已安装的包名:校验软件的系统文件是否被其他人修改;-V校验指定RPM包的文件

RPM包文件提取
rpm2cpio 包全名 cpio|-idv .文件绝对路径 :把包中的某个文件提取到当前路径
rpm2cpio 将rpm包转换为cpio格式命令
cpio 用于创建软件档案文件和从档案文件中提取文件
cpio 选项 <文件名
-i:copy-in模式,还原
-d:还原时自动创建目录
-v:显示还原过程
6.3 yum在线管理
yum命令
yum list:查询所有可用软件列表
yum search 关键字:搜索服务器上所有和关键字相关的包
yum -y install 包名:安装;-y自动回答yess
yum -y update 包名:升级;-y自动回答yes
yum -y remove 包名:卸载
yum grouplist:列出所有可用的软件组列表,可查询组名
yum groupinstall 软件组名:安装指定软件组
yum groupremove 软件组名:卸载指定软件组
7、系统管理
7.1 任务调度
任务调度:指系统在某个时间执行特定的命令或程序;
crontab [选项]:进行定时任务的设置;-e编辑定时任务;-l查询任务;-r删除当前用户的所有任务;
crontab -e
# 进入任务编辑
# */1 * * * * ls -l >> do.txt
5个占位符的说明
| 项目 | 含义 | 范围 |
|---|---|---|
第一个 * | 一小时中的第几分钟 | 0 - 59 |
第二个 * | 一天中的第几小时 | 0 - 23 |
第三个 * | 一月中的第几天 | 1 - 31 |
第四个 * | 一年中的第几个月 | 1 - 12 |
第五个 * | 一周中的星期几 | 0 - 7(0,7都表示星期日) |
特殊符号
| 特殊符号 | 描述 |
|---|---|
* | 表示任何时间。 |
, | 代表不连续时间。比如0 8,12 * * *:代表每天的8点0分、12点0分执行任务 |
- | 代表连续的时间范围。比如0 5 * * 1-5:代表周一到周五的5点0分执行任务 |
*/1 | 代表每隔多久执行。比如*/1 * * * *:代表每隔1分钟执行一次任务 |
service crond restart:重启任务调度
7.2 进程管理
1. 基本介绍
- 在LINUX 中,每个执行的程序(代码)都称为一个进程。每一个进程都分配一个ID号。
- 每一个进程都会对应一个父进程,而这个父进程可以复制多个子进程。例如:www服务器。
- 每个进程都可能以两种方式存在:前台与后台,所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
- 一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才才结束。
2. 系统进程的显示
ps:显示目前系统中执行的进程;-a显示当前终端的所有进程信息;-u:以用户的格式显示进程信息;-x显示后台进程运行的参数
显示进程的信息
| 列名 | 描述信息 |
|---|---|
| USER | 用户名称 |
| PID | 进程号 |
| VSZ | 进程占用的虚拟内存大小(单位:KB) |
| RSS | 进程占用的物理内存大小(单位:KB) |
| TT | 终端名称(缩写) |
| STAT | 进程状态,其中 S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等 |
| START | 进程的启动时间 |
| TIME | 即进程使用CPU的总时间 |
| COMMAND | 启动进程所用的命令和参数,如果过长会被截断显示 |
ps -ef:以全格式显示当前所有的进程,查看进程的父进程;-e显示所有进程;-f全格式显示;
3. 终止进程
kill -9 [进程号]:杀死指定进程号的进程;-9强制立即停止进程
killall [进程名]:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用;
4. 进程的监控
4.1 动态监控
top与ps命令很相似,都是用来显示正在执行的进程。top与ps最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。
top [选项]:查看执行的进程;-d 秒数指定top命令隔几秒更新,默认3秒;-i不显示闲置或僵死进程;-p通过指定进程ID来监控某个进程的状态;
交互操作
| 操作 | 功能 |
|---|---|
| P | 以CPU使用率排序(默认项) |
| M | 以内存的使用率排序 |
| N | 以PID排序 |
| q | 退出top |
4.2 监控网络服务
netstat [选项]:查看系统网络情况;-an按一定排序输出;-p显示哪个进程在调用;
7.3 服务管理
服务(service) 本质就是进程,但是运行在后台,通常会监听某个端口,等待其它程序的请求,比如(mysql , sshd防火墙等),因此我们又称为守护进程。
service [start|stop|restart|reload|status] [服务名]:服务的开启、停止、重启、重加载、查看状态;
centOS7.0之后使用的是systemctl指令。
1 查看服务
目录/etc/init.d/下可以查看所有服务。centos7使用systemctl list-unit-files可以列出所有的服务。
系统各个运行级别下设置服务的自启动(centOS 7.0之前)
chkconfig:给每个服务在各个运行级别时设置是否自启动。
chkconfig --list:查看所有服务的自启动状态
chkconfig [服务名] --list:查看指定服务的自启动状态
chkconfig --level [级别] [服务名] on/off:指定服务在某个级别下是否自启动
centOS 7.0
systemctl --type service:查看服务
systemctl enable [服务名]:指定服务自启动
systemctl disable [服务名]:指定服务不自启动
2 防火墙
firewall-cmd --state:查看防火墙状态
firewall-cmd --zone=public --list-ports:查看防火墙所有开放的端口
firewall-cmd --zone=public --add-port=端口号/tcp --permanent:开放指定端口
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent:关闭指定端口
firewall-cmd --reload:配置立即生效
systemctl [start][restart][stop] firewalld.service:开启、重启、关闭防火墙
netstat -lnpt:查看监听端口。无netstat命令时,需安装 yum install -y net-tools
-l仅列出在Listen(监听)的服务状态;-t(tcp) 仅显示tcp相关选项;-u(udp)仅显示udp相关选项;-n拒绝显示别名,能显示数字的全部转化为数字;-p显示建立相关链接的程序名