前言
本文特点
授之以渔:了解命令学习方法、用途:不再死记硬背,拒绝漫无目的;
准确无误:所有命令执行通过(环境为centos7),拒绝复制粘贴;
实用性高:命令多为实际工作中用到的,实例讲解,拒绝纯理论;
条理清晰:分类归纳,快速找到想要的命令,拒绝天马行空;
总结性强:只列常用语法,易错情况强调,拒绝照搬照套。
学前须知
适用人群:开发、测试、运维
文档用途:linux入门学习、命令备忘录、面试复习
学习途径:书籍(鸟哥的Linux私房菜)、视频:慕课网等、百度谷歌搜索、qq群等
学习环境:虚拟机VirtualBox+centos7
学习记录:多动手,多联想,多记录,特别是遇到问题时
遇到问题:百度谷歌搜索、系统日志(/var/log/)、qq群
学前理论
linux主要特征 :一切且文件(目录、硬盘等都是文件);硬件都在/dev 目录,如硬盘、U盘为/dev/sd[a-d]; /dev/sr0(/dev/cdrom)是光驱的设备名(df命令查看),为设备文件,代表的是光驱本身,得把这个设备挂载到目录下(一般为/mnt)(文件系统的临时挂载点),才能对设备上的文件进行读写等操作;
不懂的命令 :man 命令(查用法、全称),只记得关键词,可用man -k 关键词;
Linux命令常用结构 :Command [-option] [argument]
Command:即是要运行的命令的本身,说白了就是一个软件(程序);
Option:是选项(可选),选项是控制命令运行状态和行为的(可多个选项一起,如df -hT);
Argument:是参数(可选),是命令要操作对象如文件、路径、数据、目录等;
在指令的第一部分按[tab]键一下为[命令补全],两下为所有命令选择,在非第一部分按[tab]键两下为[文件补全];
linux命令区分大小写;
开关机
sync :把内存中的数据写到磁盘中(关机、重启前都需先执行sync)
shutdown -r now或reboot :立刻重启
shutdown -h now :立刻关机
shutdown -h 20:00 :预定时间关闭系统(晚上8点关机,如果现在超过8点,则明晚8点)
shutdown -h +10 :预定时间关闭系统(10分钟后关机)
shutdown -c :取消按预定时间关闭系统
系统信息
who am i :查看当前使用的终端
who 或 w : 查看所有终端
uname -m :显示机器的处理器架构(如x86_64)
cat /proc/version :查看linux版本信息
uname -r :显示正在使用的内核版本
lsb_release -a :查看系统发行版本(如CentOS7)
rpm -qa | grep kernel-devel :查看kernel-devel版本(安装软件时编译内核用,故需要保持内核版本一致性)
yum install -y "kernel-devel-uname-r == KaTeX parse error: Expected 'EOF', got '\表' at position 3414: …打印,-exec 命令 {} \̲表̲示对查出文件操作,-i表示不区…PATH设置的目录里查找符合条件的文件,并显示路径(查询运行文件所在路径)
whereis java :查看安装的软件的所有的文件路径(whereis 只能用于查找二进制文件、源代码文件和man手册页,一般文件的定位需使用locate命令)
查看文件的内容
cat [-n] 文件名 :显示文件内容,连行号一起显示
less 文件名 :一页一页的显示文件内容(搜索翻页同man命令)
head [-n] 文件名 :显示文件头n行内容,n指定显示多少行
tail [-nf] 文件名:显示文件尾几行内容,n指定显示多少行,f用于实时追踪文件的所有更新,常用于查阅正在改变的日志文件(如tail -f -n 3 a.log 表示开始显示最后3行,并在文件更新时实时追加显示,没有-n默认10行)
sed -n ‘2,$p’ ab :显示第二行到最后一行;
sed -n ‘/搜索的关键词/p’ a.txt :显示包括关键词所在行
cat filename |grep abc -A10 :查看filename中含有abc所在行后10行(A10)、前10行(B10)内容
less a.txt|grep git :显示关键词所在行,管道符”|”它只能处理由前面一个指令传出的正确输出信息,对错误信息信息没有直接处理能力。然后传递给下一个命令,作为标准的输入;
cat /etc/passwd |awk -F ‘:’ ‘{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 1}̲' :显示第一列 文本处理 l…d’ a.txt :删除第四行到最后一行(表示最后一行)(sed可以增删改查文件内容)sed−i′表示最后一行)(sed可以增删改查文件内容) sed -i '表示最后一行)(sed可以增删改查文件内容)sed−i′a 增加的字符串’ a.txt :在最后一行的下一行增加字符串
sed -i ‘s/old/new/g’ a.txt :替换字符串;格式为sed ‘s/要替换的字符串/新的字符串/g’ 修改的文件
vim 文件:编辑查看文件(同vi)
用户与权限
useradd 用户名 :创建用户
userdel -r 用户名 :删除用户:(-r表示把用户的主目录一起删除)
usermod -g 组名 用户名 :修改用户的组
usermod -aG 组名 用户名 :将用户添加到组
groups test :查看test用户所在的组
cat /etc/group |grep test :查看test用户详情:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
passwd [ludf] 用户名 :用户改自己密码,不需要输入用户名,选项-d:指定空口令,-l:禁用某用户,-u解禁某用户,-f:强迫用户下次登录时修改口令
groupadd 组名 :创建用户组
groupdel 用户组 :删除组
groupmod -n 新组名 旧组名 :修改用户组名字
su - 用户名:完整的切换到一个用户环境(相当于登录)(建议用这个)(退出用户:exit)
su 用户名 :切换到用户的身份(环境变量等没变,导致很多命令要加上绝对路径才能执行)
sudo 命令 :以root的身份执行命令(输入用户自己的密码,而su为输入要切换用户的密码,普通用户需设置/etc/sudoers才可用sudo)
磁盘管理
df -h :显示磁盘的空间使用情况 及挂载点
df -h /var/log :(显示log所在分区(挂载点)、目录所在磁盘及可用的磁盘容量)
du -sm /var/log/* | sort -rn : 根据占用磁盘空间大小排序(MB)某目录下文件和目录大小
fdisk -l :查所有分区及总容量,加/dev/sda为查硬盘a的分区)
fdisk /dev/sdb :对硬盘sdb进行分区
mount /dev/sda1 /mnt :硬盘sda1挂载到/mnt目录(mount 装置文件名 挂载点)
mount -t cifs -o username=luolanguo,password=win用户账号密码,vers=3.0 //10.2.1.178/G /mnt/usb :远程linux 共享挂载windows的U盘,G为U盘共享名,需设置U盘共享
mount -o loop /opt/soft/CentOS-7-x86_64-DVD-1708.iso /media/CentOS :挂载iso文件
umount /dev/sda1 :取消挂载(umount 装置文件名或挂载点)
压缩、解压和打包备份
​ 单纯tar仅为打包(多个文件包成一个大文件),加上参数-j(bzip2格式.bz2)、-z(gzip格式.gz)可以备份、压缩(-c)、解压(-x),备份一般比压缩多加参数-p(保留原本文件的权限与属性),-C可以指定解压到特定目录;bzip2、gzip只能对单一文件压缩;
file 文件名 :查文件类型(可看是用哪一种方式压缩的)
tar -zxvf a.tar.gz -C ./test :解压tar.gz到当前目录下的test目录
tar -zcvf /opt/c.tar.gz ./a/ :压缩tar.gz(把当前目录下的a目录及目录下所有文件压缩为 /opt/目录下的c.tar.gz,这样tar -zxvf c.tar.gz解压出来带有目录a)
tar -jxvf a.tar.bz2 :解压tar.bz2(到当前目录)
tar -jcvf c.tar.bz2 ./a/ :压缩tar.bz2(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.tar.gz2)
unzip a.zip :解压zip(到当前目录)
unzip -o mdmtest.war -d /opt/mdm :推荐使用unzip解压war包(-o覆盖原有文件,-d指定文件解压后存储的目录)
zip -r c.zip ./a/ :压缩zip(把当前目录下的a目录及目录下所有文件压缩到当前目录下为c.zip
bzip2 -k file1 : 压缩一个 ‘file1’ 的文件(-k表示保留源文件)(bzip2格式,比gzip好)
bzip2 -d -k file1.bz2 : 解压一个叫做 'file1.bz2’的文件
gzip file1 : 压缩一个叫做 'file1’的文件(gzip格式)(不能保留源文件)
gzip -9 file1 : 最大程度压缩
gzip -d file1.gz : 解压缩一个叫做 'file1’的文件
软件安装
尽量用yum源(apt-get)安装,不行就rpm、deb包安装,能不手动编译的就不要手动编译;
dpkg只能安装已经下载到本地机器上的deb包. apt-get能在线下载并安装deb包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是dpkg工具所不具备的;
rpm 只能安装已经下载到本地机器上的rpm 包. yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的;
yum、rpm安装文件分布在/usr的bin、lib、share不同目录,不用配置PATH,直接用命令,但可用命令卸载更新;
手动编译软件,默认位置为/usr/local下不同子目录下,不用配置PATH直接用命令(手动指定安装路径需要加PATH),使得软件更新和删除变得很麻烦。编译安装的软件没有卸载命令,卸载就是把所有这个软件的文件删除。
二进制(Binaries)包
yum安装
​ 在线下载并安装rpm包,适用于CentOS、Fedora、RedHat及类似系统
yum install epel-releas :安装第三方yum源EPEL(企业版 Linux 附加软件包的简称)
yum repolist enabled :显示可用的源仓库(/etc/yum.repos.d/目录下配置)
yum install yum-fastestmirror :自动选择最快的yum源
yum list installed |grep java :列出已安装的软件(查看已安装的JDK)
yum remove java-1.8.0-openjdk.x86_64 :卸载软件(卸载JDK)
yum list java* :列出已安装和可安装的软件(查看yum库中的JDK包)
yum install [-y] java-1.8.0-openjdk :安装软件JDK(-y自动安装)(推荐这种方式安装)
yum install docker-ce-18.03.1.ce :安装指定版本的软件(已知docker-ce.x86_64 18.03.1.ce-1.el7.centos,则rpm包名为docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm)
yum check-update [kernel] :列出所有可更新的软件(检查更新kernel)
yum update tomcat :更新软件(可所有)
rpm -ql 软件名称 :查询yum安装路径(软件名称可通过rpm -qa|grep java)
yum info kernel :查看软件(kernel)的信息
yum clean all :(清除缓存,使最新的yum配置生效)
rpm包手动下载安装
​ yum中没有时用,适用于CentOS、Fedora、RedHat及类似系统;
wget -P /opt https://网址 :下载到/opt目录
rpm -ivh wps-office-版本.x86_64.rpm :安装rpm包(包要先下载)(要先装依赖包)
rpm -e wps-office :卸载软件(注意不要软件名不要版本号)
rpm -qa |grep wps :查看安装的rpm包
rpm -ql 软件名称 :查看rpm包安装路径(软件名称可通过rpm -qa|grep java)
apt方式安装
​ 安装deb包,类似yum安装,适用于Debian, Ubuntu 以及类似系统;
apt-get install aptitude :安装aptitude工具,实现依赖自动安装,依赖版本自动降级或升级
aptitude install 软件 :安装软件(推荐这种方式安装)
apt-cache search 软件 :搜索软件
apt-get install 软件 :安装软件
apt-get purge 软件 :卸载软件(包括配置文件,只删除软件purge换成remove)
apt-get upgrade :更新所有已安装的软件包
apt-get update :升级列表中的软件包
apt-get clean :从下载的软件包中清理缓存
deb包安装
​ 适用于Debian, Ubuntu 以及类似系统;
dpkg -i package.deb :安装一个 deb 包
dpkg -r package_name :从系统删除一个 deb 包
dpkg -l |grep chrome :查询系统中所有已经安装的 deb 包
dpkg -L 软件名称 :查软件安装的文件
解压即用
​ 大多数非开源的商业软件都采取这种办法;
​ 二进制(Binaries)包如apache-jmeter-3.3.tgz,下载复制解压到/opt,然后然后将该软件的 bin 目录加入到 PATH 中即可(vim /etc/profile export PATH=PATH:/opt/apache−jmeter−3.3/bin);软件自己的模块/包管理器​如python:系统的源中不可能包含该软件的所有模块;系统的源中该软件的模块的更新要远远滞后于最新版本;手动安装python,并用Python自带的pip安装模块(类似yum);pipinstallredis:安装python软件包redispipunstallredis:卸载pipshow−−filesredis:pip查看已安装的包piplist−−outdated:检查更新源代码(Source)包编译安装​源代码包(一般有install文件)如hello−2.2.tar.bz2,下载复制到/opt;tar−jxvfhello−2.2.tar.bz2:解压./configure−−prefix=/opt/软件目录名称:为编译做好准备,加上prefix手动指定安装路径make:编译makeinstall:安装makeclean:删除安装时产生的临时文件vim/etc/profileexportPATH=PATH:/opt/apache-jmeter-3.3/bin); 软件自己的模块/包管理器 ​ 如python:系统的源中不可能包含该软件的所有模块; 系统的源中该软件的模块的更新要远远滞后于最新版本;手动安装python,并用Python 自带的 pip 安装模块(类似yum); pip install redis :安装python软件包redis pip unstall redis :卸载 pip show --files redis :pip查看已安装的包 pip list --outdated :检查更新 源代码(Source)包 编译安装 ​ 源代码包(一般有install文件)如hello-2.2.tar.bz2,下载复制到/opt; tar -jxvf hello-2.2.tar.bz2 :解压 ./configure --prefix=/opt/软件目录名称 :为编译做好准备,加上 prefix 手动指定安装路径 make :编译 make install :安装 make clean :删除安装时产生的临时文件 vim /etc/profile export PATH=PATH:/opt/apache−jmeter−3.3/bin);软件自己的模块/包管理器​如python:系统的源中不可能包含该软件的所有模块;系统的源中该软件的模块的更新要远远滞后于最新版本;手动安装python,并用Python自带的pip安装模块(类似yum);pipinstallredis:安装python软件包redispipunstallredis:卸载pipshow−−filesredis:pip查看已安装的包piplist−−outdated:检查更新源代码(Source)包编译安装​源代码包(一般有install文件)如hello−2.2.tar.bz2,下载复制到/opt;tar−jxvfhello−2.2.tar.bz2:解压./configure−−prefix=/opt/软件目录名称:为编译做好准备,加上prefix手动指定安装路径make:编译makeinstall:安装makeclean:删除安装时产生的临时文件vim/etc/profileexportPATH=PATH:/opt/目录/bin :手动指定安装路径需要加path
hello :执行软件:看INSTALL和README文件(是否源码包、如何安装、执行都看这两个)
rm -rf 软件目录名称 :卸载软件

linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)相关推荐

  1. Linux常用基本命令详解(二)-------磁盘分区和磁盘管理类命令

    Linux常用基本命令详解(一) Linux常用基本命令详解(二)-------磁盘分区和磁盘管理类命令 Linux常用基本命令详解(三) 1.磁盘分区 磁盘分区(系统分区)是使用分区编辑器(part ...

  2. java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)

    目录 前言 1. 学习路线 2. 学习方法 前言 这篇文章主要总结我之前所学过的框架以及学习路线 从实打实的零基础到框架再到项目 之后实习工作 也在这篇博客中记录我的学习笔记 以及在笔记中遇到的配置安 ...

  3. 200G超强C语言和C++编程0基础从入门到精通视频教程,立即获取

    当今只有一种语言的性能比C语言强,那就是汇编语言,优化过的C程序的速度大约是汇编的95%-98%.但汇编基本不是常人用的.所以实际上C就是最快的语言.C是面向过程的编程语言,C++在某种意义上来说是C ...

  4. Photoshop CS6完全自学基础知识入门到精通视频教程.docx

    中文版 PhotoshopCS6 完全自学基础知识入门到精通视频教程 本教程是初学者快速自学 PhotoshopCS6 的经典畅销教程.全教程共分 22 章,从最基础的 Photoshop CS6 安 ...

  5. MySQL零基础从入门到精通(函数篇)

    MySQL零基础从入门到精通(函数篇) 在MySQL中,为了提高代码重用性和隐藏实现细节,MySQL提供了很多函数.函数可以理解为别人封装好的模板代码. 分类 聚合函数 数学函数 字符串函数 日期函数 ...

  6. MySQL零基础从入门到精通(多表篇)

    MySQL零基础从入门到精通(多表篇) MySQL零基础从入门到精通(多表篇) 实际开发中,一个项目通常需要很多张表才能完成.例如:一个商城项目就需要分类表(category).商品表(product ...

  7. python安装目录结构_1.5 python安装目录介绍《Python基础开发入门到精通》

    第一章 Python的概述与环境安装 本章所讲内容: 1.1 Python介绍 1.2 Python2与Python3的比较 1.3 Python3的安装 1.4 Python环境变量配置 1.5 P ...

  8. MySQL零基础从入门到精通(进阶SQL优化篇)

    MySQL零基础从入门到精通(进阶SQL优化篇) SQL优化 insert 如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化. insert into tb_test value ...

  9. Android studio入门到精通实例实验

    Android studio入门到精通实例实验 实验内容: ----------------- 简单的考试程序---------------- 实验步骤: 一.打开Android studio,新建一 ...

最新文章

  1. P3项目全球模板狗血设置之二 --- 移动类型523收货不能自动创建批次号
  2. wine安装lingoes
  3. 清理你入侵后的三个重要痕迹
  4. Eureka restTemplate访问超时
  5. Latex论文排版技巧再总结
  6. 64位Outlook 无法与OC集成
  7. 《给教师的阅读建议》经典语录
  8. PWN-PRACTICE-BUUCTF-13
  9. 网站性能测试指标:QPS、TPS、吞吐量、响应时间概述
  10. 升级 phpstud y中的 mysql 版本
  11. iStack详解(二)——堆叠连接方式堆叠拓扑变动处理
  12. 【菜gou的CS61A学习笔记 Midterm1】
  13. 如何设计 RQData 通讯协议 - Ricequant米筐量化
  14. 测试5g网速的软件排行榜,2021网络测速app排行榜-手机网速测试软件推荐
  15. python编程软件哪个好-推荐10 款最好的 Python IDE
  16. 支付宝《神奇海洋》素材
  17. 【css滤镜】高级属性filter
  18. cpm自动SEO写文章 关键词文本生成工具3.0版本
  19. 佛山计算机专业刁,计算机应用基础 高职计算机大类专业 刁爱军项目策划方案汇报 原始.pptx...
  20. 从GPT到chatGPT(三):GPT3(一)

热门文章

  1. GPS定位准不准 决定定位精度的诸多因素
  2. unicloud.dcloud
  3. # 如何破429问题|x-kpsdk-ct|x-kpsdk-cd|snkrs bot ## nike 429| snkrs 429|nike 新盾 |snkrs 新盾|nike源码|snkrs 源码
  4. 如何设置修改网页中滚动条
  5. 如何租用国外主机--我购买美国空间bluehost的经验
  6. 网站优化推广怎么做?
  7. 01路径规划问题的相关理论
  8. Windows10安装MinGW-w64
  9. STM32基础-外部中断与优先级
  10. 欢迎来到wxWindows