Linux 命令

小柔的 2024-08-04 10:37:01 阅读 99

Linux 命令

1.网络配置

使用ifconfig查找虚拟机现有的网络配置,来判断ens32还是ens33

进入网络配置文件所在路径,采用ls查看路径下的所有文件

<code>vim /etc/sysconfig/network-scripts/ifcfg-en32

编辑ifcfg-ens32文件

vim ifcfg-ens32

更改为:

DHCP->static

onboot='no'->yes(开机自启)code>

IPADDR=192.168.XXX.100

NETMASK=255.255.255.0

GATEWAY=192.168.XXX.2

DNS1=223.5.5.5

DNS2=180.76.76.76

备注:IPADDR和GATEWAY前面三位根据vM8网络相同

在这里插入图片描述

​ DNS1和DNS2为阿里免费的DNS

在命令行:

<code>systemctl restart network (网络重启)

2.关闭界面化

命令行:

systemctl set-default multi-user.target

下一步:

reboot(重启)

3.命令行的含义以及基础操作

含义:

示例:root@app00:~#

root //用户名,root为超级用户

@ //分隔符

app00 //主机名称

~ //当前所在目录,默认用户目录为~,会随着目录切换而变化,例如:(root@app00:/bin# ,当前位置在bin目录下)

关闭系统

(1)立刻关机

shutdown -h now 或者 poweroff

(2)两分钟后关机

shutdown -h 2

重启

(1)立刻重启

shutdown -r now 或者 reboot

(2)两分钟后重启

shutdown -r 2

命令说明书

man shutdown //打开命令说明后,可按"q"键退出

切换用户

su yao //切换为用户"yao",输入后回车需要输入该用户的密码

exit //退出当前用户

4.目录结构

在这里插入图片描述

bin 存放二进制可执行文件(ls,cat,mkdir等)*
boot 存放用于系统引导时使用的各种文件
dev 存放设备文件
etc 存放系统配置文件*
home 存放所有用户文件的根目录
lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
proc 虚拟文件系统,存放当前内存的映射
usr 存放系统应用程序,比较重要的目录/usr/local 管理员软件安装目录
var 存放运行时需要改变数据的文件*
mnt 挂载目录
sbin 存储管理级别的二进制执行文件
root 超级用户主目录(家目录)
opt 额外安装的可选应用程序包安装位置
目录操作

切换目录

<code> cd / //切换到根目录

cd /bin //切换到根目录下的bin目录

cd ../ //切换到上一级目录 或者使用命令:cd ..

cd ~ //切换到home目录

cd - //切换到上次访问的目录

cd xx(文件夹名) //切换到本目录下的名为xx的文件目录,如果目录不存在报错

cd /xxx/xx/x //可以输入完整的路径,直接切换到目标目录,输入过程中可以使用tab键快速补全

查看目录

ls //查看当前目录下的所有目录和文件

ls -a //查看当前目录下的所有目录和文件(包括隐藏的文件)

ls -l //列表查看当前目录下的所有目录和文件(列表查看,显示更多信息),与命令"ll"效果一样

ls /bin //查看指定目录下的所有目录和文件

创建目录

mkdir tools //在当前目录下创建一个名为tools的目录

mkdir /bin/tools //在指定目录下创建一个名为tools的目录

mkdir -p <directory>递归创建目录

mkdir -p xxx/xxx在创建目录时可以递归创建,上级目录不存在也不报错

删除目录与文件

rm 文件名 //删除当前目录下的文件

rm -f 文件名 //删除当前目录的的文件(不询问)

rm -r 文件夹名 //递归删除当前目录下此名的目录

rm -rf 文件夹名 //递归删除当前目录下此名的目录(不询问)

rm -rf * //将当前目录下的所有目录和文件全部删除

rm -rf /* //将根目录下的所有文件全部删除【慎用!相当于格式化系统】

修改目录

mv 当前目录名 新目录名 //修改目录名,同样适用与文件操作

mv /usr/tmp/tool /opt //将/usr/tmp目录下的tool目录剪切到 /opt目录下面

mv -r /usr/tmp/tool /opt //递归剪切目录中所有文件和文件夹

搜索目录

find /bin -name 'a*' //查找/bin目录下的所有以a开头的文件或者目录

查看当前目录

pwd //显示当前位置路径

5.文件权限

文件操作

新增文件

touch a.txt //在当前目录下创建名为a的txt文件(文件不存在),如果文件存在,将文件时间属性修改为当前系统时间

删除文件

rm 文件名 //删除当前目录下的文件

rm -f 文件名 //删除当前目录的的文件(不询问)

编辑文件

vi 文件名 //打开需要编辑的文件

--进入后,操作界面有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)

命令模式

-刚进入文件就是命令模式,通过方向键控制光标位置,

-使用命令"dd"删除当前整行

-使用命令"/字段"进行查找

-按"i"在光标所在字符前开始插入

-按"a"在光标所在字符后开始插入

-按"o"在光标所在行的下面另起一新行插入

-按":"进入底行模式

插入模式

-此时可以对文件内容进行编辑,左下角会显示 "-- 插入 --""

-按"ESC"进入底行模式

底行模式

-退出编辑: :q

-强制退出: :q!

-保存并退出: :wq

## 操作步骤示例 ##

1.保存文件:按"ESC" -> 输入":" -> 输入"wq",回车 //保存并退出编辑

2.取消操作:按"ESC" -> 输入":" -> 输入"q!",回车 //撤销本次修改并退出编辑

## 补充 ##

vim +10 filename.txt //打开文件并跳到第10行

vim -R /etc/passwd //以只读模式打开文件

查看文件以及大小

cat a.txt //查看文件最后一屏内容

less a.txt //PgUp向上翻页,PgDn向下翻页,"q"退出查看

more a.txt //显示百分比,回车查看下一行,空格查看下一页,"q"退出查看

tail -100 a.txt //查看文件的后100行,"Ctrl+C"退出查看

du -a统计全部目录及其子目录下的每个档案所占的磁盘空间

du -h统计全部目录及其子目录所占的磁盘空间

du -ch <dir>统计对应目录及子目录所占空间并添加total

du -sh <dir>直接统计总大小

cat显示文本内容,类似windows中的type(顺序输出)

tac显示文本内容(cat的倒序输出)

cat file1 file2 > file3文件合并

cat -b 显示行号输出

分屏显示 more / less

用一次显示一屏,没有显示完时最后一行显示进度。

回车显示下一行,按b显示上一页,空格显示下一页,q退出。

文件权限划分

在这里插入图片描述

读写的权限可以分别写成 r, w, x

总共有九个权限,可以分组三大组分别是:

user:当前文件所属用户的权限

group:与当前文件所属用户同一组的用户权限

others:其他用户的权限

故使用 u, g, o 来代表三种身份的权限,此外还有a,代表all,即所有用户

如需修改权限,可使用chmod命令,具体操作如下所示:

在这里插入图片描述

对于文件和目录来说,r,w,x有着不同的作用和含义:

针对文件:

<code> r:读取文件内容

w:修改文件内容

x:执行权限对除二进制程序以外的文件没什么意义

针对目录

r:查看目录下的文件列表

w:删除和创建目录下的文件

x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)

修改文件访问权限的方法

通过chown命令可以修改文件所有者和文件关联组,进而也能影响权限

命令格式:chown [-cfhvR] [--help] [--version] user[:group] file...

参数 :

user : 新的文件拥有者的使用者

group : 新的文件拥有者的使用者组(group)

-c : 显示更改的部分的信息

-f : 忽略错误信息

-h :修复符号链接

-v : 显示详细的处理信息

-R : 处理指定目录以及其子目录下的所有文件

--help : 显示辅助说明

--version : 显示版本

例如:chown shujia:shujiagrp file1.txt

指令名称 : chmod(修改文件权限)

使用权限 : 所有使用者

使用方式 : chmod [-cfvR] [–help] [–version] mode file…

说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。

mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中

u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。

+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。

r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

-c : 若该档案权限确实已经更改,才显示其更改动作

-f : 若该档案权限无法被更改也不要显示错误讯息

-v : 显示权限变更的详细资料

-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)

--help : 显示辅助说明

--version : 显示版本

# 将文件权限改为rx rwx x

chmod 571 文件

r----4

w----2

x----1

用户和用户组

添加用户

使用useradd即可增加一个用户

命令格式:useradd 选项 用户名

选项:

-c comment 指定一段注释性描述。

-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

-g 用户组 指定用户所属的用户组。

-G 用户组,用户组 指定用户所属的附加组。

-s Shell文件 指定用户的登录Shell。

-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

用户名:

指定新账号的登录名

删除或修改用户

如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录

删除一个已有的用户账号使用userdel命令,其格式:userdel 选项 用户名

常用的选项是 -r,它的作用是把用户的主目录一起删除

例如:userdel -r sam

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

修改已有用户的信息使用usermod命令,其格式:usermod 选项 用户名

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值

例如:usermod -s /bin/ksh -d /home/z -g developer sam

修改密码

用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令

指定和修改用户口令的Shell命令是passwd

超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令

命令的格式为:passwd 选项 用户名

可使用的选项:

-l 锁定口令,即禁用账号

-u 口令解锁

-d 使账号无口令

-f 强迫用户下次登录时修改口令

增加用户组

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新

增加一个新的用户组使用groupadd命令。其格式:groupadd 选项 用户组

可以使用的选项有:

-g GID 指定新用户组的组标识号(GID)

-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同

例如:groupadd group1

此命令向系统中增加了一个新组group1,新组的组标识号是在当前已有的最大组标识号的基础上加1

删除或修改用户组

如果要删除一个已有的用户组,使用groupdel命令,其格式:groupdel 用户组

例如:groupdel group1

此命令从系统中删除组group1

修改用户组的属性使用groupmod命令,其格式:groupmod 选项 用户组

常用的选项有:

-g GID 为用户组指定新的组标识号

-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。

-n 新用户组 将用户组的名字改为新名字

例如:groupmod –g 10000 -n group3 group2

此命令将组group2的标识号改为10000,组名修改为group3

打包与解压

说明

.zip、.rar //windows系统中压缩文件的扩展名

.tar //Linux中打包文件的扩展名

.gz //Linux中压缩文件的扩展名

.tar.gz //Linux中打包并压缩文件的扩展名

在这里插入图片描述

打包文件

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

参数说明:z:调用gzip压缩命令进行压缩; c:打包文件; v:显示运行过程; f:指定文件名;

示例:

tar -zcvf a.tar file1 file2,... //多个文件压缩打包

解压文件

tar -zxvf a.tar //解包至当前目录

tar -zxvf a.tar -C /usr------ //指定解压的位置

unzip test.zip //解压*.zip文件

unzip -l test.zip //查看*.zip文件的内容

unzip 命令可以查看和解压缩 zip 文件。该命令的基本格式如下:

在这里插入图片描述

此命令常用的选项以及各自的含义如表所示。

在这里插入图片描述

vim详细操作

查找文本

在命令模式下输入英文状态的下的/

在这里插入图片描述

替换文本

在这里插入图片描述

快捷方向键

在这里插入图片描述

光标以单词为单位移动

在这里插入图片描述

Vim光标移动至行首或行尾

在这里插入图片描述

Vim光标移动至指定字符

在这里插入图片描述

Vim光标移动到指定行

在这里插入图片描述

撤销和恢复撤销的命令

在这里插入图片描述

Vim批量注释和自定义注释

<code>Vim批量注释和自定义注释

使用 Vim 编辑 Shell 脚本,在进行调试时,需要进行多行的注释,每次都要先切换到输入模式,在行首输入注释符"#"再退回命令模式,非常麻烦。

连续行的注释其实可以用替换命令来完成。换句话说,在指定范围行加"#"注释,可以使用 ":起始行,终止行 s/^/#/g",例如:

表示在第 1~10 行行首加"#"注释。"^"意为行首;"g"表示执行替换时不询问确认。如果希望每行交互询问是否执行,则可将 "g" 改为 "c"。

取消连续行注释,则可以使用 ":起始行,终止行s/^#//g",例如:

意为将行首的"#"替换为空,即删除。

设置行号

vim设置显示行号

在这里插入图片描述

vim设置不显示行号

在这里插入图片描述

永久显示行号

在 ~/ 目录下建立 .vimrc 文件,并在其中添加 set nu 代码,关闭保存该文件即可。

在这里插入图片描述

在这里插入图片描述

netstat详解

netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。

语法:

在这里插入图片描述

说明:(还有很多选项大家可以自己查询)

在这里插入图片描述

<code>netstat -ntulp |grep 8888

df命令详解

Linux df(英文全拼:disk free) 命令用于显示目前在 Linux 系统上的文件系统磁盘使用情况统计。

语法:

在这里插入图片描述

<code>文件-a, --all 包含所有的具有 0 Blocks 的文件系统

文件--block-size={SIZE} 使用 {SIZE} 大小的 Blocks

文件-h, --human-readable 使用人类可读的格式(预设值是不加这个选项的...)

文件-H, --si 很像 -h, 但是用 1000 为单位而不是用 1024

文件-i, --inodes 列出 inode 资讯,不列出已使用 block

文件-k, --kilobytes 就像是 --block-size=1024

文件-l, --local 限制列出的文件结构

文件-m, --megabytes 就像 --block-size=1048576

文件-t, --type=TYPE 限制列出文件系统的 TYPE

文件-T, --print-type 显示文件系统的形式

文件-x, --exclude-type=TYPE 限制列出文件系统不要显示 TYPE

文件-v (忽略)

文件--help 显示这个帮手并且离开

文件--version 输出版本资讯并且离开

ps命令详解

Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器。

语法:

在这里插入图片描述

参数:(仅列出几个常用的参数并大略介绍含义)

<code>-A 列出所有的进程

-au 显示较详细的资讯

-aux 显示所有包含其他使用者的进程

-w 显示加宽可以显示较多的资讯

实例:

查找指定进程格式:

ps -ef | grep 进程关键字

显示 php 的进程:

ps -ef | grep php

显示进程信息

ps -A

显示指定用户信息

ps -u root //显示root进程用户信息

显示所有进程信息,连同命令行

ps -ef //显示所有命令,连带命令行

find命令详解

Linux find 命令用于在指定目录下查找文件和目录。

它可以使用不同的选项来过滤和限制查找的结果。

语法:

在这里插入图片描述

参数说明:

path 是要查找的目录路径,可以是一个目录或文件名,也可以是多个路径,多个路径之间用空格分隔,如果未指定路径,则默认为当前目录。

expression 是可选参数,用于指定查找的条件,可以是文件名、文件类型、文件大小等等。

实例:

在这里插入图片描述

管道命令“|”

作用就是将前一个命令的输出作为后一个命令的输入

grep 命令(查找)

语法

<code>grep [options] pattern [files]

grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

pattern - 表示要查找的字符串或正则表达式。files - 表示要查找的文件名,可以同时查找多个文件,如果省略 files 参数,则默认从标准输入中读取数据。

常用选项:

-i:忽略大小写进行匹配。-v:反向查找,只打印不匹配的行。-n:显示匹配行的行号。-r:递归查找子目录中的文件。-l:只打印匹配的文件名。-c:只打印匹配的行数。

Linux常用操作补充

yum

基本使用

安装:yum install 包名

yum install telnet

卸载:需要借助rpm进行卸载

换源

参考https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b115Ci1Y6

备份原有的源配置文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

从阿里官方网站下载对应系统版本的源配置文件

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

由于我们是非ECS用户,所以源配置文件中包含aliyuncs.com地址访问不了

故对其进行移除

sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo

重新构建本地缓存

yum makecache

systemctl

管理系统以及用户的服务

NetworkManager

network

防火墙:firewalld

系统服务都在:/usr/lib/systemd/system该目录中,都是以xxx.service形式存在

启动:systemctl start firewalld停止:systemctl stop firewalld重启:systemctl restart firewalld查看状态:systemctl status firewalld开机自启:systemctl enable firewalld取消开机自启:systemctl disable firewalld

修改主机名

便于区分不同的虚拟机(主机)

修改完之后需要重新连接即可生效,不需要重启系统

hostnamectl set-hostname zs

# 修改文件的方式 需要重启

vim /etc/hostname

# 将原内容删除后 修改为自己的主机名

master

修改hosts

配置IP地址和名称的映射关系

后续如果要使用IP地址的时候,则可以直接使用名称代替

vim /etc/hosts

# 增加内容

192.168.xxx.100 master

同样在Windows中也能修改hosts

进入C:\Windows\System32\drivers\etc目录

修改环境变量

环境变量:本质上是很多路径

当系统执行命令时,会去环境变量中的路径里查找有无该命令,有即执行,没有就会提示命令找不到

配置环境变量就是告诉系统去哪些位置找我们需要的命令

vim /etc/profile

# 一般配置在文件的尾部 先配置一个XXX_HOME,然后再将其HOME下的bin目录配置在环境变量PATH中

MY_SCRIPTS_HOME=/root/scripts

export PATH=$MY_SCRIPTS_HOME/bin:$PATH

# 配置完之后记得source 才能生效

source /etc/profile

安装JDK环境

上传到虚拟机

解压

mkdir /usr/local/soft

tar zxvf jdk-8u171-linux-x64.tar.gz -C /usr/local/soft

修改环境变量

vim /etc/profile

# 在文件尾部加入以下内容

JAVA_HOME=/usr/local/soft/jdk1.8.0_171

HADOOP_HOME=location

export PATH=$JAVA_HOME/bin:$HADOOP/bin:$HADOOP/sbin:$PATH

# 保存退出之后 记得source

source /etc/profile

修改配置文件(省略)

进行初始化工作(省略)

测试

# 查看当前系统中运行了哪些JAVA进程

jps

# 查看JAVA的版本号

java -version

# 输出

java version "1.8.0_171"

Java(TM) SE Runtime Environment (build 1.8.0_171-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)

nohup

后台运行

nohup sh demo13.sh > a.log 2>&1 #后台运行,标准输入和标准输出重定向

nohup command > file 2>&1

crontab

定时调度

# 进入文件写定时任务

crontab -e

# 以列表的形式展现定时任务

crontab -l

备注:指定定时执行的文件 文件用绝对路径

* * * * * sh demo13.sh(command)

- - - - -

| | | | |

| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)

| | | +---------- 月份 (1 - 12)

| | +--------------- 一个月中的第几天 (1 - 31)

| +-------------------- 小时 (0 - 23)

+------------------------- 分钟 (0 - 59)

23 23 23 11 * -> 11月23日23时23分执行这个定时任务

*/5 */12 * * * -> 每隔十二小时的每五分钟执行一次

*/30 6-12/3 * * * -> 6-12点每隔三个小时的三十分钟执行一次

0 1 * * 3 -> 每周三1点的定时任务

ssh

免密登录

时区配置

查看当前时区:timedatectl

查看所有时区:

cd /usr/share/zoneinfo/

ls

修改时区

timedatectl set-timezone Asia/Shanghai

同步时间

# 基于阿里云NTP服务器同步时间

ntpdate ntp.aliyun.com

# 将时间写入硬件,避免重启失效

clock -w

sed

sed 可依照脚本的指令来处理、编辑文本文件。

Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数说明

-e

awk

AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。

语法

awk [选项参数] 'script' var=value file(s)

awk [选项参数] -f scriptfile var=value file(s)

参数说明

-F fs or --field-separator fs

指定输入文件折分隔符,fs是一个字符串或者是一个正则表达式,如-F:。

-v var=value or --asign var=value

赋值一个用户定义变量。

-f scripfile or --file scriptfile

从脚本文件中读取awk命令。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。