linux知识

目录结构

  • bin:存放一些可执行的指令,也就是一些二进制文件

  • dev:存放的是外接设备,如光盘,u盘等。在其中的外接设备不能直接使用,必须挂载到某一个地方,才能使用

  • etc:存放一些配置文件

  • home:除了root用户,其他用户的家位置,每个用户在home里都有一个以自己名字命名的目录

  • proc:存放的是系统运行的进程

  • root:root用户的家目录

  • sbin:存放的是只用root用户才能用的指令

  • tmp:存放的是系统运行时产生的临时文件

  • usr:存放用户自己安装的软件

  • var:存放系统或者程序的日志文件

基础

ls

作用:列出指定目录下的所有文件和目录

语法:

-a 列出所有文件和目录,包括隐藏文件

-l 列出所有文件和目录,用详细的方式显示

ls 列出当前目录下的所有文件和目录

ls 路径 列出路径下的所有文件和目录

pwd

作用:显示当前所在路径

cd

作用:切换路径

语法:

cd 进入root目录

cd ~ 进入当前用户的家目录

cd . . 进入上一级目录

cd / 进入根目录

cd 路径 进入路径

mkdir

作用:创建目录

语法:

mkdir aaa 创建aaa目录

mkdir -p aa/bb/cc 创建cc目录,如果没有aa或者bb目录,则把aa和bb目录一并创建

touch

作用:创建文件

语法:

touch aaa.txt 创建aaa.txt文件

touch aa/bb/bb.txt 创建bb.txt文件,如果aa或者bb目录不存在,则无法创建

cp

作用:复制文件或者目录到指定位置

语法:

cp 被复制的文件或目录 要复制到的路径

-r 复制目录时要添加 -r 表示递归处理,把目录内的所有东西都复制过去

cp a.java /root/aaa 把a.java文件复制到/root/aaa目录内(也可以同时改名,但一般不这么做)

mv

作用1:移动文件或者目录

语法:

mv 要移动的文档 要移动到的目标路径(移动时也可以改名)

作用2:修改文档名字

语法:

mv 源文件 新文件名

rm

作用:删除文件或者目录

语法:

-r 删除目录时要加,表示递归,否则无法删除目录

-f 删除时不再询问“是否删除”

一般用法:rm -rf 文档

vim / vi

作用:编辑文件

用法:

  1. vim 文件名(此时进入命令行模式)

  1. 按下 i 键,就可以编辑了(此时是编辑模式)

  1. 按下 esc 键(此时进入命令行模式)

  1. 按下 :w q(w q 表示写入保存,让后退出,如果不想保存可以按 : q !,!表示强制)

>和>>

作用:输出重定向,将符合左边的输出内容写到符号右边的文件中

" > ":覆盖输出,会把文件原来的内容覆盖掉

" >> ":追加输出,在原来文件内容后加上这次的内容

如:查看/root目录内的文档详情,并把内容写到 abc.txt 文件中

ls /root > abc.txt

cat

作用:查看文件内的内容

语法:cat 文件

进阶

df

作用:查看磁盘空间

-h 以较高可读性的形式显示

free

作用:查看内存使用情况

-h 以较高可读性的形式显示

-m 以m为单位显示

Swap:用于临时内存,当系统真是内存不够用时可以临时使用磁盘空间来充当内存

head

作用:查看文件的前几行

head 文件 查看文件的前十行内容

head -6 文件 查看文件的前6行内容

tail

作用:查看文件

tail 文件 查看文件最后十行内容

tail -6 文件 查看文件最后6行内容

tail -f 文件 动态查看文件最后十行内容,一般用于查看日志

tail -200f 文件 动态查看文件最后200行内容,一般用于查看日志

ctrl+c 退出

more

作用:查看文件,以较多的内容查看,之后按回车键看下面的,退出按q键(c+c也可以退出)

语法:more 文件

less

作用:查看文件,以较少的内容查看,之后按上下键或者回车键看下面的,退出按q键

语法:less 文件

比如一个文件内容较多,一个屏幕放不下,可以用这个指令,一部分一部分查看

wc

作用:统计文件内容信息(包括行数,单词数,字节数)

语法:

wc -lwc 文件名

-l:lines,显示行数

-w:words,显示单词数,依照空格来判断单词的数量

-c:bytes,显示字节数

date(重点)

作用:表示操作时间日期(读取,设置)

date 2022年 11月 19日 星期六 22:51:31 CST

date +%F 2022-11-19

date "+%F %T" 2022-11-19 22:52:03,引号表示让“年月日时分秒”成为一个整体

date -d "-1 day" "+%F %T" 昨天的时间,2022-11-18 22:57:54

date -d "+2 year" "+%F %T" 2年后的日期,2024-11-19 22:58:12

date -d "-3 month" "+%F %T" 3个月前的日期,2022-08-19 22:58:19

cal

作用:用来操作日历

cal 显示当月日历

cal -1 显示当月日历

cal -3 显示上月,当月,下月的日历

cal -y 2018 显示2018年的日历

cal -s 显示当月日历,第一列是周日

cal -m 显示当月日历,第一列是周一

clear 或者 ctrl + L

作用:清屏

管道 |

作用:将管道符前面的输出当做管道符后面的输入

如:在当前进程中找到与java有关的进程

ps -ef | grep java

grep

作用:过滤

如:在当前进程中找到与java有关的进程

ps -ef | grep java

高级

useradd

作用:添加用户

hostname

作用:操作服务器的主机名(读取,设置)

hostname 输出完整的主机名

hostname -f 输出当前主机名中的FQDN(全限定域名)

id

作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id等)

id 显示当前执行该命令的用户的基本信息

id 用户 显示该用户的基本信息

uid:用户id

gid:组id

组:附加组

环境:环境变量

用户信息存放的位置:/etc/passwd

用户组信息存放的位置:/etc/group

whoami

作用:显示当前登录的用户名,一般用于shell脚本,用于获取当前操作的用户名方便记录日志

whoami 显示当前登录的用户名

ps

作用:查看服务器的进程信息

选项:

-e 表示列出全部的进程,等价于“-A”

-f 表示显示全部的列(显示全字段)

  • UID:执行该进程的用户id

  • PID:进程id

  • PPID:该进程的父级进程id,任何进程都是由其父级进程启动的,如果一个进程没有父级进程,该进程为僵尸进程

  • C:cpu的占用率,其形式是百分比形式

  • STIME:进程的启动时间

  • TTY:终端设备,发起该进程的终端设备标识符,“?”表示该进程不是由终端设备发起的,而是由系统发起的

  • TIME:进程的执行持续时间

  • CMD:改进程的名称或者对应的路径

top

作用:动态显示进程占用服务器的资源

进入:top

退出:按下q键

PID:进程id USER:执行该进程的用户 PR:优先级,值越大越先执行 NI:全称是 NICE,是用于改变进程的静态优先级 VIRT:虚拟内存 RES:常驻内存 SHR:共享内存 S:进程的状态(S表示睡眠,R表示运行) %CPU:表示CPU的占用百分比 %MEM:表示内存的占用百分比 TIME+:执行持续时间 COMMAND:进程的名称或者路径 在运行top的时候,可以按下以下快捷键: M:表示将结果按照内存(MEM)从高到低降序排列 P:表示将结果按照CPU占用率从高到低降序排列 1(数字1):当服务器有多个cpu时,可以显示每个cpu的使用情况

du -sh

作用:查看目录的真实性大小

语法:du -sh 目录路径

选项含义:

-s:summaries,只显示汇总的大小

-h:以较高可读性的形式显示

find

作用:用于查找文档

语法:find 路径范围 选项 选项的值

选项:

-name:按照文档名称搜索

-type:按照文档类型搜索,f 表示文件,d 表示目录。

名称和类型同时用时无先后顺序

如:查找/rwh 下的a.java文件

service

作用:用于控制一些软件的服务启动/停止/重启

语法:service 服务名 start/stop/restart

kill

作用:杀死进程

语法:kill 进程pid

kill -9 进程id 强制杀死进程

与kill作用相似的有一个 killall 杀死所有进程,killall httpd 杀死所有 httpd 的进程,包括主进程和子进程

ifconfig

作用:用于操作网卡相关的指令,显示ip地址

reboot

作用:重启计算机

语法1:reboot 重启

语法2:reboot -w 模拟重启,但是不重启(只写关机开机的日志信息),不常用

shutdown

作用:关机(慎用)

语法:shutdown -h now "关机提示" 立即关机

shotdown -h 12:01 "关机提示" 定时关机,12:01时关机

如果想要取消关机计划,方法为:

1.centos7版本之前,ctrl+c

  1. centos7以及之后,shotdown -c

关机的其他指令: #init 0 #halt #powe

uptime

作用:输出计算机的持续在线时间(计算机从开机到现在的时间)

语法:#uptime

22:37:47 当前时间 5:40 持续了5分40秒 1 user 1个用户连接 load average 挂载,数字越小,服务器压力越小,数字越大,服务器压力越大 0.01 最近1分钟的挂载 0.04 最近5分钟的挂载 0.09 最近15分钟的挂载

uname

作用:获取计算机操作系统相关信息

语法1:#uname 只获取操作系统的类型

语法2:#uname -a all,表示获取全部的系统信息

1.操作系统 2.计算机名 3.内核版本,并不是发行版本,如centos7 4,出厂日期及版本 5.加入了GUN计划,是开源软件

netstat -tnlp

作用:查看网络连接状态

语法:#netstat -tnlp

选项说明:

-t 只列出tcp协议的连接

-n 将地址用字母变成ip地址,将协议转化成端口号来显示

-l 过滤出状态“State”字段为“LISTEN”,的连接,"LISTEN"表示监听

-p 显示发起连接的进程pid和进程名称

man

作用:manual,手册(包含了Linux中全部命令手册,英文)

语法:#man 命令 ,表示查看某个命令的用法(退出按q键)

例如:#man cp

wget

作用:从网上下载东西

语法:wget 地址

如:下载nginx压缩包

wget https://nginx.org/download/nginx-1.23.2.tar.gz

tar

作用:打包压缩文件,或者解压文件

打包压缩:

tar -zcvf 打包压缩后的文件名 要打包的文件

解压文件:

tar -zxvf 压缩文件

chmod

作用:权限相关

语法:

chmod [ 参数 ] [ <权限范围><符号><权限代号> ]

参数解释:

-R 递归处理,将指定目录下的所有文件及子目录一并处理

权限范围:

u:user,即文件或目录的拥有者

g:group,即文件或目录的所属群组

o:other,除了文件或目录拥有者和其所在的群组之外的,其他用户

a:all,及全部的用户,包括拥有者,其所在群组的成员,其他用户

符号解释:

+:添加权限

-:取消权限

=:重置权限

权限代号:

r:读取权限,数字代号为4

w:写入权限,数字代号为2

x:执行或切换权限,数字代号为1

-:不具有任何权限,数字代号为0

举例:

  • chmod u+x 1.txt 给1.txt的拥有者添加执行权限,这种写法稍微有点麻烦,开发中一般使用数字代号

  • chmod 755 1.txt 给1.txt的拥有者设置读写执行权限,给所属组添加读和执行权限,给其他用户添加读和执行权限

  • chmod 777 1.txt 给所有人添加对此文件操作的所有权限

crontab

作用:定时任务

语法:

-e 编辑定时任务

-l 列出所有定时任务

-r 停止并删除定时任务

-u 指定的用户,如果不指定,则表示当前用户

service crond restart 重启定时任务

计划任务编辑规则:

以行为单位,一行是一个计划,日和周中一般只写一个 分 时 日 月 周 需要执行的命令 取值范围: 分:0-59 时:0-23 日:1-31 月:1-12 周:0-6,0表示星期天 四个符号: *:表示取值范围中的每一个数字 -:连续区间表达式,要想1号到7号都执行,则在日上写 1-7 /:表示每多少个,比如想要10分钟执行一次,则可以在分上写:*/10 ,:表示多个值,比如想要1点,2点,6点执行,则可以在时上写:1,2,6 举例: 0 0 * * * reboot 每天0点0分重启 */10 * * * * ls -l / > /root/a.txt 每隔十分钟把根目录下的内容写到/root/a.txt文件中

快捷键

c+u:删除光标前的所有内容

c+k:删除光标后的所有内容

shell

代码规范

#!/bin/bash(告知系统当前这个脚本要使用的shell解释器)

shell相关命令

文件命名规范

文件名.sh(.sh是linux下bash shell的默认后缀)

运行方法

  • 文件必须有可执行权限

  • 用./***.sh或者/root/***.sh(绝对路径)运行

  • /bin/bash 文件名(或文件绝对路径),不常用

  • sh 文件名

单双引号区别

双引号:可以识别括起来的变量,可以实现转义(类似于“\*”)

单引号:原样输出,里面括起来的是什么,就输出什么

反引号

当脚本中需要执行一些指令并且将执行结果赋值给变量的时候,需要使用反引号(esc键下面那个键)

案例:输出当前时间

变量

定义形式:class_name='yunwei'

使用形式:echo $class_name

变量名规范:

1.变量名后面的等于号左右不能有空格

2.变量名只能使用英文,数字和下划线,首个字符不能是数字

3.名字中间不能有空格,可以用下划线

4.不能使用标点符号

5.不能使用bash里的关键字

只读变量(了解)

语法:readonly 变量名

案例:定义一个变量a=10,输出a,随后把a变为只读变量,给a赋值为20,再输出a

接受用户输入(重点)

语法:read -p 提示信息 变量名

案例:让用户输入密码,并把密码打印出来

删除变量(了解)

语法:unset 变量名

案例:定义变量b=20,输出b的值,随后删除b,再输出b

条件判断语句

语法一: if condition then command fi (fi表示if的闭合,表示条件判断结束) 语法二: if condition then command else conmand fi 语法三: if condition1 then command elif condition2 then conmand else command fi

运算符

算术运算符

expr 命令

作用:用来进行数学运算

如:要算3+2,则可以写 expr 3 + 2

加法 expr 3 + 2

减法 expr 3 - 2

乘法 expr 3 \* 2

除法 expr 3 / 2

取余 expr 3 % 2

等于 ==

不等于 !=

注意:expr 后面要有空格,3 和运算符之间也要有空格,2和运算符之间也要有空格

关系运算符

等于 -eq 不等于 -nq 大于 -gt 小于 -lt 大于等于 -ge 小于等于 -le

逻辑运算符

条件:a=10 b=20

! 非运算,取反 [ ! false ]返回 true

-o 或运算,有一个为真则为真 [ $a -lt 20 -0 $b -gt 100 ]返回true

-a 与运算,两个都为真则为真 [ $a -lt 20 -a $b -gt 100 ]返回false

字符串运算符

条件:a="abc" b="efg"

= 检测两个字符串是否相等,相等返回true [ $a = $b ]返回false

!= 检测两个字符串是否相等,不相等返回true [ $a != $b ]返回true

-z 检测字符串长度是否为0,为0返回true [ -z $a ]返回false

-n 检测字符串长度是否为0,不为0返回true [ -n $a ]返回true

str 检测字符串是否为空,不为空返回true [ $a ]返回true

文件测试运算符

file=/root/aaa

-d file 检测文档是否是目录,是的话返回true [ -d $file ]

-f file 检测文档是否是文件,是的话返回true

-r file 检测文档是否可读,是的话返回true(只要有一个人或组可读,就是true)

-w file 检测文档是否可写,是的话返回true

-x file 检测文档是否是可执行,是的话返回true

-s file 检测文档是否为空,不为空的话返回true

-e file 检测文档是否存在,是的话返回true

软件安装方式

源码包

这种方式安装时容易出错,因为安装的时候可能需要很多依赖。

但是一般都用这个方式安装软件,因为这样可以把软件的性能发挥到最大,而且自己也熟悉安装在哪里了

  1. 比如安装mysql,先下载mysql的压缩包

  1. 一般在/usr/local 下创建一个目录mysql,之后把mysql安装在这里

  1. 解压压缩包,此时会有一个同名的目录,叫mysql(不是刚创建的目录)

  1. 配置(config / configure / bootstrap)

  1. 编译(make / bootstrapd)

  1. 安装(make install / bootstrapd install)

配置操作主要是指定软件的安装目录,需要的依赖在什么地方,指定不需要的可选依赖,配置文件的路径,通用数据存储位置等等。如配置的时候可以加以下参数:

指定安装的路径:--prifix=路径

需要依赖的路径:--with-PACKAGE 名=包所在的路径

不需要依赖:--without-PACKAGE 名

二进制包(rpm)

略过,开发一般不用这个

yum等傻瓜式安装

优点:安装简单,快捷

缺点:完全丧失了自定义性

注意:如果不更改软件来源的情况下,是需要联网才能使用的

常用的 yum 指令:

  • #yum list 列出当前已经装的和可以装的软件(全部)

  • #yum search 软件名 搜索指定的关键词的软件

  • #yum [-y] install 软件名 安装指定的软件(-y表示允许,不再确认)

  • #yum [-y] update 软件名 更新指定的软件,不指定名字则更新所有软件

  • #yum [-y] remove 软件名 卸载指定的软件,使用时不要加-y,因为卸载某个软件时,可能还要卸载它依赖的一些东西,但是这些东西可能其他软件也要用,卸载了其他软件就不能用了

卸载软件

rm -rf 安装的目录 注意:卸载一个编译安装的软件时必须先停止该软件的运行

防火墙

  • 开启防火墙:systemctl start firewalld

  • 重启防火墙:systemctl restart firewalld

  • 关闭防火墙:systemctl stop firewalld

  • 设置开机启动:systemctl enable firewalld

  • 停止并关闭开机启动:systemctl disable firewalld

  • 查看防火墙状态:systemctl status firewalld 或者 firewalld -cmd --state

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值