linux 常用命令
基础指令
ls命令
ls [选项]【路径】
ls -l 详细地显示文件/文件夹(缩写为ll)
ls -la 显示包括隐藏文件的文件/文件夹
ls -lh 路径 显示指定路径下所有文件/文件夹,文档大小以可读性较高的形式显示
pwd命令
语法: #pwd
显示当前所在的路径
mkdir rmdir 创建、删除目录
语法:
#mkdir 目录名
touch 创建文件
语法:
#touch 文件路径
cp 复制
语法:
#cp 被复制的文件路径 文件要复制到的路径(可更改文件名称)
mv 移动 剪切
语法:
#mv 原文件路径 要移动到的目标路径(可更改文件名称)
rm 删除命令
语法:
#rm 选项 要删除的文件路径
作用:带询问的删除文件(不能删除非空目录)
选项:
rm -f 强制(force)删除,不带询问的删除
rm -r 递归删除(用于删除目录)
rm -rf 合并上述两个功能
‘ * ’ 通配符
vi vim编辑器
文件编辑器
vi既可以查看文件也可以编辑文件。 三种模式:命令行、插入、底行模式。
切换到命令行模式:按Esc键;
切换到插入模式:按 i 、a、o键;
i 在当前位置生前插入
I 在当前行首插入
a 在当前位置后插入
A 在当前行尾插入
o 在当前行之后插入一行
O 在当前行之前插入一行
切换到底行模式:按 :(冒号)
打开文件:vim file
退出:esc :q
修改文件:输入i进入插入模式
保存并退出:esc:wq
不保存退出:esc:q!
------------------------------删除---------------------------------
dd 删除游标所在的那一整行(常用)
ndd n为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
dG 删除光标所在到最后一行的所有数据
d$ 删除游标所在处,到该行的最后一个字符
------------------------------移动光标---------------------------------
0 或功能键[Home] 这是数字『 0 』:移动到这一行的最前面字符处 (常用)
$ 或功能键[End] 移动到这一行的最后面字符处(常用)
gg 移动到这个档案的第一行,相当于 1G 啊! (常用)
G 移动到这个档案的最后一行(常用)
------------------------------查找和替换---------------------------------
/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
?word 向光标之上寻找一个字符串名称为 word 的字符串。
:1,$s/word1/word2/g 或
:%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
> 输出重定向
语法:
#正常执行指令 > / >> 文件路径
例:#ls -la > 1.txt 将#ls -la指令显示的内容,输出到1.txt文件中
( > ) 覆盖输出到文件中
( >> ) 追加输出到文件中
cat 指令
作用1:直接打开一个文件
语法:
#cat 文件路径
作用2:合并多个文件
语法:
#cat 文件1 文件2 ... > 合并后的文件路径
tar 指令
tar命令位于/bin目录下,它能够将用户所指定的文件或目录打包成一个文件,但不做压缩。一般Linux上常用的压缩方式是选用tar将许多文件打包成一个文件,再以gzip压缩命令压缩成xxx.tar.gz(或称为xxx.tgz)的文件。
常用参数:
-c:创建一个新tar文件
-v:显示运行过程的信息
-f:指定文件名
-z:调用gzip压缩命令进行压缩
-t:查看压缩文件的内容
-x:解开tar文件
打包:
tar –cvf xxx.tar ./*
打包并且压缩:
tar –zcvf xxx.tar.gz ./*
解压
tar –xvf xxx.tar
tar -xvf xxx.tar.gz -C /usr/aaa
进阶指令
df 查看磁盘空间
语法:
#df -h
-h表示以可读性较高的形式显示
free 查看内存使用情况
语法:
#free -m
-m表示以MB为单位显示(可使用 -k )
head 指令 : 查看文件的前n行
head 语法:#head -n 文件路径
(查看文件的前n行,若n不指定,默认为10行)
tail 指令:查看文件的后n行
-
语法1:
#tail -n 文件路径
(查看文件的后n行,若n不指定,默认为10行)tail -10 /etc/passwd 查看后10行数据
-
语法2:
#tail -f 文件路径
(查看指定文件的动态变化,用于查看日志,q键退出tail -f catalina.log 动态查看日志(***********)
less 查阅指令
作用:查看文件,以较少内容输出,以按下辅助功(数字+回车、空格键、方向键)能键查看更多
语法:#less 查看的文件路径
q退出
wc 统计文件内容信息
统计的信息包括 行数、单词数、字节数
语法:#wc -lwc 需要统计的文件路径
-l 表示lines,行数
-w 表示words,单词数
-c 表示character,字符数
date 日期指令
作用:操作时间和日期(读取、设置)
- 语法1:
#date
- 语法2:
#date +%F
(输出形式:2019-12-10) - 语法2:
#date “+%F %T”
(输出形式:2019-12-10 15:45:33 - 等同于语法2:#date “+%Y%m%d %H%M%S”(输出形式:2019-12-10 15:45:33)
%F:表示完整的年月日
%T:表示完整的时分秒
%Y:表示四位的年份
%y:表示两位的年份
%m:表示月份
%d:表示日期
%H:表示小时
%M:表示分钟
%S:表示秒
cal 日历指令
- 语法1:#cal 等价于#cal -1 输出当月日历
- 语法2:#cal -3 输出上个月、本月、下个月的日历语法3:#cal -y 指定年份输出指定年份的日历
管道 |(重要)
**管道符 | **
grep 过滤
管道是Linux命令中重要的一个概念,其作用是将一个命令的输出用作另一个命令的输入
示例
#ls --help | more 分页查询帮助信息
#ps –ef | grep java 查询名称中包含java的进程
#cat 路径 | less
高级指令
hostname 指令
作用:操作服务器的主机名
语法1:#hostname 输出完整的主机名
语法2:#hostname -f 输出当前主机名中的FQDN(全限定域名)
id 指令
作用:查看用户的基本信息(用户id,用户组id,附加组id ...)
语法:#hostname [用户名]
用户信息在文件:/etc/passwd
用户组信息在文件:/etc/group
who 指令
作用:显示当前登录的用户名,一般用于shell脚本
语法:#who 或者 #whoami
ps -ef 查看服务器指令
指令:ps [选项]
作用:用于查看服务器的进程信息
选项含义:
-e:列出全部进程
-f :显示全部的列
案例:在ps的结果中过滤出想要查看的进程
#ps -ef | grep 进程名称
top 指令
作用:动态显示服务器进程所占的资源
语法:#top
q键退出
在运行top时,可按快捷键友好显示
M:表示将结果按照内存(MEM)降序排列
P:表示将结果按照CPU使用率降序排列
1:当服务器有多个CUP时使用“1”快捷键切换展示各个CPU的详细信息
du -sh 显示目录大小
显示目录的真实大小
语法:#du -sh 目录路径
选项含义:
- -s :只显示汇总大小
- -h:以较高可读性的形式进行显示
find 查找
作用:搜索文件
语法:#find 路径范围 选项 选项的值
选项含义:
- -name:按照文档名称进行搜索(支持模糊搜索)
- -type:按照文档的类型进行搜索
- 文档类型:“-”表示文件(在使用find时要使用f来替换),“d”表示文件夹
案例1:搜索httpd.conf
#find / -name httpd.conf
拓展:统计搜索后的数量
#find / -name httpd.conf | wc -l
案例2:搜索etc目录下的所有conf后缀的文件
#find /etc -name *.conf
案例3:搜索/etc/sane.d/目录下的所有文件
#find /etc/sane.d/ -type f
service 服务指令(重点)
作用:用于控制一些软件的服务启动/停止/重启
语法:#service 服务名 start / stop / restart
kill 指令
作用:杀死某一进程 (用于僵尸进程或者处于某些原因需要关闭进程的时候)
- 语法1:
#kill 进程名称PID ( 需配合ps一起使用)
- 语法2:
#killall 进程名称PID
ifconfig 网络指令
语法: #ifconfig
查看网络IP
重启/关机命令
- #shutdown -h now 关闭系统(1)
- #init 0 关闭系统(2)
- #telinit 0 关闭系统(3)
- #halt 关闭系统(4)
- #poweroff 关闭系统(5)
- #shutdown -r now 重启(1)
- #reboot 重启(2)
- #shutdown -h hours:minutes 定时关机
- #shutdown -c 或 Ctrl+c 取消按预定时间关闭系统
- #logout 注销
uptime 指令
作用:输出计算机的持续在线时间(从开机到现在的时间)
语法:#uptime
uname 指令
作用:获取操作系统的详细信息
语法:#uname -a
netstat -tnlp 指令
作用:查看网络连接状态
语法:#natstat -tnlp
选项含义:
- -t :表示只列出tcp协议的连接
- -n:表示将地址从字母组合转化成ip地址,将协议转化成端口号来显示
- -l:表示过滤出“state(状态)”列中值为listen(监听)的连接
- -p:表示显示发起连接的进程PID和进程名称
man 查看命令
作用:查看某个命令的描述和用法
语法:#man 命令
运行级别
init 命令
语法:#init [1-6]
init的一个进程号为1的进程,存在一个与之对应的配置文件:/etc/inittab(系统运行级别配置文件)
内容如下:
0 —关机级别(不要将默认运行级别设置成这个值)
1—单用户模式
2—多用户模式(相当于3,但是没有网络)
3—多用户模式(完整的)
4—没有被使用的模式
5—X11,完整的图形化界面模式
6—表示重启级别(不要将默认运行级别设置成这个值)
默认为3
用户和用户组
用户管理
相关配置文件
/etc/passwd 存储用户的关键信息
/etc/group 存储用户组的关键信息
/etc/shadow 存储用户的密码信息
1、添加用户
常用语法:#useradd 【选项】 用户名
常用选项:
* -g:指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
* -G:指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
* -u:表示uid,用户唯一标识,系统会默认从500之后按顺序分配uid,若不想用系统分配的,可以通过该选项自定义
* -c:添加注释
案例 :#useradd zhangsan
1、系统会默认创建一个同名的家目录
2、系统会默认创建一个同名的用户组
2、修改用户
语法:#usermod 【选项】 用户名
常用选项:
* -g:指定用户的用户主组,选项的值可以是用户组的id,也可以是组名
* -G:指定用户的用户附加组,选项的值可以是用户组的id,也可以是组名
* -u:表示uid,用户唯一标识,系统会默认从500之后按顺序分配uid,若不想用系统分配的,可以通过该选项自定义
* -l:修改用户名
3、设置/更改密码
linux不允许没有密码的用户登录到系统,新创建而没有密码的用户都处于锁定状态,需要设置密码到才能登录计算机。
语法:#passwd 用户名
4、切换用户
语法:#su 【用户名】
不指定用户名则表示切换到root用户
su --> switch user
5、删除用户
语法:#userdel -r 用户名
选项含义:-r :表示删除用户的同时,删除其家目录
小提示:已经在登录的用户不能被删除
解决办法:简单粗暴,kill命令干掉用户对应的全部进程
用户组管理
每个用户都都有一个用户组,系统可以对一个用户组中的所欲用户进行集中管理。不同linux系统对用户组的规定有所不同,如Linux下的用户属于与他同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的添加、删除和修改实际上就是对/etc/group文件的更新。
group文件的结构:
用户组名:密码:用户组ID:组内用户
1、用户组添加
语法:#groupadd 【选项】 用户组名
选项含义:-g:表示自己设置一个自定义的用户组ID数字,若不指定则默认从500开始递增
2、用户组修改
语法:#groupmod 【选项】 用户组名
常用选项含义:
- -g:表示自己设置一个自定义的用户组ID数字
- -n:设置新的用户组名
3、用户组删除
语法:#groupdel 用户组名
注意:当需要删除一个用户组,但该用户组是某个用户的主组时,不允许删除。应先移除组内所有用户
网络设置
网卡配置文件位置:/etc/sysconfig/network-scripts/
- 重启网卡操作1:#service network restart
并不是所有linux都有service命令来快速操作服务,但都有一个共性的目录:/etc/init.d/,这目录中存放着对服务的快捷方式
- 重启网卡操作2:#/etc/init.d/network restart
其他操作:
ifconfig 查看IP
ifconfig eth0 显示一个以太网卡的配置
ifup eth0 启用一个 'eth0' 网络设备
ifdown eth0 禁用一个 'eth0' 网络设备
软连接(#ln -s)
如果经常需要操作一个文件,但是这个文件的目录层次很深,可以在浅的目录中创建一个软连接,方便以后操作。
语法:#ln -s 深目录的文件路径 浅路径文件路径 连接名称
SSH服务(重点)
ssh(secure shell,安全外壳协议),该协议2个常用的作用:远程连接协议,远程文件传输协议。
协议默认使用端口号:22
配置文件位置:/etc/ssh/ssh_config
端口号范围:0-65535
服务的启动/停止/重启
- 语法1:#service sshd start / stop / restart
- 语法2:#/etc/init.d/sshd start / stop / restart
文件权限
三种权限:
r(read) | w(write) | x(execute) |
---|---|---|
4 | 2 | 1 |
u:user,文件拥有者
g:group,文件所在用户组
o:others,文件其他用户
a:all,所有用户,相当于ugo
可用 +/- 添加/取消权限
r:读权限,可用数字 4 表示
w:写权限,可用数字 2 表示
x:执行权限,可用数字 1 表示
s:管理员权限
1、更改文件的 rwx 权限
语法1:#chmod 权限 文档路径
例:
chmod 755 a.txt 将a.txt权限改为755 ( -rwxr-xr-x )
chmod o+r a.txt 增加其他用户对 a.txt 的读权限
chmod u=rwx,g=rx,o=rx a.txt
2、更改文件的所属的用户和组
语法:#chown 【选项】 用户名:用户组名 文档路径
例:chown zhangsan:admin a.txt 将a.txt文件更改为admin组的zhangsan用户所属
常用选项:
-R:变更目录时同时变更目录中的所有的子目录及文件的所属用户和组
例:chwon -R lisi:admin dir 将dir目录以及里面的所有目录和文件都更改为admin组的lisi用户所属
语法案例:
chmod 变更文件或目录的权限。
chmod 755 a.txt
chmod u=rwx,g=rx,o=rx a.txt
chmod 777 a.txt chown 变更文件或目录改文件所属用户和组
chown zs:admin a.txt :变更当前的目录或文件的所属用户和组
chown -R lisi:admin dir :变更目录中的所有的子目录及文件的所属用户和组