Linux
vi和vim
正常模式:
# 拷贝当前行
yy+p
# 拷贝多行
n+yy+p
# 删除当前行
dd
# 删除多行
n+dd
# 跳转到文件的最后一行(在一般模式下) 输入 G
# 跳转到文件的第一行(在一般模式下) 输入 gg
# 撤销动作
esc+u
# 编辑文件,在一般模式下将光标移动到第20行,可以输入20+shift+g
插入模式:按下i,I,a,A,r,R
可以进入插入模式
命令行模式:
- 按下Esc再按 :或者 / 可以进入命令行模式
- 查找关键词输入 /+关键字,再输入n就是查找下一个
# 设置文件的行号
:set nu
# 取消 设置文件的行号
:set nonu
用户管理
su - 用户名 # 切换用户账户
logout或者exit # 退出当前用户
usreadd 用户名 # 添加用户,该用户的默认目录在/home/
useradd -d 用户名 # 添加用户并指定用户目录的位置
passwd 用户名 # 设置密码
pwd # 显示当前用户所在的目录
userdel 用户名 # 删除用户(保留家目录)
userdel -r 用户名 # 删除用户(不保留家目录)
id 用户名 # 查询用户信息
who am i # 切换到指定用户下,然后输入,查询何时登录到系统
# 查看服务器信息
uname -a
lsb_release -a
用户组
groupadd 组名 # 新增组
groupdel 组名 # 删除组
useradd -g 组名 用户名 # 增加用户时直接加上组
usermod -g 用户组 用户名 # 修改用户组
用户和组相关的文件
/etc/passwd 文件 # 用户的配置文件
/etc/shadow 文件 # 口令的配置文件
/etc/group 文件 # 组的配置文件
基本指令
关机重启
shutdown -h now # 立刻进行关机
shutdown -h 1 # 1分钟后关机
shutdown -r now # 现在重新启动计算机
halt # 关机
rebot # 重启
sync # 把内存数据同步到磁盘
systemctl get-default # 显示当前运行级别
帮助指令
man 获取帮助信息
# 基本语法
man ls
在Linux下,隐藏文件以 .开头
help指令-获得shell内置命令的帮助信息
文件目录类指令
cd ~ # 回到自己的家目录
mkidr -p /路径/路径 # 创建多级目录
rmdir # 删除目录
rm -rf /路径 # 不管目录是否为空都会删除
touch 文件名称 # 创建空文件
cp [选项] source dest # 拷贝文件
cp -r [选项] source dest # 递归复制文件到另一个文件夹下
rm -r [选项] # 递归删除整个文件夹
rm -rf [选项] # 强制删除不提示
mv oldName File newNameFile # (如果两个文件在一个目录下,这是重命名操作)
mv /temp/movefile /targetFolder # (如果两个文件不在一个目录下,这是移动文件操作)
#查看文件内容
cat [选项] 要查看的文件
cat -n [选项] 要查看的文件
# cat 只能查看文件。不能修改
cat -n /etc/profile | more
more 要查看的文件
less 分屏查看文件内容,less指令在显示文件内容时,并不是一次将整个文件加载后才显示,而是根据需要加载的内容 显示,对于显示大型文件具有很高的效率。
less #要查看的文件
echo #输出内容到控制台
echo [选项] [输出内容]
head #显示文件的开头部分
head 文件 #输出文件前10行
head -n 文件 #输出文件前n行
tail 文件 #输出文件后10行
tail -n 文件 #输出文件后n行
tail -f 文件 #实时追踪该文档的所有更新
> 重定向
>> 追加
# 基本语法
ls -l >文件 #将列表的内容写入a.txt中
ls -al >> 文件 #将列表的内容追加到aa。txt的末尾
cat 文件1> 文件2 #将文件1的内容覆盖到文件2中
echo "内容" >> 文件 #追加
rm /home/myroot #删除home下的软连接名myroot
ln #软连接也称符号连接
ln -s [源文件或目录] [软连接名] #给原文件创建一个软链接
日期指令
history #查看使用过的历史命令
history 10 #查看使用过的10条历史命令
!5 #执行历史编号为5的命令
date #显示当前时间
date +%Y #显示当前年份,加号不能少
date +%m #显示当前月份,加号不能少
date +%d #显示当前日份,加号不能少
date ”+%Y-%m-%d %H:%M:%S #显示年月时分秒,加号不能少
date -s 字符串时间 #设置时期
cal [选项] #显示当年日历
cal 年份 #显示指定年份日历
查找指令
name #按名查找
find /home -name hello.txt
-user #查找属于指定用户名的文件
find / -user root
-size #按照指定的文件大小查找(+n 代表大于,-n 代表小于 ,n代表等于)
find / -size +200M
# locate指令,可以快速定位文件路径
updatedb
locate [路径] #使用之前必须先使用 updatedb指令
# grep指令,过滤查找,管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理。
grep [选项] 查找内容 源文件
# 选项说明:
# - -n 显示匹配行及行号
# - -i 忽略字母大小写
cat /home/hello.txt |grep "yes" #在hello.txt文件中查找yes所在的行,并显示行号
grep - n "yes" /home/hello.txt #写法2
压缩和解压类
# gzip 压缩文件
gzip 文件 #压缩文件,只能将文件压缩为.gz文件
gzip /home/hello.txt
# gunzip 解压文件
gunzip 文件.gz #解压缩文件命令
gunzip /hello/hello.txt.gz
-r # 递归压缩,即压缩目录
zip -r myhome.zip /home/ # 将home下面的文件夹压缩成myhome.zip
# 示例
-d<目录> # 指定解压后的文件存放目录
mkdir /opt/tmp # 先创建一个目录
unzip -d /opt/tmp /home/myhome.zip # 将myhome.zip解压到opt/tmp目录下
# tar指令,是打包指令,最后的打包后的文件是.tar.gz
tar [选项] xxxx.tar.gz 打包的内容 #打包目录,压缩后的文件格式是.tat.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/dog.txt
# 压缩多个文件,将home下面的pig.txt和dog.txt压缩成pc.tar.gz
tar -zcvf myhome.tar.gz /home/ #将home的文件夹压缩成myhome.tar.gz
tar -zxvf pc.tar.gz # 将pc.tar.gz解压到当前目录
mkdir /opt/tmp2
tar -zxvf /home/myhome.tar.gz -C /opt/tmp2 #将myhome.tar.gz 解压到/opt/tmp2目录下
选项说明:
- -c 产生.tar打包文件
- -v 显示详细信息
- -f 指定压缩后的文件名
- -z 打包同时压缩
- -x 解包.tar文件
网络配置
service network restart #重启网络服务
# 设置主机名
hostname #查看主机名
vim /etc/hostname #在这里面修改主机名
# 设置hosts映射
windows
在 C:.Windows.System32.drivers.etc.hosts 里面设置
# linux
在 /etc/hosts 文件指定
主机名解析过程
浏览器缓存 -> DNS缓存 -> hosts文件 -> 域名服务DNS解析器 查找过程
-
host是用来记录IP和主机名Hostname的映射关系
-
DNS 就是域名系统,是互联网上作为域名和IP地址相互映射的一个分布式数据库
权限
-rw-r–r–. 1 root root 0 9月 2 11:23 1.txt
0-9位说明:
第0位确定文件类型(d - l c b)
l 是链接,类似于windows的快捷方式
d 是目录
c是字符设备,如鼠标,键盘
b是块设备,比如硬盘
1~3位确定文件所有者拥有的权限,r w x
作用到目录和文件是不同的
4~6位确定所属组拥有改文件的权限
7~9位确定其他用户拥有该文件的权限
修改权限-chown
第一种方式:+,-,=更改权限
u:所有者 g:所有组 o:其他人 a:所有人
chown newowner 文件/目录 #改变所有者
chown newowner : newgroup 文件/目录 #改变所有者和组
chown kevin /home/abc.txt #将/home/abc.txt下面的文件所有者修改成Kevin
-R #如果是目录,则使其下所有的子文件或目录递归生效
chown -R tom /home/test #将/home/test目录下所有的文件和目录所有者都修改成tom
chgrp newgroup 文件/目录 #修改所在组
chgrp shaolin /home/pig.txt #将 /home/pig.txt的所在组修改成shaolin
rpm
用于互联网下载包的打包工具
rpm -qa|grep xx # 查询已安装的rpm列表,
rpm -q 软件包名 # 查询软件包是否安装
rpm -qi 软件报名 # 查询软件包信息
rpm -ql 软件报名 # 查询软件包中的文件
rpm -qf 文件全路径名 # 查询文件所属的软件包
rpm -e 软件包的名称 # 删除软件包
rpm -ivh rpm包的全路径名称 # 安装rpm包
# yum是一个shell前端软件包管理器。
yum list | grep xx软件列表 # 查询某个软件是否已安装
yun install xxx # 安装某个软件包
进程管理
ps用来查看系统中哪些进行正在执行
ps -aux # 查看所有进程
ps -aux | grep sshd # 查看系统有没有ssh进程
ps -ef # 以全格式显示所有的进程
UID # 用户id
PID # 进程id
PPID # 父进程id
C: # cpu用于执行优先级的因子,数值越大,执行优先级越低;
STIME: # 进程启动时间
TTY: # 完整的终端名称
TIME # cpu时间
CMD: # 启动进程所用的命令和参数
kill 进程名 #杀掉进程
kill all 进程名 #杀死进程
kill all gedit #杀死多个进程
-9 # 表示强迫进程立即停止
/bin/systemctl start sshd.service #重启sshd服务
服务管理
service管理指令
service 服务名(start|stop|reload|status)
setup #查看所有进程
开机流程
开机 BIOS /boot systemd 进程1 运行级别 运行级别对应的服务
systemctl get-default #查看系统当前的运行级别
chkconfig # 给各个服务设置各自的运行级别
chkconfig --list #查看服务
chkconfig --level 3 network off #把network在3运行级别关闭
chkconfig --level 3 network on #把network在3运行级别打开
chkconfig # 设置完之后需要重新启动
systemctl # 管理指令
systemctl [start|stop|restart|status] 服务名 #基本语法
systemctl # 可以设置服务的自启动状态
systemctl enable 服务名 #设置服务开机自启动
systemctl disable 服务名 #关闭服务开机自启动
systemctl is-enabled 服务名 #查询某个服务是否自启动
注意要让服务自启动永久生效要使用disabled 和enabled命令,start和stop只能让服务临时生效
firewall指令
真正的生产环境防火墙是需要打开的
firewall-cmd --permanent --add-port=端口号/协议 #打开端口
firewall-cmd --permanent --add-port=111/tcp
firewall-cmd --permanent --remove-port=端口号/协议 #关闭端口
firewall-cmd --reload #重新载入,才能生效
firewall-cmd --query-port=端口/协议 #查询端口是否开放
top动态监控进程
top [选项]
-d 秒数 #指定top命令每隔几秒跟新,默认是3秒
-i #使top不显示任何闲置或者僵死进程
-p #通过指定监控进程ID来仅仅监控某个进程的状态
p #以cpu使用率排序
m #以内存排序
n #以pid排序
q #退出top
输入k #输入进程号杀死进程
输入u #输入用户名查看哪个用户在使用
netstat 查看网络情况
netstat [选项]
-an #按一定的排列顺序输出
-p #显示哪个进程在调用
netstat -anp | grep sshd #查看ssh服务的网络情况