-
在执行Linux命令时,解决提示信息如果显示为乱码:
echo 'LANG="en_US.UTF-8"' >> /etc/profile source /etc/profile
查看LANG环境变量,LANG 环境变量通常定义了默认的字符编码
echo $LANG
使用 locale 命令可以查看系统的区域设置,这通常包括字符编码
locale
使用 file 命令可以查看文件的类型和编码
file -i filename
-
ifconfig 命令不存在的情况
直接安装(yum -y install net-tools),安装完成后就能直接使用。
常用命令
命令 | 作用 | 操作示例 | 备注 |
---|---|---|---|
pwd | 查看当前所在文件夹 | ||
clear | 清屏 | ||
ctrl + c | 退出 | ||
ifconfig | 查看配置网卡信息 | ifconfig | grep inet 查看网卡对应的 IP 地址 |
ping ip地址 | 检测到目标 ip地址 的连接是否正常 | ping 127.0.0.1 | |
which | 查看执行命令所在位置 | which useradd 输出:/usr/sbin/useradd | |
whereis | 除了查找可执行文件外,还可以查找源文件和手册页的位置 | whereis java | |
lsof | 查看特定端口的详细信息 | lsof -i :port_number | |
find | 搜索文件 | 🟢 find / -name fileName 全局查找该文件🟢 find . –name “*.java” 在当前目录及其子目录下查找.java结尾文件🟢 find /release -name “*.java” 在/release目录及其子目录下查找.java结尾的文件 | |
locate | 快速定位文件和目录 | 🟢locate filename 要搜索系统中名为 filename 的文件🟢locate "*.log" 要搜索所有以 .log 结尾的文件🟢locate -i filename 忽略大小写 🟢locate -m 10 filename 限制搜索结果数量 | |
grep | 搜索文本文件内容 | 🟢grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置🟢grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置 | |
echo | 将内容输出到console控制台上 | echo “Hello, World!” | |
> | 输出重定向(覆盖)命令 | ||
>> | 输出重定向(追加)命令 | ||
🔴 | 文件目录操作命令 | 🔴 | 🔴 |
cd | 切换文件夹 | cd ~/a 进入当前操作用户home目录下的a | 🟢~ 表示用户的home目录🟢. 表示目前所在的目录🟢… 表示目前目录位置的上级目录🟢/ 根目录 |
ls | 查看当前文件夹下的内容 | 🟢-a :全部的文件,连同隐藏文件🟢 -l :包含文件的属性与权限 | |
ll | 查看当前文件夹下的内容 | ||
touch | 如果文件不存在,新建文件 | touch newfile.txt | |
mkdir | 创建目录 | mkdir release | 🟢-p :确保父目录名称存在,不存在的就建一🟢-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色 |
rmdir | 删除目录 | rmdir release | -p:当子目录被删除后使父目录为空目录的话,则一并删除 |
rm | 删除文件或目录 | rm -rf release/ | 🟢-f :无需确认,直接删除🟢-r :递归删除 |
cp | 复制文件或目录 | cp hello.txt release/ | -r:递归持续复制,用於目录的复制行为; |
mv | 为文件或目录改名、或将文件或目录移动到其它位置 | 🟢mv oldname newname 重命名文件或目录 🟢mv filename /path/to/directory 移动文件或目录🟢mv file1 file2 /path/to/directory 移动多个文件或目录 | 🟢 -f :force 强制的意思🟢-i :若目标文件已经存在时,就会询问是否覆盖 |
less | 翻页查看器 | less -N filename 显示文件行号 | 🟢Space(空格键)向下翻页。🟢 b 向上翻页。🟢 q 退出查看器 🟢grep “search_term” filename |
more | 简单的分页查看器 | more fileName | 🟢Enter(回车键)向下滚动一行 🟢Space(空格键)向下翻页 🟢b 向上翻页 🟢q或者Ctrl+C 退出more |
cat | 查看文件内容(适合小文件)、创建文件、文件合并、追加文件内容等功能 | 🟢cat -n fileName 逐行显示文件内容 🟢cat > newfile.txt 创建新文件 🟢cat file1.txt file2.txt > mergedfile.txt 合并文件 🟢cat /dev/null > filename.txt 清空文件内容 🟢cat >> existingfile.txt追加内容到文件 🟢cat -A filename 显示二进制文件内容 | |
tail | 查看文件的结尾部分内容 | tail -f filename | 实时显示文件新增的内容,适用于日志文件 |
vi/vim | 查看文件的结尾部分内容 | 🟢i 进入编辑模式 🟢 ESC 退回到命令模式🟢:q 退出🟢 :w 保存 🟢:wq 保存退出🟢 :wq! 强制保存退出 🟢 Ctrl + f 向下翻页。🟢按 Ctrl + b 向上翻页 | |
dd | 删除 | 🟢dd 删除光标所在当前行内容🟢ndd 删除当前行往下n 行 | |
u | 撤销 | 🟢u 撤销上一步的操作🟢ctrl + r 反撤销 | |
yy | 复制 | 🟢yy 复制光标当前所在行内容🟢nyy 复制当前行往下n 行 | |
p | 粘贴 | 🟢p 当前行的下一行粘贴 🟢P 当前行的上一行粘贴 | |
🔴 | 修改文件权限 | 🔴 | 🔴 |
chmod | 更改文件权限 | chmod 770 filename | owner/group/others三种身份各有自己的read/write/execute权限 |
chown | 修改拥有者 | chown [–R] 属主名 文件名 | |
chgrp | 修改组 | chgrp [-R] 属组名 文件名 | -R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。 |
🔴 | 进程查看命令 | 🔴 | 🔴 |
ps | 显示当前进程的状态 | ps aux 查看进程 | 🟢a:显示当前终端下的所有进程信息,包括其他用户的进程。🟢u:使用以用户为主的格式输出进程信息。🟢x:显示当前用户在所有终端下的进程。 |
jps | 查看本机运行的java 进程 | ||
l | 管道命令,前一个命令执行的结果作为内容交给下一个命令处理 | ps -ef | grep 进程名 |
🔴 | 内存、磁盘查看命令 | 🔴 | 🔴 |
top | 实时监控工具 | top | 在 top 命令中,按下 Shift + M 会根据内存使用率对进程进行排序 |
free | 显示内存状态 | free -h | |
df | 列出文件系统的整体磁盘使用量 | df -h lsblk | -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统 🟢-m :以 MBytes 的容量显示各文件系统 🟢-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示 |
du | 检查磁盘空间使用量 | 🟢du [-ahskm] 文件或目录名称 🟢du -sh * | 🟢-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已 🟢-h :以人们较易读的容量格式 (G/M) 显示;🟢-s :列出总量而已,而不列出每个各别的目录占用容量;🟢-m :以 MBytes 列出容量显示; |
🔴 | 打包压缩命令 | 🔴 | 🔴 |
tar -cvf | 打包 | 🟢tar -cvf hello.tar ./* 将当前目录下所有文件打包,打包后的文件名为hello.tar 🟢tar -zcvf hello.tar.gz ./* 将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz | 🟢 z代表的是gzip 🟢 c代表的是create 🟢x代表的是extract,实现从包文件中还原文件 🟢v代表的是verbose,显示命令的执行过程 🟢f代表的是file |
tar -xvf | 解包 | 🟢 tar -xvf hello.tar 将hello.tar文件进行解包,并将解包后的文件放在当前目录🟢tar -zxvf hello.tar.gz 将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录🟢tar -zxvf hello.tar.gz -C /usr/local 将hello.tar.gz文件进行解压,并将解压后的文件放在 /usr/local目录 | |
🔴 | 用户管理命令 | 🔴 | 🔴 |
cat /etc/shadow | 查看linux用户 | ||
useradd | 添加新用户 | 🟢 -m 使用者目录如不存在则自动建立 🟢-g 用户组 指定用户所属的用户组 | |
su | 切换用户 | su username | |
userdel | 删除帐号 | userdel -r username -r它的作用是把用户的主目录一起删除 | |
usermod | 修改帐号 | usermod 选项 username | 常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值 |
passwd | 用户口令的管理 | passwd 选项 username | 🟢 -l 锁定口令,即禁用账号 🟢-u 口令解锁 🟢-d 使账号无口令🟢 -f 强迫用户下次登录时修改口令 |
🔴 | java jar包启动命令 | 🔴 | 🔴 |
nohup | 使进程在后台持续运行 | 🟢nohup command & 使用 nohup 运行一个命令,即使终端关闭,该命令也会继续执行;command 是你想要执行的命令,& 将命令放到后台执行 🟢nohup java -Dfile.encoding=utf-8 -jar -Xms128m -Xmx512m /home/back/sys/demo.jar --spring.config.location=/home/back/sys/bootstrap.yml > /home/back/logs/demo.log 2>&1 & 重定向操作符 > 来指定输出文件,2>&1 确保错误消息也被重定向到 output.log中 | |
🔴 | 其它命令 | 🔴 | 🔴 |
apt | 通过 apt 安装/卸载软件 | 🟢apt install 软件包 🟢apt remove 软件名 🟢apt upgrade 更新 | |
ssh | linux系统连接服务器 | ssh -p 22 root@ip地址 | ssh 这个终端命令只能在 Linux 或者 UNIX 系统下使用 |
scp | 远程拷贝文件 | 🟢 scp -P port user@remote:Desktop/01.py 01.py 把远程 家目录下的 Desktop/01.py 文件 复制到 本地当前目录下的 01.py 🟢 scp -r demo user@remote:Desktop 把当前目录下的 demo 文件夹 复制到 远程 家目录下的 Desktop 🟢scp -r user@remote:Desktop demo 把远程 家目录下的 Desktop 复制到 当前目录下的 demo 文件夹 | 🟢-r 选项可以传送文件夹🟢-P若远程 SSH 服务器的端口不是 22,需要使用大写字母 -P 选项指定端口 🟢scp 这个终端命令只能在 Linux 或者 UNIX 系统下使用 |
文件目录操作命令 cd
绝对路径:
例如:/usr/share/doc
相对路径:
例如: /usr/share/doc 要到 /usr/share/man 底下时,可以写成:cd …/man
特殊说明
~ 表示用户的home目录
. 表示目前所在的目录
.. 表示目前目录位置的上级目录
/ 根目录
示例:
# 切换到/usr/local目录
cd /usr/local
# 切换到当前目录的上一级目录
cd ..
# 进入当前目录上一级下的a
cd ../a
# 切换到用户的home目录
cd ~
# 进入当前操作用户home目录下的a
cd ~/a
# 进入当前目录下的a a是隐藏的
cd .a
# 进入当前目录下的a
cd ./a
# 回到之前目录
cd -
文件目录操作命令 ls、mkdir、rm、cp、mv
所有的Linux命令可以组合使用
-
ls: 列出目录
-a
:全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用)-l
:长数据串列出,包含文件的属性与权限等等数据;常用:ls -l = ll
-
mkdir:创建目录
-p
:确保父目录名称存在,不存在的就建一个- -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
mkdir release 在当前目录下,建立一个名为release的子目录 mkdir -p release/test 在工作目录下的release目录中建立一个名为test的子目录,若release目录不存在,则建立一个
-
rmdir:删除空目录
- -p:当子目录被删除后使父目录为空目录的话,则一并删除
rmdir release 删除名为release的空目录 rmdir -p release/test 删除release目录中名为test的子目录,若test目录删除后release目录变为空目录,则也被删除 rmdir release* 删除名称以release开始的空目录
-
rm: 删除文件或目录
-f
:无需确认,直接删除-r
:将目录及目录中所有文件(目录)逐一删除,即递归删除- -i :互动模式,在删除前会询问使用者是否动作
rm -r release/ 删除名为release的目录和目录中所有文件,删除前需确认 rm -rf release/ 无需确认,直接删除名为release的目录和目录中所有文件 rm -f hello.txt 无需确认,直接删除hello.txt文件
-
cp: 复制文件或目录
语法:cp [-r] source dest-r
:递归持续复制,用於目录的复制行为;(常用)- -a:相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
- -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
- -d:若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
- -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
- -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
- -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身。
- -s:复制成为符号连结档 (symbolic link),亦即『捷径』文件;
- -u:若 destination 比 source 旧才升级 destination !
cp hello.txt release/ 将hello.txt复制到release目录中 cp hello.txt ./hi.txt 将hello.txt复制到当前目录,并改名为hi.txt cp -r release/ ./release2/ 将release目录和目录下所有文件复制到release2目录下 cp -r release/* ./release2/ 将release目录下所有文件复制到release2目录下
-
mv: 为文件或目录改名、或将文件或目录移动到其它位置
语法:mv source dest- -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
- -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
- -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
mv hello.txt hi.txt 将hello.txt改名为hi.txt mv hi.txt release/ 将文件hi.txt移动到release目录中 mv hi.txt release/hello.txt 将hi.txt移动到release目录中,并改名为hello.txt mv release/ release2/ 如果release目录不存在,将release目录改名为release2 mv release/ release2/ 如果release目录存在,将release目录移动到release2目录中
文件目录操作命令 cat、more、tail
-
cat 用于显示文件内容
语法:cat [-n] fileName- -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
- -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
- -E :将结尾的断行字节 $ 显示出来;
-n :由1开始对所有输出的行数编号;
- -T :将 [tab] 按键以 ^I 显示出来;
cat /etc/profile 查看/etc目录下的profile文件内容
-
v :列出一些看不出来的特殊字符
-
tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
-
nl 显示的时候,顺道输出行号!
-
more 以分页的形式显示文件内容
语法: more fileName
操作说明:- 回车键 向下滚动一行
- 空格键 向下滚动一屏
- b 返回上一屏
- q或者Ctrl+C 退出more
more /etc/profile 以分页方式显示/etc目录下的profile文件内容
-
less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
-
head 只看头几行
-
tail 用于查看文件的结尾部分内容
语法:tail [-f] fileName- -n 用于显示行数,默认为10,即显示 10 行的内容
- -f 动态读取文件末尾内容并显示,通常用于日志文件的内容输出
tail /etc/profile 显示/etc目录下的profile文件末尾10行的内容 tail -20 /etc/profile 显示/etc目录下的profile文件末尾20行的内容 tail -f /home/my.log 动态读取/home目录下的my.log文件末尾内容并显示
修改文件属性命令
1、chgrp:更改文件属组
chgrp [-R] 属组名 文件名
-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。
2、chown:更改文件属主,也可以同时更改文件属组
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
3、chmod:更改文件9个属性
chmod [-R] xyz 文件或目录
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx—] 分数则是:
-
owner = rwx = 4+2+1 = 7
-
group = rwx = 4+2+1 = 7
-
others= — = 0+0+0 = 0
chmod 770 filename
打包压缩命令
语法:tar [-zcxvf] fileName [files]
包文件后缀为.tar
表示只是完成了打包,并没有压缩
包文件后缀为.tar.gz
表示打包的同时还进行了压缩
- -z:z代表的是gzip,通过gzip命令处理文件,gzip可以对文件压缩或者解压
- -c:c代表的是create,即创建新的包文件
- -x:x代表的是extract,实现从包文件中还原文件
- -v:v代表的是verbose,显示命令的执行过程
- -f:f代表的是file,用于指定包文件的名称
打包:
tar -cvf hello.tar ./* 将当前目录下所有文件打包,打包后的文件名为hello.tar
tar -zcvf hello.tar.gz ./* 将当前目录下所有文件打包并压缩,打包后的文件名为hello.tar.gz
- 解包
tar -xvf hello.tar 将hello.tar文件进行解包,并将解包后的文件放在当前目录
tar -zxvf hello.tar.gz 将hello.tar.gz文件进行解压,并将解压后的文件放在当前目录
tar -zxvf hello.tar.gz -C /usr/local 将hello.tar.gz文件进行解压,并将解压后的文件放在 /usr/local目录
vi/vim 命令
vi命令是Linux系统提供的一个文本编辑工具,可以对文件内容进行编辑,类似于Windows中的记事本
vim是从vi发展来的一个功能更加强大的文本编辑工具
要使用vim命令,需要我们自己完成安装。可以使用下面的命令来完成安装:
yum install vim
语法:vim fileName
-
i
进入编辑模式 -
o
进入编辑模式后,在当前行的下一行 -
输入模式下按
ESC
退回到命令模式 -
在命令模式下,输入
:
进入底线命令模式 -
常用的底线命令有:
:q
退出:w
保存:wq
保存退出:wq!
强制保存退出
-
底行模式
- 底行模式下可以通过命令对文件内容进行查找、显示行号、退出等操作
- 在命令模式下按下[:,/]任意一个,可以进入底行模式
- 通过/方式进入底行模式后,可以对文件内容进行查找
- 通过:方式进入底行模式后,可以输入wq(保存并退出)、q!(不保存退出)、set nu(显示行号)
提示:在命令模式下按下shift + zz
可以实现快速的保存退出
查找命令 find、grep
find 作用:在指定目录下查找文件
语法:find dirName -option fileName
find / -name 文件名 全局查找该文件
find . –name “*.java” 在当前目录及其子目录下查找.java结尾文件
find /release -name “*.java” 在/release目录及其子目录下查找.java结尾的文件
grep 作用:从指定文件中查找指定的文本内容
语法:grep word fileName
grep Hello HelloWorld.java 查找HelloWorld.java文件中出现的Hello字符串的位置
grep hello *.java 查找当前目录中所有.java结尾的文件中包含hello字符串的位置
进程查看命令
-
ps 命令:用于显示当前进程的状态,类似于windows 的任务管理器
-
jps 命令:这是JDK 自带的命令,专门用于查看本机运行的java 进程情况
-
l 管道命令:将前一个命令执行的结果作为内容交给下一个命令处理
-
查看进程
a:显示当前终端下的所有进程信息,包括其他用户的进程。
u:使用以用户为主的格式输出进程信息。
x:显示当前用户在所有终端下的进程。# 查看进程 ps aux # 查看本机运行的所有进程 ps -ef:查看linux 进程, grep 进程名: 搜索进程名 ps -ef | grep 进程名
其它命令
- ln:创建连接
- touch:创建文件
- echo:用于内容输出,将内容输出到console控制台上
- > 输出重定向(覆盖)命令
- >>输出重定向(追加)命令
时间、日期命令
-
date 命令:用来显示或设定系统的日期与时间。使用者可以设定欲显示的格式
# date + "%Y-%m-%d %H:%M:%S"
-
cal 命令:用于显示当前或者指定日期的公历
内存、磁盘使用率查看命令
-
free 命令:用于显示内存状态
# free -h
Linux磁盘管理常用命令为 df、du。
df :列出文件系统的整体磁盘使用量
df [-ahikHTm] [目录或文件名]
选项与参数:
- -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
- -k :以 KBytes 的容量显示各文件系统;
- -m :以 MBytes 的容量显示各文件系统;
- -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
- -H :以 M=1000K 取代 M=1024K 的进位方式;
- -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
- -i :不用硬盘容量,而以 inode 的数量来显示
du:检查磁盘空间使用量
du [-ahskm] 文件或目录名称
选项与参数:
- -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
- -h :以人们较易读的容量格式 (G/M) 显示;
- -s :列出总量而已,而不列出每个各别的目录占用容量;
- -S :不包括子目录下的总计,与 -s 有点差别。
- -k :以 KBytes 列出容量显示;
- -m :以 MBytes 列出容量显示;
光标移动命令
- 方向键控制移动
- 翻页
pageup
pagedown
- 行首(home 0)行尾(end $)
- 跳到文件的最后一行
G
- 跳到文件的第一行
gg
复制粘贴命令
- 复制
yy
复制光标当前所在行内容nyy
复制当前行往下n 行
- 黏贴
p
当前行的下一行粘贴P
当前行的上一行粘贴
删除、撤销操作命令
- 删除命令
dd
删除光标所在当前行内容ndd
删除当前行往下n 行
- 撤销、反撤销
u
撤销上一步的操作ctrl + r
反撤销
服务器之前网络传输速度
先安装iperf-2.1.6-2.el8.aarch64.rpm,再执行要ping的服务器ip对应端口命令。
iperf -c 10.112.4.36 -p 9090 -i 1 -f m -t 100 -P 5
关机命令
sync # 将数据由内存同步到硬盘
shutdown # 关机命令
shutdown -h 10 # 计算机将在10分钟之后关机
shutdown -h now # 立刻关机
shutdown -h 20:00 # 系统指定今天20:00关机
shutdown -h +10 # 10分钟后关机
shutdown -r now # 系统立刻重启
shutdown -r +10 # 系统10分钟后重启
reboot # 重启 等同于shutdown -r now
halt # 关闭系统 等同于shutdown -h now 和 poweroff
无论是重启系统还是关闭系统,首先要运行sync命令,将数据由内存同步到硬盘