Linux常用指令学习笔记

主要内容

  • 关机:shutdown -h now(正常关机),halt(关闭内存),init 0
  • vmware备份操作系统:频繁备份使用快照,长期才备份一次的使用克隆(克隆时系统必须处于关闭状态)

主要文件

  • bin:二进制文件
  • dev:外接设备,需要挂载(手动分配盘符)
  • etc:配置文件
  • home:除了root用户以外的用户的家目录
  • proc:process,Linux运行的进程
  • root:root用户的家目录
  • sbin:super binary 也是二进制文件,但必须有超级管理员的权限才可以运行
  • tmp:系统运行时产生的临时文件
  • usr:存放用户自己安装的软件
  • var:存放系统日志
  • mnt:外接 设备挂载
    相对路径:相对当前的工作路径
    ./ 从当前目录,这个符号可以省略
    . ./从上一级目录下
    绝对路径:从根“/”开始

########################基础指令################################

  • ls(list)
  • 蓝色表示文件夹
  • 黑色表示文件
  • 绿色表示其拥有所有权限(以上颜色是centos某版本,颜色根据linux的版本不同会不一样)
  • ls -l 以详细列表的形式展示
  • ls -a显示包含隐藏文件的列表
  • ls -lh 以列表并且可读性高

  • pwd(print working directtory) 打印当前工作目录

  • cd (change directory) 切换目录

  • ~ 表示当前用户的家目录

  • mkdir (make directory) 创建目录
  • mkdir -p 多层创建目录
  • mkdir 路径1 路径2 路径3 同时创建多个文件夹

  • touch 创建文件

  • cp 被复制的文件的路径 目标路径
  • cp -r 被复制路径 目标路径 递归复制,针对复制文件夹

  • mv (move)移动
  • mv 原位置 新位置

  • rm 移除
  • rm -f
  • (force) 无须确认操作,强制删除
  • rm -r 递归删除
  • rm -rf
    可以同时删除多个文档,中间用空格隔开
    用*来表示任意字符或者字符串

  • vim 文本编辑器
  • vim 文件的路径
    上面的文件路径中的文件名可以不存在
    :q 退出打开的文件

  • 输出重定向
    >覆盖输出
    >> 追加输出
    将终端输出的内容 输出至文件中

  • cat 直接打开一个文件,在终端查看
  • cat 合并文件1 合并文件2 … >合并之后的文件路径
    合并之后原文件还在

########################进阶指令################################

  • df 查看磁盘空间
  • df -h 以可读性查看磁盘空间

  • free 查看内存使用情况
  • free -m 以单位Mb查看
  • free -g 以单位Gb查看

  • head 查看一个文件的前n行 n默认10
  • head -n 文件名
  • tail 查看一个文件的末尾n行,n默认10
  • tail -n 文件名
  • tail -f 文件名 查看文件内容中追加的内容
  • tail一般用于查看系统日志
  • q键退出

  • less 以较少的内容查看,按下辅助功能键查看更多
  • 空格键可以翻页

  • wc 统计文件信息
  • 包括行数和单词数、字节数
  • wc -lwc
  • -l 行数
  • -w 单词数
  • -c 字节数

  • date (重点)
    查看系统当前时间
  • date +%F
    以类似“2020-01-01”格式输出时间
  • date “+%F %T”
    2020-01-01 12:30:30

date “-1 day” “+%F %T” 一天前的时间


  • cal 输出日历
  • cal -y 年份 输出第几年的日历

  • clear/ctrl+L 清屏

  • | 管道
    一般用于“过滤”、“扩展处理”
    管道不能单独使用,必须要配合其他指令

例如: ls /|grep y 输出根目录下面包含y的内容 grep 过滤
以管道为分界线,前面的内容为过滤源

ls /|wc -l 根目录下的内容个数

########################高级指令################################

  • hostname 操作服务器的主机名
  • hostname -f 输出当前主机名的FQDN(全限定域名)

  • id 查看一个用户的基本信息,不指定则默认当前用户
  • whoami 一般用于shell脚本,获取用户名

  • ps -ef
    ps 用于查看服务器进程
    -e 等价于-A,表示列出全部的进程
    -f 显示全部的列(显示全字段)
    如果一个进程的父级进程找不到,该进程为僵尸进程
  1. uid 该进程的用户id
  2. pid 进程id
  3. ppid 该进程的父级id
  4. c cpu占用率
  5. stime 进行的启动时间
  6. tty 终端设备,发起该进程的设备识别符号,如果显示“?”,表示该进程并不是由终端设备发起
  7. time 进程执行的时间
  8. cmd 该进程的名称或者对应的路径

  • top 查看服务器资源进程,内存、cpu占用等等
    q键退出
    M 将结果按照内存排序
    P 将结果按照cpu排序
    l 查看每个cpu的状态

  • du -sh 作用:查看目录的真实大小
    -s summeries,显示汇总的大小
    -h 以可读性较高的形式显示

  • find 用于查找文件
    #find 路径范围 选项 选项的值
    -name 按照文档名称进行搜索
    -type 按照文档的类型进行搜索
    -表示文件(在使用find时用f替换)
    d表示文件夹

搜索httpd.conf
#find / -name httpd.conf

在/etc目录下搜索.conf后缀的文件
#find /etc -name *.conf

搜索/etc下面的所有文件
#find /etc -type f


  • service 用于控制一些软件服务的启动、停止、重启
    service 服务名 start/stop/restart

ps -ef|grep httpd 查看httpd进程


  • kill 杀死进程
    kill 进程pid
    killall 进程名称

  • ifconfig 获取网卡信息

  • reboot 重新启动计算机
  • reboot -w 模拟重启(写关机日志)

  • shutdown 关机 (慎用)

  • shut down -h now

  • init 0

  • halt

  • poweroff


  • uptime 输出计算机的运行时间

  • uname 获取计算机操作系统的信息
  • uname -a

  • netstat -t 列出tcp协议的连接
  • netstat -n 可读性较高
  • netstat -l 列出正在监听的连接
  • netstat -p 显示发出连接的进程pid和进程名称

  • man 其实是manual,q退出,菜单
    man加上想要查询的指令,可以查询这个指令的相关用法

########################练习################################

  • ctrl+u快速删除一整行指令
  • 快速删除/temp下所有的A开头的目录
    rm -f /temp/A*
  • 备份
    cp /etc/passwd /tmp
  • 查看系统最后创建的三个用户
    tail -3 /etc/passwd
  • 统计当前系统中的一共多少用户
    wc -l /etc/passwd
  • 如何创建/temp/test.conf文件
    touch /temp/test.conf
  • 如何通过vim编辑打开/tmp/test.conf vim /temp/test.conf
  • 如何查看头三行和尾三行
    head -3 /etc/passwd #tail -3 /etc/passwd
  • 如何一次性创建目录/text/1/2/3/4
    mkdir -p /text/1/2/3/4
  • 查看磁盘空间
    du -sh /etc
  • 删除/tmp 所有文件
    rm -rf /tmp/*
  • 启动Apache服务,并检查是否成功 service httpd start
    ps -ef|grep httpd
  • 杀死Apache进程
    killall httpd或者查看pid之后使用pid

########################vim################################

  • 命令,编辑,末行

  • vim在末行模式的配置都是临时的,个人配置文件在~/.vimrc中(如果没有新建该文件,例如新建好之后,需要设置显示行号,编辑set nu保存即可),全局配置文件文件/etc/vimrc中。

  • vim 文件路径
  • vim +数字 文件路径 定位行数打开
  • vim +/关键词 文件路径 高亮打开
  • vim 文件路径1 文件路径2 文件路径3
    :files 查看打开了哪些文件 %a表示正打开的文件,#表示上一个打开的文件
    :open 文件名 打开指定文件
    :bn 切换到下一个文件 back next
    :bp 切换到上一个文件 back prev

在命令模式下

  1. 光标移动:
  • 光标移动到行首
    ^
  • 光标移动到行尾
    $
  • 光标移动到首行
    gg
  • 光标移动到末行
    G
  • 翻屏
    向上:Ctrl+b(before)或者 pageup
    向下:ctrl+f(After)或者 pagedown
  1. 复制
  • y键是复制光标选中的位置的内容,所以光标闪烁时为复制单个字符,进入下面的可视化复制时,y键复制的是光标选中的所有内容

  • 复制光标所在行
    yy

  • 粘贴 p

  • 以光标所在行为准(包含当前行),向下复制指定的行数
    数字yy(例如: 3yy)

  • 可视化复制
    Ctrl+v

  1. 剪切、删除
  • 剪切、删除光标所在行
    dd

  • 剪切、删除向下的指定行(包含当前行)
    数字dd(删除之后下一行上移)

  • 剪切、删除之后下一行不上移
    D(删除之后当前行变为空白行)

  • 撤销、恢复
    u(undo)
    恢复 Ctrl+r 可以取消之前的一次撤销

  1. 光标移动
  • 快速将光标移动到指定的行数
    数字G
  • 以当前光标为准,向上或者向下移动
    数字+↑或者数字+↓
  • 末行模式下,移动到指定的行数
    :数字回车
  1. 模式间的切换
  • 命令模式输入:进入末模式
  • 命令模式输入i、a进入编辑模式

在末行模式下

  • 保存
    :w
  • 另存为
    :w 路径
  • 退出
    :q
  • 保存并退出
    :wq
  • 强制退出,不保存刚才的修改
    :q!
  • 调用外部命令
    :!指令
  • 搜索
    /
  • 在搜索结果中查看上一个和下一个
    N/n (next)
  • 取消高亮
    :nohl (no highlight)
  • 替换
    : s/搜索的关键词/替换内容
    只是替换光标所在行的符合条件的第一处
    : s/搜索的关键词/替换内容/g
    替换光标所在行的符合条件的所有
    : %s/搜索的关键词/替换内容
    替换整个文档中每行第一处符合条件的
    : %s/搜索的关键词/替换内容/g
    替换整个文档中的符合内容

%表示整个文档
g表示相对于目前的所有(global,可能是目前整行,也可能是目前整个文档内容,说白了,加了-g就取消了第一处这个限制)

  • 显示行号
    :set nu
    取消行号
    :set nonu

在编辑模式下

  • i 在光标所在字符前面插入 insert

  • a 后面插入 after

  • esc 退出

  • 代码着色
    :syntax on 开启
    :syntax off 关闭

  • 默认运行级别配置文件/etc/inittab
    init命令执行时回去读取上面这个文件
    里面有0-6七种运行级别
    0表示关机
    3表示完全的多用户模式(纯命令行模式)
    5表示完整的图像化界面模式
    6表示重启。

注意:init指令需要root权限才能执行,上面切换为命令行模式时,是临时切换重启后还是图形界面,所以更改配置文件/etc/inittab中的default修改(修改的时候不能为0或者6),再重启。

########################用户管理################################

  • /etc/passwd 存储用户的关键信息(包含主组信息)
  • /etc/group 存储用户组的关键信息(包含附加组信息)
  • /etc/shadow 存储用户的密码信息

用户管理

添加用户

useradd
-g 指定用户的用户主组
-G 指定用户的附加组
-u uid,用户的id(用户的标识符),系统默认会从500之后按顺序分配uid‘’
如果不想使用系统分配的,也可以通过选项自定义

案例:创建用户zhangsan,在passwd中查看是否添加成功,/home目录下也应该有文件产生

  • passwd文件组成:
    用户名:密码:用户id:用户组id:注释:家目录:解释器shell
    密码位置一般显示为x,表示密码占位符
  • 解释器shell:等待用户输入指令后,该解释器会收集用户输入的指令,传递给内核处理

案例:添加选项,创建用户lisi,让lisi属于501主组,附加组500,自选靓号666
useradd -g 501 -G 500 -u 666 lisi

修改用户

usermod
-g
-G
-u
-l 修改用户名

案例:修改用户主组。修改zhangsan的用户主组为500,附加组为501
usermod -g 500 -G 501 zhangsan

案例:修改zhangsan用户的用户名为wangwu
usermod -l wangwu zhangsan

  • 设置密码
    passwd 用户名

案例:设置wangwu的密码

设置之后在shadow文件中查看
设置成功后可以登录用户

  • 切换用户: su(switch user)
    如果用户名不指定则表示切换为root用户

  • 用户删除
    userdel
    -r 删除用户的同时,删除其家目录

案例:删除wangwu用户

如何删除已经登录的用户?
kill掉用户的进程,所以先查看用户进程:ps -ef|grep wangwu,再kill进程,再userdel

用户组管理

  • /etc/group
    文件结构:
    用户组名:密码:用户组id:组内用户

  • 用户组添加
    groupadd
    -g 自选用户组id(默认从500开始)

  • 用户组修改
    groupmod
    -g 设置用户组id
    -n 设置新的用户组名称

  • 删除用户组
    groupdel

注意:
删除的组是某个用户的主组时,则需要将组内所有用户移除才能删除

########################网络管理################################

  • 网络配置文件
    /etc/sysconig/network-scripts/
    其中的ifcfg-eth0和ifcfg-lo为网卡信息

  • service network restart 网卡重启
    /etc/init.d/network restart 如果没有上面的指令用这条

  • 创建快捷方式(软链接)
    ln -s 原文件位置 快捷方式位置

网卡不可轻易停止

  • 停止某个网卡:#ifdown 网卡名
  • 开启某个网卡:#ifup 网卡名

例如:需要重启eth0网卡,则可以输入
#ifdown eth0
#ifup eth0

########################ssh服务################################

  • ssh(secure shell ,安全外壳协议),该协议有2个常用的作用:远程连接协议、远程文件传输协议
    端口号22 端口范围0-65535
    ssh服务配置文件位置:/etc/ssh/ssh_config

  • 服务启动停止重启
    #service sshd start/stop/retart
    #/etc/init.d/sshd start/stop/retart

  • 远程终端
    常用终端:Xshell、secureCRT、Putty
    通过ip地址和端口号使用远程终端连接

  • ssh文件传输
    ①可视化的界面传输工具:Filezilla
    新建站点,登陆类型正常
    ②通过命令行工具传输文件PSCP.exe,必须通过命令行打开
    为了使用方便,将其放入环境变量中,可以直接放到C:/windows下

  • pscp格式

  1. pscp 选项 用户名@linux 主机地址:资源路径 windows本地地址 (说明这是下载格式)
  2. pscp 选项 资源路径 用户名@linux主机地址:远程路径 (上传至Linux服务器)
    pscp 选项 -ls 用户名@linux主机地址(列出远程目录下结构)

pscp -r [email protected]:/etc E:/

  • linux中的scp可以用于Linux相互上传

你可能感兴趣的:(linux,后端,服务器,centos,ubuntu)