Linux:入门基础 常用命令 面试必学

2020/10/08 12:25
阅读数 14

操作系统

  • Windows 10

操作系统的分类

  • 桌面操作系统
  • 服务器操作系统
  • 嵌入式操作系统
  • 移动设备操作系统

桌面操作系统

  • Window 系列
  • macOS
  • Linux

服务器操作系统

  • Linux
  • Windows Server

嵌入式操作系统

  • Linux

Linux分类

  • 商业版 Redhat
  • 稳定版 6.4 6.6 6.8 7.0(偶数)
  • 开发板 6.5 5.7 6.9 (奇数)
  • 免费版 CentOS
  • 稳定版6.4 6.6 6.8 7.0
  • 开发板 6.5 5.7 6.9

界面最好的

  • Ubuntu

国内的

  • 红旗
  • 中标麒麟

Linux 系统需要记住的目录

  • /etc: 系统配置,启动程序
  • /home:普通用户的家,目录默认数据存放目录
  • /mnt:临时挂载储存设备的挂载点,u盘插入光驱无法使用,需要挂载然后使用
  • /opt:额外的应用软件包
  • /root:Linux超级权限用户root的家目录
  • /tmp:临时文件目录,这个目录被当作回收站使用

文件夹的增删改查

  • 添加:mkdir 文件夹名
    mkdir –p 文件夹名
  • 删除:rm –rf 文件夹路径
  • 修改:mv 要修改的文件夹路径(名) 修改后的文件夹路径 (名)
  • 查询:ll [-a]
    ls [-a] [-l]
  • 复制:cp [-a/-r] 原文件夹 目标文件夹

文件的增删改查

  • 添加:touch 空文本
    echo ‘内容’ > 或 >> 文本

  • 删除:rm –rf 文件路径(名)

  • 修改:mv 修改前文件路径(名) 修改后文件路径(名)

  • 查询:ll [-a]
    ls [-a] [-l]

  • 查看内容
    前10行:head 文件名
    head -10 文件名
    后10行:tail -10 文件名
    后n行:tail -n 文件名



  • 查看所有
    cat 文件名

  • 数据过滤
    grep [参数] 关键字 文件名

  • 编辑:vi 或者 vim

其他

  • 当前所在的目录:pwd
  • 清空屏幕:clear
  • 软连接:ln -s 目标文件绝对路径 快捷方式路径
  • 帮助文档:命令+ --help
  • &&:前面的命令执行成功再执行后面的。
  • ||:前面的命令执行失败再执行后面的。

Vi编辑器的常用命令

VI编辑器的三种模式

  • 命令模式
  • 编辑模式
  • 末行模式

末行模式

  • 保存并退出 :wq 或者 x!
  • 不保存强制退出 :q!

行内移动

  • 以单词为单位向后移动 w
  • 以单词为单位向前移动 b
  • 光标移动到行首 0 或者 ^
  • 光标移动到行尾 $

行数移动

  • 移动到首行 gg
  • 移动到尾行 G
  • 定位到某一行 数字gg 或者 数字G 或者 :数字

段落

  • 以段落为单位后移 }
  • 以段落为单位前移 {

撤销

  • 撤销命令 u
  • 取消撤销/恢复撤销 Ctrl+r

删除文本

  • 删除多行 数字dd
  • 删除一行 dd
  • 在光标所在的位置删除至行尾 D
  • 在光标所在的位置删除至行首 d0 或者 d^
  • 剪切 x

复制

  • 复制多行 数字yy
  • 复制一行 yy
  • 粘贴 p

替换的命令

  • 替换的是光标所在的位置以及后面的数据 R
  • 只替换光标右侧的第一个字符 r

文件夹内查找

  • 通过文件名指定路径查找 find 路径 -name *.txt
  • 通过文件名在当前路径查找 find -name *.txt

文件内查找

  • /查找的内容
  • 向上查找 N
  • 向下查找 n

文件内替换

  • :%s/旧文本/新文本/g [c]

压缩命令

  • gzip
    压缩文件 tar zcvf 压缩文件名.tar.gz 被压缩的文件/文件夹
    解压压缩文件 tar zxvf 压缩的文件名.tar.gz -C 路径

  • bzip2
    压缩文件 tar jcvf 压缩文件名.tar.bz2 被压缩的文件/文件夹
    解压压缩文件 tar jxvf 压缩的文件名.tar.bz2 -C 路径

关机

  • halt

重启

  • reboot

用户权限

  • drwxr-xr-x. 2 root root 4096 9月 14 23:15 aa (如下解释)

  • d:表示文件夹

  • rwx:当前用户具备的权限

  • r-x:当前用户所属的组具备的权限

  • r-x:其他用户所具备的权限

  • root:文件所属的用户

  • root:文件所属的用户所属的组

  • 4096 :文件大小

  • 9月:文件创建的月份

  • 14 23:15:文件创建的日期

  • aa:文件名

  • 读权限:数字表示4

  • 写权限:数字表示2

  • 执行权限:数字表示1

  • 读写执行能够构成的数字和是1、2、3、4、5、6、7

用户和组的添加

  • 组的操作

    • 添加组 groupadd 组名
    • 删除组 groupdel 组名
    • 查询当前所有的组 cat /etc/group
    • 修改组 chgrp 组名 文件/目录名
  • 用户的操作

    • 添加用户同时指定组 useradd -g 组名 用户名
    • 添加用户 useradd 用户名 【未指定组时,创建一个与用户名相同的组】
    • 删除用户(删除家目录):userdel –r 用户名
    • 查看当前用户 cat /etc/passwd
    • 为用户设置密码 passwd 用户名

用户切换

  • Su 用户名
  • Root用户 切换到普通用户无需密码,普通用户之间切换需要密码
  • 退出用户 exit
  • 普通用户临时借用root权限使用sudo 命令【普通用户已经添加到/etc/sudoers文件中】

修改权限

  • chmod [-R] 777 文件名/文件夹名
  • chmod +/- rwx 文件名|目录名
  • chmod -R u=rwx,g=rwx,o=rwx 文件名|目录名

修改文件所属的组

  • chown -R 新用户:新用户的组 文件名/文件夹名

其他命令

  • 获取当前日期:date
  • 更新当前日期:date -s “yyyy-MM-dd HH:mm:ss”
  • 查看磁盘空间:df -h
  • 查看某一目录所占空间大小:du -h
  • 查看进程详细信息:ps aux
  • 查看cpu内存等使用情况:top
  • 杀死某一进程:kill [-9] 进程号
  • 查看内存使用率:free –h [-m/-g]

Cut

  • 按照字符提取 head -2 1.txt | cut -c 5
  • 指定分隔符 head -2 1.txt | cut -d ‘:’ -f 1,2

Sort

  • 文本排序 sort 文件名
  • 文本排序反转 sort -r 文件名
  • 文本排序去重 sort -u 文件名
  • 数值按大小排序 sort -n 文件名
  • 指定分隔符、指定排序列 sort -t ‘分隔符’ -k2nr 文件名

Wc

  • 查看文件基本信息 wc 文件名
  • 查看文件行数 wc – l 文件名
  • 查看文件单词数 wc -w 文件名
  • 查看文件字节 wc -c 文件名
  • 查看多个文件信息 wc 文件1 文件2 文件3

Uniq

  • 与sort连用
  • 排序、去重 cat 5.txt | sort | uniq
  • 排序、去重计算总数 cat 5.txt | sort | uniq -c

Tee

  • 数据定位到多个文件 cat 5.txt | tee a.txt b.txt c.txt

Tr

  • 小写i 替换成 echo “itheima” | tr ‘i’ ‘I’
  • 把 HELLO 转成 小写 echo “HELLO” |tr ‘[A-Z]’ ‘[a-z]’
  • 删除数字 echo ‘abc1d4e5f’ | tr -d ‘[0-9]’

Split

  • 按照文件大小切分 split -b 10k 被切分的文件
  • 按照行数进行切分 split -l 1000 被切分的文件

Awk

  • 模糊查询 awk ‘/条件/’ 文本名
  • 按照分隔符拆分,根据角标显示

awk -F ‘,’ ‘{print $1, $2, $3}’ 1.txt

  • 按照分隔符拆分,根据角标显示并指定分隔符
    awk -F ‘,’ ’ {OFS="==="}{print $1, $2, $3}’ 1.txt
  • 支持函数
    awk -F ‘,’ '{print toupper($2),$3100}’ 1.txt

If判断语句

  • awk -F ‘,’ ‘{if($4>60) print $1, $4, “及格”; else print $1, $4, “不及格”}’ score.txt

Shell编程

Shell 脚本的解释器

  • /bin/sh
  • /bin/bash
  • /sbin/nologin
  • /bin/dash
  • /bin/tcsh
  • /bin/csh

脚本的编写规范

  • 首行描述解释器 #!/bin/bash

执行脚本的三种方式

  • bash 脚本名称 脚本参数
  • sh 脚本名称 脚本参数
  • /脚本名称 脚本参数【./脚本名称之间没有空格】【chmod 777 脚本名称】

变量的声明

  • 变量名=”值”【中间不能有空格】
  • 变量名要求 字母或下划线或数字(开头不能是数字)构成

变量的引用

  • 使用$ 或 ${}引用变量
  • 删除变量 只读变量
  • 删除 unset 变量名
  • 只读 readonly 变量名

字符串使用

  • 双引号(””):内部可以使用变量
  • 单引号(‘’):内部所有的原样输出
  • 反引号(``):表示可执行

字符串长度及截取

  • 长度: echo ${#skill}
  • 截取: echo ${str:2:2} 【在第二个字符开始截取截取两位】

脚本参数传递

  • bash 脚本名 参数1 参数2 参数3 。。。。。。
  • 脚本内
  • $0 脚本名称
  • $1 参数1
  • $2 参数2
  • $n 参数n
  • $* 所有参数
  • $# 参数的个数

算数运算符

  • 加法计算 expr 2 + 2
  • 乘法计算 expr 2 \* 2

流程控制if

  • if [ $a -gt 10 ];then
    代码1
    elif [ $a -lt 10 ];then
    代码2
    else
    代码3
    fi





关系运算符

  • 大于:-gt
  • 小于:-lt
  • 大于等于:-ge
  • 小于等于 :-le
  • 小于:-eq
  • 不等于 :-ne

循环

  • For 循环:
    For aa in XXXX
    do
    循环体
    done



  • While循环:
    While 条件 ;
    do
    循环体
    done



跳出循环

  • 跳出所有循环:break
  • 跳出当前循环,进入下一次循环:continue

case ()

  • case 值 in
    结果1)
    结果1对应的操作;;
    结果2)
    结果2对应的操作;;
    结果3)
    结果3对应的操作;;
    esac






接收控制台数据

  • read 变量名

函数的使用

  • 函数声明:
    [function] 函数名(){
    函数体
    $参数1
    $参数2
    $参数3
    }





函数调用

  • 函数名 参数1 参数2 参数3

数组

  • 数组声明: 数组名称=(元素1 元素2 元素3 元素4)

数组的使用

  • 单个使用 echo 数组名[角标] 【角标从0开始】
  • 遍历数组
    for var in ${my_arr[*]}
    do
    echo $var
    done



文件加载

  • 在文件中添加 . 脚本名称 或者 source 脚本名称
    #!/bin/bash
  • source ./test1.sh :加载test1.sh 的文件内容
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部