linux 命令学习基础知识,学完可以对linux 常用命令进行叫清晰的了解,可以对文本操作,系统网络配置,磁盘分区,系统运行状况分析,简单shell脚本进行编写。

一、文本编辑

linux文本编辑主要分为3种模式,即一般模式、编辑模式、命令模式。

一般模式:打开一个文件,可以对文件进行增删改查,但是不能对文件进行编辑。

编辑模式:就是可以直观的对文本进行输入,修改。

命令模式:即是对文件进行整体处理,如写入并保存,强制退出,查找等。

下面进行详细描述:
1、一般模式
        复制一行 yy  粘贴 p  复制5行 5yy   粘贴p  删除dd  删除5行 5dd 撤销 u

从一行的任意位置开始复制到该行的最后一个字符  先按下y 然后按shift+$ 即可复制所选文字
        从一行的任意位置开始复制到该行之前的一个字符  先按下y 然后按shift+^ 即可复制所选文字
        复制一个单词,先按下y 再按下w 即可复制当前光标所在的单词 删除一个词 D+W    删除该字符后面所有单词 D+$
        往前删除 按住shift+x 一个一个删除单词
        替换单个字母,按下r 然后输入要替换的字母。替换整行字母,按下shift+r 即可输入自己需要替换的字母
        gg 跳转到文本第一行  shift+g跳转到文本最后一行 8+gg跳转到第8行
        set nu 给文本设置行号 set nonu 取消行号
        shift+o 在光标所在行前插入字符 o 在当前光标所在行的下一行输入字符

2、编辑模式  i 插入   a 在当前光标前输入 o在当前光标下一行输入
3、命令模式
w 写入 :wq!强制保存并写入  :q!强制退出
 查找 命令模式下输入 / 进入查找状态 输入想要查找内容然后回车 即可查找,按n即是向下继续查找 按shift+n 是向上查找
 替换 :s/需要替换的单词/新的单词  替换当前行的第一个被查找到的单词
     :s/需要替换的单词/新的单词/g   替换当前行的所有被查找到的单词
     :%s/需要替换的单词/新的单词 替换全文所有行第一个被查找到的单词
     :%s/需要替换的单词/新的单词 /g 替换全文

二、网络

1、linux获取本机ip地址 ifconfig |grep “inet”

三、常用命令

man  命令 查看帮助

help 命令

命令 --help

1、文件类命令

pwd   打印当前目录
    cd    切换目录   cd ../目录 相对路径 cd - 返回到刚才的目录 cd 回到主目录

ls    -a 显示所有的文件 ls -l 以列表方式展示所有文件 ls -al 以列表方式显示所有文件
    mkdir a 创建a文件夹 mkdir -p b/c/d 如果父目录没有则创建所有目录
    rmdir 删除文件  rmdir -p b/c/d 如果删除完子目录,父目录为空,则父目录也跟着删除
    touch 新建空白文件
    rm 删除文件 rm -rf 强制删除文件目录
    cp 复制文件 cp 原文件 需要被复制的目录 
    mv 移动文件 重命名文件 mv a文件 b文件 表示将a文件移动并完成覆盖b文件

2、查看文件

cat 查看整个文本
    more 以分页的方式来查看文件 b往回看 table键下一页  q 退出
    less 以分页的方式来查看文件 空白键往下翻一页 /查看 n往下看 N往上看 shift+G 最后一行
    echo 输出一个字符到控制台 -e 可以输出转义字符
    > 将指令输出内容覆盖到文件中
    >> 将指令输出内容追加到文件末尾 echo “” >> 文件 将内容追加到文件末尾
    head -n 数字 文件名  文件最开始的几行
    tail -n 数字 文件名 文件最末尾的几行 tail -f 文件名  ctrl +s 暂停 ctrl+q 释放暂停 ctrl+c 退出
    tail -10f 文件名 则代表展示文件末尾10行,并持续跟踪文件输入
    ln -s 原文件或目录 软链接名   pwd -P 抛开软连接都影响,显示文件的实际路径
    history 用来查看之前已经执行过的命令

3、时间日期类

date +%Y 四位年 +%y 两位年 +%m +%d +%H +%M +%S
   cal  日历

4、用户管理类命令
   useradd 用户名称 useradd -g 组名 用户名称 useradd -g baiao baniao001 代表给用户组baniao新增一个叫baniao001的用户
   passwd 用户名称 密码 给用户设置密码
   id 用户名称 查看该用户是否存在
   cat /etc/passwd 查看当前系统创建了哪些用户
   su   用户名称  在控制台切换用户
   who am i 查看当前用户 who 查看当前服务器登陆的用户明细
   sudo   vim /etc/sudoers 如果需要使用该命令,则需要授权的用户追加到root后面
   userdel 用户名 删除一个用户 user -r 用户名 将用户以及用户主目录都删除
   usermod -g 组名 用户名 给用户加到一个组里面

5、用户组管理命令
   groupadd 组名 新建一个组 vim /etc/group 查看当前有哪些组
   groupmod -n 新组名 要修改的组名 
   groupdel 组名 删除这个组

6、文件权限类命令
   
   drwxr-xr-x  d文件属性 r可读 w可写 x可执行 1-3位代表属主权限,4-6位代表属组权限 7-9位代表其他用户权限

可写不代表可以被删除,如果要删除需要拥有当前文件所在目录的可执行权限,即x

chmod ugoa +-= rwx 文件名 比如 chmod u+x aa 表示给文件aa的属主用户增加可执行权限
   r=4 w=2 x=1 chmod 777 aa 代表给该文件所有用户所有权限
   chmod -r 777 目录 给该目录下所有文件都设置为所有权限
   chown 改变文件所有者  chown 用户名 文件名   chown -r 用户名 文件目录 递归的给该目录下所有文件属主改为用户名
   chgrp 修改文件所属组  chgrp 组名  文件名 
7、搜索查找类
   find 查找范围  查找内容  find /root -name  aa.txt   -name 以名称来查找 -user 以用户来查找 -size 以大小来查找
   locate 找到数据库中的文件 必须先要更新数据库 updatedb
   which 找到命令的地址 which ls
   whereis 查找命令的地址

grep -n 关键字 查找范围
   | 管道符   wc 查出来的结果展示的是行数 单词数 字节数

8、压缩和解压缩
   gzip 文件名  gunzip 解压压缩包

zip  文件名  zip -r 新的压缩包的名字 要压缩的目录
   unzip   压缩包  解压缩 unzip -d  解压缩新目录 解压缩文件
   tar -zcvf 文件名.tar.gz 需要打包的文件
   tar -zxvf 解压缩的包 -C 解压的目录
   tree 显示该目录的层级结构
9、磁盘查看和分区类
   du 磁盘占用情况 du 文件或目录  du -sh 当前目录总大小
   df 查看当前磁盘剩余大小 df -h
   free 查看当前内存的情况 free -h
   lsblk 查看当前块使用情况 
   mount umount 挂载 卸载
   fdisk分区 fdisk -l 查看分区情况

分区操作步骤
   1)第一步 在linux系统上面新增硬盘,即在/dev目录下面新增新的磁盘
   2)fdisk /dev/新硬盘名称 对新增硬盘进行分区 m查看操作项目 n新增磁盘选项 
   3)对分区进行格式化 mkfs -t xfs /dev/新硬盘 执行新硬盘的文件系统对其进行格式化
   4)挂载 mount /dev/新硬盘 挂载目录 完成挂载
   5)lsblk -f 查看硬盘信息
10、系统进程
    ps aux  以用户友好的风格列出既有终端又没有终端的进程。  系统cpu占用率和内存占用率
    ps -e  列出所有进程
    ps -u 列出某个用户关联的进程
    ps -f 列出某种格式的进程
    ps -ef 按照某中格式列出所有进程  查看父子进程关系
    ps -ef | grep sshd 单独查看某个进程信息
    kill -9 进程号(PID) 杀死进程
    killall 杀死所有进程

pstree   查看进程树 ps -p 查看pid -u 进程的所属用户

top 实时监控系统进程状态  -p 通过进程pid监视某个进程 -i 不显示闲置的进程 -d 刷新的秒数
    netstat -anp |grep 进程号 查看该进程网络信息
    netstat -nlp |grep 端口号 查看网络端口号占用情况
11、系统定时任务
    crontab -e 编辑定时任务 -l 查询定时任务 -r 删除当前用户所有的定时任务

四、软件包管理

1、RPM 
   rpm -qa  查询所安装的软件包
   rpm -e  软件包名  卸载软件
   rpm -e --nodeps 
卸载软件,不检查依赖   rpm -ivh 软件包名 安装软件包
2、YUM 仓库配置
   yum -y install 安装 
          update  更新
          check-update 检查是否有可用的更新rpm软件包
          remove  删除指定的rpm软件包
          list    显示软件包信息
          clean   清理yum过期的缓存
          deplist 显示yum软件包的所有依赖关系
3、克隆虚拟机
 通过安装的虚拟机进行克隆 
   vim /etc/sysconfig/network-scripts/ifcfg-ens33   修改ip地址 修改完成之后需要systemctl restart networkManager 网络服务重启生效

hostnamectl set-hostname 修改的名称 修改当前主机hostname

五、shell 编程

执行shell脚本的方式 
1、sh 需要执行的脚本
2、给脚本赋予执行权限 通过文件直接执行 
3、source 需要执行的脚本 
4、. 需要执行的脚本

变量 全局变量  局部变量
系统定义变量 $HOME 
自定义变量   由自己定义的变量
unset 变量 删除参数值
特殊变量
参数变量 $1 $2 ${10} 定义参数
$0 输出脚本的名称
$* 输出所有的变量,把变量当成一个整体 在for循环里面如果没有用“”起来的话,可以根据参数个数依次循环,如果用“”引起来的话,那就是一个整体

$@ 输出所有的变量,输出的是变量数组 在for循环里面是无论是否用“”引起来,都是根据参数个数依次循环

$? shell脚本最后一行输出的结果返回值,正常返回的是0

运算符
$((运算式)) $[运算式]
expr 1 + 2 运算表达式 expr 5 \* 2  a=$(expr 5 \* 2 ) a=`expr 5 \* 4`

条件判断
test 条件表达式 
[ 表达式 ] 表达式前后要有空格 表达式中= 前后必须要有空格
不等于是 != 
1)两个整数之间的比较
-eq 等于 -ne 不等于 -lt小于 -gt 大于 -le小于等于 -ge大于等于
2)按照权限进行判断
[ -r 文件 ] 判断文件是否具有可读权限
3)按照文件类型进行判断
-e 文件存在 -f 文件存在并且是一个常规的文件 -d 文件存在并且是一个目录
[ -e 文件目录 ] [ -f 文件名 ] 
4)多条件判断
&& 并且 || 或者
5)[ -z $变量名 ] 判断该变量是否有值

流程控制
单条件判断                                  
                                         if [ 条件表达式 ]
if [ 条件判断式 ]; then      或者          then
程序                                           程序
fi                                       fi

如果在条件表达式里面需要多条件表达式,需要在[]里面的两个表达式之间增加 -a 表示and -o 表示或者

多条件判断

if  [ 条件表达式 ]
then 
    程序1
else
    程序2
fi

if [ 条件表达式 ] 
then
    程序1
elif [ 条件表达式 ]
then
    程序2
else
    程序3
fi

条件表达式中括号和条件表达式之间要有空格 if 后面必须要有空格

case语句
case $变量名 in
“值1”)
     如果变量的值等于值1,则执行程序1
;;
"值2"
     如果变量的值等于值2,则执行程序2
;;
*)
     如果变量的值都不是以上的值,则执行此程序
;;
esac

for循环
1、基本语法1
for (( 初始值;循环控制条件;变量变化 ))
do
   程序
done

2、基本语法

for 变量名 in 值1 值2 值3
do 
  程序
done

for i in {1..100}; do sum=$[$sum+$i]; done; echo $sum  增强for循环

while循环

while [ 条件表达式 ]
do
  程序
done

let 语法 可以更自然的表达人们熟悉的语法。 let  sum+=a let a++

read读取控制台输入
read 选项 参数 read -p 指定读取值时的提示符 -t 指定读取值时的等待的时间

read -t 10 -p “请输入” 变量名 表示在控制台等待10秒,让用户输入

函数
1、系统函数  调用的方式是通过$(),将系统函数放进去进行调用
   basename  basename 文件路径 后缀(suffix)  得到的就是单独的文件名
   dirname   dirname 文件路径 得到的是文件的路径

2、自定义函数
   [function] funname[()]
   {
         Action;
         [return int;]
   }
综合应用案例

正则表达式

cat /etc/group |grep 1000:

^a 以a开头的
$  bash$ 以bash为结尾
^a$ 查找空行
.. 通配符 字符之间有两个字符 比如 grep r..t 表示查找的是在r和t之间出现2个字符的行
*  通配符 某一个字符出现任意次 比如 ro*t 表示 查找r和t之间出现任意多次o的字符的行
.* 表示任意一个字符 ^a.*bash$ 表示以a开头和以bash结尾,中间为任意字符的行
[] 表示字符区间 
[6,8] 匹配6或者8
[0-9] 匹配一个0-9的数字
[0-9]* 匹配任意长度的数字字符串
[a-z] 匹配一个a-z之间的字符
[a-z]* 匹配任意长度的字母字符串
[a-c,e-f]匹配a-c或者e-f之间的任意字符
\  转义 比如\$

文本处理工具
cut 选项参数 filename -f 列号 提出第几列 -d 分隔符 -c 按字符进行切割
cut -d ":" -f 1,6,7  文件名 以:分割的第1、6、7列  6-代表后面的列都截取出来 -6 代表将第6列之前的都截取出来
awk -F 指定输入文件分割符 -v 赋值一个用户定义变量

linux 命令学习大全,初学者必备相关推荐

  1. 《Linux命令行大全》学习笔记1——学习 Shell

    文章目录 前言 一.什么是Shell 二.导航 三.探索 Linux 系统 ls file less 四.操作文件和目录 通配符 mkdir cp mv rm ln 五.和命令打交道 六.重定向 标准 ...

  2. 《Linux命令行大全》重点笔记——第一部分 学习shell

    <Linux命令行大全>重点笔记 第一部分 学习shell 第一章 shell是什么 1.3 简单命令 1.date:系统时间.日期. 2.cal:当月日历. 3.df:磁盘可用空间. 4 ...

  3. Linux命令学习法

    转载自 https://www.cnblogs.com/rocedu/p/4902411.html 别出心裁的Linux命令学习法 操作系统操作系统为你完成所有"硬件相关.应用无关" ...

  4. 《Linux 命令行大全》. pdf 正式发布啦!

    今天跟大家推荐个 Linux 命令行教程:<The Linux Command Line>,中文译名:<Linux 命令行大全>. 该书作者出自自美国一名开发者,兼知名 Lin ...

  5. 后端开发必知必学的 Linux 命令行大全

    今天跟大家推荐个 Linux 命令行教程:<The Linux Command Line>,中文译名:<Linux 命令行大全>. 该书作者出自自美国一名开发者,兼知名 Lin ...

  6. 《Linux命令学习手册》系列分享专栏

    <Linux命令学习手册>系列分享专栏 <Linux命令学习手册>已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/20 ...

  7. 硬盘mdr转换成gdp linux,Linux 命令学习神器!命令看不懂直接给你解释!

    原标题:Linux 命令学习神器!命令看不懂直接给你解释! 转自: 良许Linux 大家都知道,Linux 系统有非常多的命令,而且每个命令又有非常多的用法,想要全部记住所有命令的所有用法,恐怕是一件 ...

  8. linux命令行大全 笔记,《Linux命令行大全》读书笔记

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? shell就是一个程序,它接受从键盘输入的命令,然后把命令传递给操作系统执行.当使用图像用户界面时,我们需要一个叫做终端 ...

  9. 《Linux命令行大全》:1-6:重定向和管道(很精彩)

    <Linux命令行大全>:1-6:重定向和管道(很精彩) https://www.toutiao.com/i6937081007581430303/?tt_from=weixin& ...

最新文章

  1. [JavaScript]只需一行代码,轻松搞定快捷留言-V2升级版
  2. 网络工程原理与实践教程实验安排
  3. 重磅:苹果人工智能最完整解密,iBrain早已无处不在
  4. linux下软件包管理-源码包-二进制包
  5. python变量运算符_Python(三) 变量与运算符
  6. jQuery easyUI--accordion折叠面板
  7. 关于谷歌地图无法获取到WebGL上下文问题
  8. int函数在Oracle,vb中int是什么意思 ?
  9. 盘点key value在各个编程语言中的类型
  10. java上机题四取三排列_java语言特性概述
  11. C++中若类中没有默认构造函数,如何使用对象数组
  12. K8s 集群搭建过程中遇到的问题的解决方法
  13. Md5 Loader Demo
  14. NetCat瑞士军刀渗透工具使用详解
  15. 基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测
  16. 设置windows自动登录
  17. android5.0电话录音,用Xpose完美实现电话录音,支持android 8.1.0
  18. [linux] grep -rn 当前目录搜索字符串
  19. oracle中分组和排序,oracle中分组排序函数用法
  20. JavaFX应用程序图标

热门文章

  1. 几个功能非常强大的学术翻译网站
  2. 坚果云-在新电脑上同步移动硬盘的文件
  3. 【MATLAB】在MATLAB中利用GUI编写加法计算器,要求:通过两个编辑文本框实现两个数字的输入,点击“开始计算”按钮进行计算,并在用于结果显示的静态文本框中实现两输入数字的和的显示
  4. mn数组计算java陆地和海洋01,2008年高三地理一轮复习精讲精练四—陆地和海洋
  5. 读取excel中数据时,数字格式发生改变
  6. ES6中Generator函数
  7. 彻底解决 Ubuntu 10.04 对部分声卡不支持或耳机无声的问题
  8. GeoTools学习参考文章
  9. 【Java中方法的使用】
  10. ERR_UNSAFE_PORT浏览器安全问题无法访问的解决方案