Linux的一些笔记(指令)

  1. VIM
    切换到某一行:
set nu
#回车
20  #到第二十行
shift+g
#回车
G  #定位到首行
gg  #定位到最后一行
u  #撤销上一步的操作
  1. 用户管理
    用户的配置文件(用户信息)---------/etc/passwd
    组配置文件(组信息)--------/etc/group
    口令配置文件(密码和登录信息,加密文件)--------/etc/shadow
logout  #退出用户,但是在图形界面的终端上使用是没用的
useradd  用户名   #创建新用户,在/home/目录下创建一个同名的问价夹,存放这个用户以及这个用户的一些文件
useradd -d 用户名   #在/home/目录下指定一个文件夹存放这个用户,需要这个文件名不存在才能成功
useradd -g 用户组 用户名      #在创建用户的时候也直接把它加入到对应的用户组,把该用户归类到该用户组下面,但是在/home/目录下还是会创建一个和用户名同名的文件夹
passwd 用户名   #修改该用户名的密码
userdel 用户名    #删除用户,但是保留家目录(家目录就是创建新用户后会在/home/目录下面生成的一个存放新用户信息的目录)
userdel -r 用户名     #同时删除掉家目录,一般不这样使用
id 用户名    #查询用户信息(uid,gid(所在组的id号),组名称)
su -userid(切换的用户名)  #切换账户,高权限切到低权限不需要密码直接切换
exit     #回到切换之前的账户
whoami    #查看当前用户
groupadd 组名    #创建用户组
groupdel  组名    #删除用户组
usermod -g 用户组 用户名       #移动用户到另一个用户组里面
  1. linux系统的运行级别
    运行级别的配置文件--------/etc/inittab
    0:关机
    1:单用户(找回丢失密码,进入单用户模式是不需要密码的)
    2:多用户无网络服务
    3:多用户有网络服务*
    4:保留
    5:图形界面
    6:重启
init [0123456]           #切换到指定运行级别

找回root的密码


#进入到单用户模式,修改密码就可以了。因为进入单用户模式,root是不需要密码就可以进入。
#在开机的时候敲enter键进入menu
#输入e
#定位到第二行kernel,再输入e
#末尾输入 1,表示进入单用户,enter
#输入b,重启
passwd root     #修改密码
#这个过程是不允许远程操作的,只能去linux服务器所在的机房直接对linux操作系统进行修改

修改开机时候的默认运行级别

vim /etc/inittab     #修改最下面的initdefault前的数字,改成相应的数字即可
#如果被设置成了0或者6.修改的方式就可以按照上面找回root密码的模式进行
  1. 帮助指令
man 指令      #查看该指令的作用和语法
help 命令      #查看该指令的作用和语法
  1. 文件目录类
pwd     #显示当前目录的绝对路径
ls  [选项][目录或是文件]
ls -a      #显示当前目录的所有文件和目录,包括隐藏的
ls -l          #以列表的方式显示信息,每个文件一行
ls -lh        #把文件的大小换成M、G的形式显示,更容易看出文件大小

相对路径和绝对路径

  • 绝对路径:/home 代表从根目录开始定位
  • 相对路径:…/home 代表从当前目录开始定位到需要去的目录
cd ~      或者    cd        #回到当前目录的家目录
cd..         #回到上一级目录
mkdir [选项] 要创建的目录          #创建一个目录
mkdir -p 要创建的目录         #可以直接创建多级目录,例如要创建:/home/beak/hyunee  当beak和hyunee都没有的情况下不加-p就会创建失败,加-p就可以成功
rmdir [选项] 要删除的空目录          #删除空目录,不空无法删除
rm -rf 要删除的目录        #不空也可以直接删除
touch 文件名称1 文件名称2 文件名称3          #创建一个新文件(txt等),可以一个也可以直接创建多个
cp [选项] 源文件 目标目录                  #拷贝,例如把beak.txt拷贝到hyunee/文件夹下面:cp beak.txt hyunee/,拷贝整个文件夹就无法直接这样使用
cp -r 源文件 目标目录                    #递归复制整个文件夹,直接可以文件夹到文件夹拷贝:cp beak/ hyunee/,直接把beak文加夹拷贝到hyunee文件夹下面去
\cp -r 源文件 目标目录            #强制覆盖,在复制文件中,相同的内容都直接覆盖掉,不提示
rm [选项] 要删除的文件和目录      #删除文件和目录
rm -rf 要删除的目录            #删除整个目录,-f代表不需要确认,就直接删掉
mv 原来文件名 新的文件名        #重命名
mv 文件名 新的文件地址      #移动文件
cat [选项[ 要查看的文件    #查看文件内容,只读不能修改
cat -n 要查看的文件          #显示行号
cat -n 要查看的文件 | more        #分页显示,通过空格换到下一页;
more 文件名          #分页显示,Ctrl+B,返回上一页;;Ctrl+F,滚动到上一页;Enter,往下翻一行
#less 一页一页读取,读取大型文件的时候就不会很慢
less 查看的文件          #分页查看文件,使用空格翻页,也可pagedown和pageup翻页
ls -l > 文件名          #把文件列表的内容写入到该文件下(覆盖写),如果文件不存在就创建,如果存在就覆盖
ls -al >> 文件名       #把文件列表的内容追加到该文件内容的后面
cat 文件1 > 文件2      #把文件1覆盖写入文件2
echo “内容” >> 文件      #把双引号中的内容追加到文件末尾
#  >代表覆盖写入,>>代表追加到文件末尾

TIPS 将当前日历信息写入到文件/home/data文件中:

cal >> /home/data  
echo [选项] 输出内容     #输出到控制台
echo $PATH        #输出当前环境变量的路径
echo "dddd"
head 文件      #查看文件的前10行,默认10行
head -n 查看的行数 文件         #查看文件的指定前多少行
tail 文件      #查看文件的后10行
tail -n 查看的行数 文件        #查看文件的指定后多少行
tail - f       #实时追踪该文件的所有更新,常用来查看更改的日志,使用这个语句后,在任何地方修改这个文件,都会实时被监控到。
ln -s 源文件或者目录 软链接名          #相当于给原本的文件创建一个快捷方式,例如:ln -s /root linktoroot;相当于给root文加夹创建了一个快捷方式,cd /linktoroot 后 ls一下会显示root文加夹的内容
rm -rf 软链接的名          #删除这个软链接,注意软链接后面不要带斜杠:rm -rf linktoroot 
history         #查看已经执行过的指令
history 10  #显示最后执行的10条指令
history
!10       #执行编号为10的那条指令
  1. 时间日期类
date       #显示当前日期
date "+%Y "        #显示当前年份
date "+%Y-%m-%d %H:%M %S"         #显示当前的年-月-日 时 分 秒,连接键是什么输出的连接键就是什么格式。例如可以写成:date "+%Y年%m月%d日 %H:%M%S"
date -s 字符串时间         #设置系统时间:date -s “2018-10-10 11:22:22”
cal 年份     #显示一整年的日历
  1. 搜索查询查找
find 搜索范围 [选项]               #查找子目录中符合的文件或者目录
find /home hello.txt             #在/home查找hello.txt
find /opt -user nobody      #查找属于nobody的文件
find / -size +20M          #查找出根目录下大于20M的文件,注意M需要大写
find / -size -20M 	         #查找出根目录下小于20M的文件
find / -size =20k            #查找出根目录下等于20k的文件,k需要小写
find / -name *.txt           #查找根目录下所有txt文件

tips

ctrl+c   终止命令

locate使用前需要使用update创建一个locate数据库,locate可以快速定位

updatedb                #建立数据库
locate 搜索文件        #定位文件,直接写文件名查找,不需要设置范围
grep [选项] 查找内容 源文件        #查找文件中的关键字
#tips     管道符  |    表示将前一个命令的待处理结果输出传递给后面的命令处理
cat hello.txt | grep yes        #查找
cat hello.txt | grep -n yes    #显示行标
cat hello.txt | grep -ni yes           #不区分大小写
  1. 压缩和解压
gzip 文件1     #压缩,压缩完源文件就不保留了
gunzip 文件.gz       #解压
zip -r mypackage.zip /home/      #对home目录下的所有文件打包压缩成mypackage.zip
unzip -d 解压到的目录 解压的文件        #解压
tar -zcvf a.tar.gz 文件1 文件2          #把文件1和文件2压缩成a.tar.gz,所有的tar压缩后的文件都是.tar.gz的格式
tar -zcvf a.tar.gz /文件夹名/       #对整个文件夹进行打包
tar -zxvf a.tar.gz       #解压到当前文件夹
tar -zxvf a.tar.gz -C /文件夹名/    #解压到指定文件夹下面,这个目录要存在,不会自己创建
  1. 组管理
    一个文件的信息包括:1.所有者 2.所在组 3.其他组 4. 改变用户所在的组
groupadd 组名     #组的创建
useradd -g 组名 用户名       #在某个组里面创建一个用户
chgrp 组名 文件名       #修改文件的所在组
usermod -g 组名 用户名      #改变用户所在组
usermod -d 目录名 用户名     #改变该用户登录的初始目录
#tip查看用户属于哪个组使用id 组名
ls -ahl    #查看所有者
chown 用户名 文件名  #修改文件所在组
  1. 权限管理

在这里插入图片描述
1.文件的类型: - 普通文件 ; d 目录 ; l 软连接 ; c 字符设备(键盘,鼠标);b 块文件,键盘
2. 文件所有者的权限 rw
3. 文件所在组的用户的权限r–,只读
4. 其他组的用户的权限r–,只读
5. 如果是文件代表硬链接的个数;如果是目录则表示该目录的子目录个数
6. 文件的大小,如果是目录就是4096
7. 文件最后的修改时间

r=4 w=2 x=1(r+w+x=7)的解析
作用于文件
r:代表可读
w:代表可写,但不代表可以删除该文件,要删除一个文件的前提条件时对该文件所在的目录有写权限,才能删除文件
x:代表可执行

作用目录上
r:代表可读,可ls查看
w:代表可写,可以修改,目录内创建,删除,重命名目录
x:代表可执行,可以进入该目录

chmod         #修改文件或者目录的权限`
chmod u=rwx,g=rx,o=rw abc      #修改所有者权限为rwx,所在组权限为rx,其他权限为rw
chmod 751       #与上一条同等意义
chmod u-x,g+w abc      #给所有者减少一个执行权限,给所在组增加一个写的权限
chmod a+r      #给文件的所有用户增加读的权限
chown        #修改文件所有者
chown 所有者 文件名           #修改文件所有者
chown -R 所有者 目录名/      #把该目录下所有的文件所有者都改掉
chgrp     #改变文件的所在组
chown 所在组 文件名           #修改文件所在组
chown -R 所在组 文件名    #把该目录下所有的文件所在组都改掉

例题:
组与用户的关系
police : jack,rose
bandit: xh,xm

  1. 创建组
groupadd police
groupadd bandit
  1. 创建用户

     useradd -g police jack
     useradd -g police rose
     useradd -g bandit xh
     useradd -g bandit xm
    
  2. 设置密码

    passwd jack
    passwd rose
    passwd xh
    passwd xm
    
  3. 在jack中新建一个文件jack1.txt

vim jack1.txt
-----
  1. 修改权限-自己可以读写,本组人可以读,其他人无权限
chmod 640 jack1.txt
  1. 其他人可以读,本组人可以读和写
chmod o=r,g=rw jack1.txt
  1. 修改xh到police组中
usermod -g police xh
  1. 修改jack的权限,让其所在组的权限为rx(使在police组的人可以打开这个文件夹并查看)
chmod g=rx jack/

这时候需要重启xh的客户端,xh才能访问jack的文件

  1. 任务调度
    如果是简单的任务,不用写脚本,直接用crontab加入任务即可。对于复杂的任务使用shell脚本。
#在每一分钟,把ect/下面的内容输入到tem文加夹下的to.txt文件中
crontab -e         #开始编辑
i
*/1 * * * * ls /etc >> /tem/to.txt     #第一个*代表一小时的第几分钟,第二个代表一天的第几个小时,第三个代表一个月的第几天,第四个代表一年中的第几个月,第五个代表一周中的第几天。

其他参数:
,: 代表不连续的时间,例如:"0 8,12,16 * * * “就代表每天在8点、12点、16点整执行依次任务
-: 代表一个连续的时间段,例如:“0 5 * * 1-6” 代表在周一到周六的凌晨5点执行命令
*/n: 代表每个多久执行一次,例如:” */10 * * * * " 代表每隔10分钟执行一遍命令

45 22 * * *        #在22:45分执行命令
0 0 1,15 * 1        #在每月的1号和15号执行,每周一执行命令。一般来说星期和几号不要同时出现,容易混乱。

例题:

  1. 每隔一分钟,将当前的日期和日历信息,追加到/tmp/mydate文件中
vim /home/mytask.sh       #编写一个shell脚本
date >> /tem/mydate          #mytask.sh中的内容,日期内容
cal >> /tem/mydate          #mytask.sh中的内容,日历内容
chmod u+x  mytask.sh       #给mytask.sh一个可执行权限
crontab -e
*/1 * * * *  /home/mytask.sh           #crontab中的内容
  1. 每天凌晨两点把MySQL数据库testdb,备份到文件中mydb.bak
vim /home/mytask2.sh
/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak    #mytask1.sh中的内容
chmod 744  mytask1.sh       #给mytask.sh一个可执行权限
crontab -e
0 2 * * *  /home/mytask1.sh           #crontab中的内容
crontab -r     #终止当前的任务
crontab -i       #列出当前的任务
service crond restart    #重启当前的任务调度
  1. 磁盘分区、挂载
    1. mbr分区
    Linux的分区示意图
    在这里插入图片描述
    硬盘在Linux上的标识在这里插入图片描述
lsblk -f      #查看系统的分区和挂载(老师不离开),不加-f就可以看到分区的大小

给虚拟机增加一块硬盘挂载到/home目录下的newdisk文件夹上
1.增加虚拟机硬盘,在vm上虚拟机->设置->硬盘->增加->
在这里插入图片描述在这里插入图片描述
2. 分区:
fdisk /dev/sdb在这里插入图片描述在这里插入图片描述
后面一些设置都是默认值即可
在这里插入图片描述
3. 格式化磁盘

mkfs -t ext4 /dev/sdb1
mkfs -t xfs /dev/sdb1

在这里插入图片描述
5. 挂载

mount /dev/sdb1 /home/newdisk

在这里插入图片描述
7. 设置成永久挂载(开机不会重置)

vim /etc/fstab

在这里插入图片描述
写入这样一句话
在这里插入图片描述
保存并退出

mount -a

在这里插入图片描述
取消挂载

umount /dev/sdb1     或者 umount /newdisk

磁盘占用情况

df -lh     #查看磁盘占用情况
du -ach --max-depth=1 /opt

在这里插入图片描述

统计home目录下文件的个数
ls -l /home | grep "^-" | wc -l      #wc统计;^-以-开头的,代表文件,d开头的代表文件夹
统计home目录下目录的个数
ls -l /home | grep "^d" | wc -l      #wc统计;^d以d开头的,代表文件夹
统计home目录下所有文件的个数(包括子目录下的文件)
ls -lR /home | grep "^-" | wc -l      #wc统计;^-以-开头的,代表文件,d开头的代表文件夹
统计home目录下所有目录的个数
ls -lR /home | grep "^d" | wc -l      #wc统计;^d以d开头的,代表文件夹
显示树桩的结构
tree
没有tree就:
yum install tree  #yum基本等同于pip
  1. 网络配置和主机配置
    在这里插入图片描述
    修改网络配置
    在这里插入图片描述
    查看网关
    在这里插入图片描述
    window中查看就是ipconfig

linux网络配置
14. 设置网络的自动连接(一般是默认自动连接的)
这样点进去后,把自动连接勾上就可以在这里插入图片描述
这样设置后每次获取的ip地址都不一样,不适用于服务器
2. 指定固定的ip地址

vi /etc/sysconfig/network-scripts/ifcfg-eth0

在这里插入图片描述
重启网络服务

service network restart

修改主机名

查看主机名
echo $HOSTNAME
修改主机名(好像不可以用)
vim /etc/sysconfig/network

把主机名和ip地址进行联系

vim /etc/hosts
写入:
192.168.108.128 bogon   #192.168.108.128是我的ip地址,bogon是我的主机名
然后bogon和ip地址的作用就是一样的了
ping bogon = ping 192.168.108.128

window这样的操作也是找到hosts这个文件夹来修改,一般地址在这里
在这里插入图片描述

  1. 进程管理
查看系统正在执行的进程 ps -a / -u / -x
ps -aux | more  

在这里插入图片描述

查看固定的进程
ps -aux | grep sshd
查看父进程
ps -ef | more 

终止进程

kill [-9选项] 进程号    #-9代表强制停止
killall 进程名称    #用于一次性删掉多个类似进程
killall gedit      #归属于gedit的所有进程都删掉,一般找到父进程把所有进程一起删掉
强制删掉一个终端
ps -aux | grep bash   #查看终端,查到的/bin/bash目录都为终端
kill -9 4090    #不强制删不掉
使用树桩形式展示进程
pstree
-p 显示进程pid 
-u 显示用户的id

service管理
centOS7之后就不是service了,而是systemctl

防火墙:

firewall-cmd --state #查看默认防火墙状态
systemctl status firewalld   #查看状态
systemctl stop firewalld.service  #关闭防火墙
systemctl disable firewalld.service   #禁止开机自启防火墙

在window中可以测试端口是否打开

telnet ip地址 端口号

查看linux的所有服务

  • 使用setup->系统服务,管理自启
  • ls -l /etc/init.d/中查看

每个服务在各个运行级别上自启或不自启都可以单独设置
了解一下开机的流程和运行级别的关系
在这里插入图片描述

chkconfig --list    #查看服务在各个运行级别下的自启
chkconfig --list | grep sshd
chkconfig --level 5 服务名 on/off      #修改某个服务在5的运行级别下的自启动,不写-level 5就代表关闭全部

监控服务

监控系统进程

top     #运行时间  用户  进程情况 内存情况
k       #杀死进程
M   #按内存使用率来排序
N   #按pid大小来排序
P   #按CPU使用率来排序
q    #退出top
top -d 10#指定系统状态更新时间为10s,默认时间3s

监控网络状态

netstat [选项]
netstat -anp   #查看所有的网络服务
netstat -anp | grep sshd    #监听特定的网络服务
  1. RPM和YUM
    RPM 红帽包管理器
    后缀是.RPM 类似于windows的.exe
rpm -qa | grep xx   #查询已安装的rpm列表
rpm -q 软件包名    #查看软件包是否安装
rpm -qi 软件包名    #查看软件包信息,安装信息
rpm -ql 软件包名     #查看该软件装了什么文件,安装到哪些文件中
rpm -qf 文件全路径名    #查询文件所属的软件包
rpm -e rpm包的名称  #卸载rpm包
rpm -e --nodeps 软件包名   #强制删除
rpm -ivh 安装包名    #在安装的光驱中的/package/下找到需要的rpm包,把需要的粘到/opt/文件夹下面

YUM
可以自动的从服务器上下载RPM软件包并安装,并且可以自动处理软件中的依赖关系。
即使是查询,也需要联网才可以使用

yum list | grep xx   #查看yum服务器中是否有某软件(注意没有-)
yum install 软件名  #安装

面试题:

  • linux的常用高级命令:

netstat
top
find
ps
chkconfig
lsblk

  • Linux查看内存、磁盘储存、io读写、端口占用、进程等命令
    内存:top
    磁盘读写:df -lh
    io读写:iotop
    端口占用: netstat -tunlp
    进程:ps -aux | grep 进程名

----------------END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值