Linux命令目录
- 一.文件命令
- 1.1 ls 指令 (含义:列出当前工作目录下的所有文件/文件夹的名称)
- 1.2 cd 指令(改变目录)
- 1.3 mkdir (创建目录与rmdir删除目录)
- 1.4 touch 指令(创建文件)
- 1.5 pwd 命令 (显示目录)
- 1.6 rm 指令 (删除文件夹)
- 1.7 cp 指令(复制文件或目录)
- 1.8 mv (移动文件/目录/改名)
- 1.9 cat 指令(查看文件内容)
- 2.0 more 指令 (查看文件内容)
- 2.1 less 指令(查看文件内容)
- 2.2 head /tail 指令(查看文件头部/尾部内容)
- 2.3 find 指令 (查找文件)
- 2.4 grep (文件内容查找)
- 2.5 find与grep组合使用 (查找文件中的内容)
- 2.6 df 命令 (磁盘空间)
- 2.7 du 命令 (查看文件详细信息)
- 2.8 ln 命令 (软/硬链接)
- 2.9 stat 命令 (查看文件信息)
- 二.系统命令
- 三.系统用户+权限 命令
- 一.系统软件命令
一.文件命令
1.1 ls 指令 (含义:列出当前工作目录下的所有文件/文件夹的名称)
- ls 查看当前目录下的文件列表
[root@localhost ~]# ls
- -l 列出文件的详细信息。
[root@localhost ~]# ls -l
- ls / 查看指定目录下的文件 比如etc
[root@localhost ~]# ls /etc
- ls -la 参数并用
[root@localhost ~]# ls -la
- -a 列出目录下的所有文件,包含 . 开头的隐含文件
[root@localhost ~]# ls -a
- -r 对目录反向排序。
[root@localhost ~]# ls -r
- -d 将目录项文件一样显示,而不是显示其下的文件。 如:ls -d 自定目录
[root@localhost ~]# ls -d 桌面
- -i 输出文件i节点的索引信息。如 ls -ai 指定文件
[root@localhost ~]# ls -ai .bashrc
- -k 以k字节的形式表示文件的大小。ls -alk 指定文件
[root@localhost ~]# ls -alk .bashrc
- -t 以时间排序
[root@localhost ~]# ls -t
- -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
[root@localhost ~]# ls -s
- -R 列出所有子目录下的文件。(递归)
[root@localhost ~]# ls -R
1.2 cd 指令(改变目录)
- cd 目标文件夹 切换到指定文件夹
[root@localhost ~]# cd /etc
- cd - 切换到上一个目录
[root@localhost ~]# cd -
- cd 进入当前用户的家目录
[root@localhost ~]# cd
- cd ~ 进入当前家目录
[root@localhost ~]# cd ~
- cd … 进入上一级目录
[root@localhost ~]# cd ../
1.3 mkdir (创建目录与rmdir删除目录)
- mkdir 文件夹名 在当前位置新建 java文件夹
[root@localhost ~]# mkdir java
- mkdir -p /java/web/文件夹名 在指定目录位置,(递归)创建文件夹,并创建父文件夹
[root@localhost ~]# mkdir -p /java/web/abc
- mkdir -pv /java/web/abc 在指定目录位置,(递归)创建文件夹,并创建父文件夹 并打印创建的文件夹
[root@localhost ~]# mkdir -pv /java/web/abc
mkdir: 已创建目录 "java"
mkdir: 已创建目录 "web"
mkdir: 已创建目录 "abc"
- rmdir 文件夹 删除指定目录 (前提空)
[root@localhost ~]# rmdir java
rmdir: 删除 "java" 失败: 目录非空
1.4 touch 指令(创建文件)
- touch 文件名 当前目录创建该文件
[root@localhost ~]# touch java.txt
- touch /java/java.txt 在指定的java目录 创建文件 java.txt
[root@localhost ~]# touch /java/java.txt
- touch -a java 更改 java Access时间
[root@localhost ~]# touch -a java
- touch -m java : 可以更改 java Modify时间
[root@localhost ~]# touch -m java
- touch -c java 可以更改 java Change时间
[root@localhost ~]# touch -c java
- touch -d “指定日期” java:将文件的日期修改为指定日期
[root@localhost ~]# touch -d "10:09:08" java
- touch -r java1 java 2 将java1的时间设置为java2的时间
[root@localhost ~]# touch -r java1 java 2
1.5 pwd 命令 (显示目录)
- pwd 显示用户当前所在目录
[root@localhost ~]# pwd
- pwd -P 显示当前目录的物理路径
[root@localhost ~]# pwd -P
- pwd -L 显示当前目录的连接路径
[root@localhost ~]# pwd -L
1.6 rm 指令 (删除文件夹)
- rm -f java 即使文件属性为只读(即写保护),亦直接删除 java 文件夹 (慎用)
[root@localhost ~]# rm -f java
- rm -r java 删除 java 文件夹
[root@localhost ~]# rm -r java
- -i 删除前逐一询问确认
[root@localhost ~]# rm -ri java
rm:是否进入目录'java'? y
rm:是否删除普通空文件 'java/java.txt'?y
- rm -rf 文件 强制删除该文件夹及子文件不询问(慎用)
[root@localhost ~]# rm -rf java 不要执行!!
1.7 cp 指令(复制文件或目录)
- cp java.txt /eip/ 把java文件不改名复制到 /eip/ 目录下 (文件不改名复制)
[root@localhost ~]# cp java.txt /eip/
- cp java.txt /eip/tools 把java文件改名复制到 /eip/ 目录下 文件名为 tools (文件改名复制)
[root@localhost ~]# cp java.txt /eip/tools.txt
- cp -r /java/ /eip/ 把java 目录不改名 复制到 /eip/ 目录下 (目录不改名复制)
[root@localhost ~]# cp -r /java/ /eip/
- cp -a 源文件和目标文件的所有属性都一致,包括时间 (默认复制命令的执行时间)
[root@localhost ~]# cp -a java.txt /eip/tools.txt
- cp -l 目标文件会被建立为源文件的硬链接
[root@localhost ~]# cp -l /java/web /eip/job_s
目标文件 /eip/job_s 为源文件的硬链接文件
- cp -s 目标文件会被建立为源文件的软链接
[root@localhost ~]# cp -s /java/web /eip/job_h
目标文件 /eip/job_h 为源文件的软链接文件
1.8 mv (移动文件/目录/改名)
- mv test1.txt test.txt 将目标文件修改为test.txt (修改文件名)
[root@localhost java]# mv test1.txt test.txt
- mv test.txt java 将目标文件移动到java目录 (移动文件)
[root@localhost java]# mv test.txt java
- mv * …/ 把当前目录下文件夹及文件移动到上一级
[root@localhost web]# mv * ../
- mv test.txt test1.txt java 启动多个文件到 java目录中 (移动多个文件)
[root@localhost ~]# mv test.txt test1.txt
mv 其他命令 (补充)
- -b 若需覆盖文件,则在覆盖文件前先进行备份
- -f 强制覆盖,若目标文件已存在同名文件,使用该参数时则直接覆盖而不询问
- -i 若目标文件已存在同名文件,则提示询问是否覆盖
- -u 若目标文件已存在需移动的同名文件,且源文件比较新,才会更新文件
- -t 指定mv的目标目录,改选项使用于移动多个源文件到一个目录的情况,此时目标文件在前,源文件在后
1.9 cat 指令(查看文件内容)
- cat java.txt 查看java.txt文件的内容 (查看文件)
[root@localhost ~]# cat java.txt
- cat -n java.txt 查看java.txt文件的内容,并且由1开始对所有输出行进行 (编号)
[root@localhost ~]# cat -n java.txt
- cat -b java.txt 查看java.txt文件的内容,用法与-n相似,只不过对于空白行 (不编号)
[root@localhost ~]# cat -b java.txt
- cat -s java.txt 当遇到有连续两行或两行以上的空白行,就代换为一行的 (空白行)
[root@localhost ~]#
- cat -e java.txt 在输出内容的每一行后面加一个 ($符号)
[root@localhost ~]#
- cat java1.txt java2.txt 同时显示java1.txt和java2.txt文件内容,注意文件名之间以空格分隔,而不是逗号 (显示多个文件)
[root@localhost ~]# cat java1.txt java2.txt
- cat -n java1.txt>java2.txt 对java1.txt文件中每一行加上行号后然后写入到java2.txt中,会覆盖原来的内容,文件不存在则创建它
[root@localhost ~]# cat -n java1.txt>java2.txt
- cat -n java1.txt>>java2.txt 对java1.txt 文件中每一行加上行号后然后追加到java2.txt中去,不会覆盖原来的内容,文件不存在则创建它
[root@localhost ~]# cat -n java1.txt>>java2.txt
2.0 more 指令 (查看文件内容)
- more +num java.txt 从 (第num 行) 开始显示 start.sh文件
[root@localhost local]# more +5 start.sh
- more -num java.txt (定义屏幕大小),为num行 start.sh文件
[root@localhost local]# more -5 start.sh
- more +/ start.sh 从start.sh (前两行开始显示) start.sh文件
[root@localhost local]# more +/ start.sh
- more -c start.sh 从顶部 (清屏) 然后显示 start.sh文件
[root@localhost local]# more -c start.sh
- more -d 提示Press space to continue, ‘q’ to quit.(按空格键继续,按q键退出),start.sh文件 (禁用响铃功能)
[root@localhost local]# more -d start.sh
- more -l 忽略Ctrl+l ***(start.sh文件 换页)***字符
[root@localhost local]# more -l start.sh
- more -p 通过 (清除窗口) 而不是滚屏来对start.sh文件进行换页。和-c参数有点相似
[root@localhost local]# more -p start.sh
- more -s 把 start.sh文件连续的多个空行 (显示为一行)
[root@localhost local]# more -s start.sh
- more -u 把start.sh文件内容中的 (下划线去掉)
[root@localhost local]# more -u start.sh
2.0.1 more (动作命令)
- Enter 向下n行,需要定义,默认为1行;
- Ctrl+f 向下滚动一屏;
- 格键 向下滚动一屏;
- Ctrl+b 返回上一屏;
- = 输出当前行的行号;
- :f 输出文件名和当前行的行号;
- v 调用vi编辑器;
- ! 命令 调用Shell,并执行命令;
- q 退出more
2.1 less 指令(查看文件内容)
- less -c 从顶部(从上到下)刷新屏幕,并显示 start.sh文件 内容。而不是通过底部 (滚动刷新);
[root@localhost local]# less -c start.sh
- less -f (强制打开文件) ,二进制文件显示时,不提示警告;
[root@localhost local]# less -f start.sh
- less -i 搜索时 start.sh文件 (忽略大小写);除非搜索串中包含大写字母;
[root@localhost local]# less -i start.sh
- less -m 显示读取 start.sh文件 的 (百分比);
[root@localhost local]# less -m start.sh
- less -M 显法读取 start.sh文件 的 (百分比、行号及总行数);
[root@localhost local]# less -M start.sh
- less -N 在每行前 (输出 start.sh文件 行号);
[root@localhost local]# less -N start.sh
- less -p pattern (搜索pattern);比如在 start.sh 搜索单词MAIL,就用 less -p MAIL start.sh
[root@localhost local]# less -p MAIL start.sh
- less -s 把连续多个start.sh文件空白行作为一个 (空白行显示);
[root@localhost local]# less -s start.sh
- less -Q start.sh文件 (终端下不响铃);
[root@localhost local]# less -Q start.sh
2.1.1 less (动作命令)
- 回车键 向下移动一行;
- y 向上移动一行;
- 空格键 向下滚动一屏;
- b 向上滚动一屏;
- d 向下滚动半屏;
- h less的帮助;
- u 向上洋动半屏;
- w 可以指定显示哪行开始显示,是从指定数字的下一行显示;比如指定的是
6,那就从第7行显示;- g 跳到第一行;
- G 跳到最后一行;
- p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示;
- /pattern 搜索pattern ,比如 /MAIL表示在文件中搜索MAIL单词;
- v 调用vi编辑器;
- q 退出less
- !command 调用SHELL,可以运行命令;比如!ls 显示当前列当前目录下的所有文件;
2.2 head /tail 指令(查看文件头部/尾部内容)
2.2.1 head 指令
-c<数目> 显示的字节数。
- head -q (隐藏文件名),在多个文件名的情况下有效
[root@localhost local]# head -q
- head -n 10 显示start.sh的 (前10行)
[root@localhost local]# head -n 10 start.sh
- head -c 显示start.sh的 (前10个字节)
[root@localhost local]# head -c 10 start.sh
- head -n 10 java.txt java.txt 同时查看多个文件的前10行 (默认会显示文件名)
[root@localhost local]# head -n 10 java.txt java.txt
- ls -t | head -n 3 输出当前目录下 (最近使用的3个文件)
[root@localhost local]# ls -t | head -n 3
2.2.2 tail 指令
-c<数目> 显示的字节数。
- tail -q 不显示java.txt 文件的处理信息
[root@localhost local]# tail -q java.txt
- tail -n 10 显示start.sh的 (后10行)
[root@localhost local]# tail -n 10 start.sh
- tail -c 显示start.sh的 (后10个字节)
[root@localhost local]# tail -c 10 start.sh
- tail -n 10 java.txt java.txt 同时查看多个文件的后10行 (默认会显示文件名)
[root@localhost local]# tail -n 10 java.txt java.txt
2.3 find 指令 (查找文件)
2.3.1 (按照文件名搜索)
- 语法: find 搜索路径 -name “文件名关键词”
备注:搜索 /usr/local 目录中的 start.sh
[root@localhost local]# find /usr/local -name start.sh
/usr/local/start.sh
- find -name (根据文件名称) 进行根目录全盘检索 start.sh文件 比较慢 最好指定文件目录
[root@localhost local]# find / -name start.sh
- find -iname 搜索根目录中的 start.sh,(不区分文件名大小);
[root@localhost local]# find / -iname Start.sh
/usr/local/start.sh
- find -inum (按照 inode 号) 搜索。通过ls -i 可以查看文件inode号 唯一的
[root@localhost /]# find -inum 33835682
./usr/local/start.sh
2.3.1.1 (指定文件类型搜索)
-type 类型
f:一般文件
d:目录文件
c:字符设备文件
b:块设备文件
p:管道文件
l :符号链接
s:套接字
譬如 搜索start开头的 字符设备文件
[root@localhost /]# find / -name start* -type c
2.3.2 (按照文件大小搜索)
- v-size[+ | -]n:按照指定大小搜索文件,查找大小大于 +n、小于 -n 或等于 n 的文件。n 代表 512 字节大小的数据块个数。 (默认的单位是K)
- find / -size +30000000 搜索根目录文件 (大于) 30000000K的文件
[root@localhost /]# find / -size +30000000
./proc/kcore
- find / -size -30000000 搜索根目录文件 (小于) 30000000K的文件 备注:太多不列举
[root@localhost /]# find / -size -30000000
2.3.2.1 ( 指定文件单位搜索)
b : 块(512Byte)
c :Byte
w : 字(2Byte)
k :KB
M :MB
G :GB
譬如 在/usr/local查询以start开头大小大于3000字节的一般文件
[root@localhost /]# find /usr/local -name "start*" -type f -size -3000c /usr/local/start.sh
2.3.3 (按照文件修改时间搜索)
修改时间(-mtime(24小时),-mmin(分钟)):文件最后一次修改时间。
变化时间(-ctime(24小时),-cmin(分钟)):文件数据元(例如权限等)最后一
次修改时间。访问时间(-atime(24小时),-amin(分钟)):用户最近一次访问时间。
- find -mtime -1 (一天内修改过的文件) 比如当前时间是2022-04-22 14:00:00,那么 find -mtime -1只能查询到修改时间为[2022-04-21 14:00:00-2022-04-22 14:00:00]的文件
[root@localhost /]# find -mtime -1
- find -mtime 1 (修改时间早于用当前时间) -24小时之前的24小时文件,比如当前时间是2022-04-22 14:00:00,那么find -mtime 1只能查询到修改时间为[2022-04-20 14:00:00到2022-04-21 14:00:00]的文件
[root@localhost /]# find -mtime 1
- -mtime +1 (一天前修改过的文件) 比如当前时间是2022-04-22 14:00:00,那么-mtime +1只能查询到修改时间为2022-04-20 13:59:59之前的文件。
[root@localhost /]# find -mtime +1
备注:变化时间和访问时间同样适用上述时间条件 一般会根据文件进行时间筛选
2.4 grep (文件内容查找)
-v:显示不匹配的文本(排查符合的行)
-i:不区分大小写
-n:显示匹配行及行号
-c:显示匹配的行数
-o:只输出匹配的内容
-w:精确匹配过滤的字符串
- grep “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (包含echo的行)
[root@localhost /]# grep "echo" /usr/local/start.sh
echo "Usage: sh start.sh[start|stop|restart|status]"
#echo "${APP_NAME} is already running.pid=${pid} ."
echo "${APP_NAME} start success"
- grep -v “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (不包含echo的行)
[root@localhost /]# grep -v "echo" /usr/local/start.sh
- grep -n “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (包含echo的行及行号)
[root@localhost /]# grep -n "echo" /usr/local/start.sh
7:echo "Usage: sh start.sh[start|stop|restart|status]"
26:#echo "${APP_NAME} is already running.pid=${pid} ."
29:echo "${APP_NAME} start success"
- grep -c “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (匹配echo字符串的数量)
[root@localhost /]# grep -c "echo" /usr/local/start.sh
3
- grep -o “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (只输出匹配的内容echo)
[root@localhost /]# grep -o "echo" /usr/local/start.sh
echo
echo
echo
- grep -w “echo” /usr/local/start.sh 输出指定目录start.sh文件中 (匹配echo这个单词的行)
[root@localhost /]# grep -w "echo" /usr/local/start.sh
echo "Usage: sh start.sh[start|stop|restart|status]"
#echo "${APP_NAME} is already running.pid=${pid} ."
echo "${APP_NAME} start success"
2.5 find与grep组合使用 (查找文件中的内容)
- 从/usr/local目录 开始查找所有扩展名为 …sh 的文本文件,并找出包含 “echo” 的行
[root@localhost /]# find /usr/local -type f -name "*.sh" | xargs grep "echo"
- 查找/usr/local目录中所有".sh"文件中的含有"echo"字符串的文件
[root@localhost /]# find /usr/local -name "*.sh" | xargs grep -in "echo"
- 查找/usr/local所有".sh"和".log"文件中的含有"echo"字符串的文件
[root@localhost /]# find /usr/local \( -name "*.sh" -or -name "*.log" \) -exec grep -lnr "echo" {} \;
- 查找/usr/local目录中非备份文件的含有"echo"字符串的文件
[root@localhost /]# find /usr/local \( -not -name "*~" \) -exec grep -in "echo" {} \;
2.6 df 命令 (磁盘空间)
- df -a (全部文件) 系统的列表
[root@localhost ~]# df -a
- df -h (方便阅读方式显示)
[root@localhost ~]# df -h
- df -i (显示node信息)
[root@localhost ~]# df -i
- df -k (区块为1024字节)
[root@localhost ~]# df -k
- df -l (只显示本地文件系统)
[root@localhost ~]# df -l
- df -m (区块为1048576字节)
[root@localhost ~]# df -m
- df -P (输出格式为posix)
[root@localhost ~]# df -P
- -T (文件系统类型)
[root@localhost ~]# df -T
2.7 du 命令 (查看文件详细信息)
- du 列出目录下 (所有文件) 和目录的容量大小
[root@localhost ~]# du
- du /usr/local 列出指定目录各文件的大小,并 (显示总大小)
[root@localhost ~]# du /usr/local
136 /usr/local/redis/utils
81836 /usr/local/redis
1439040 /usr/local
- du -h /usr/local 以易读的方式显示容量大小
[root@localhost ~]# du -h /usr/local
136K /usr/local/redis/utils
80M /usr/local/redis
1.4G /usr/local
- du -s 仅显示目录的总大小
[root@localhost ~]# du -s /usr/local
1439040 /usr/local
- du -sh 显示指定目录下每个文件或目录的容量大小,并且以易读方式显示(常用)
[root@localhost ~]# du -sh /usr/local/*
27M /usr/local/bin
88K /usr/local/D:
67M /usr/local/eip
du 命令参数
-a:–all, 列出所有的文件和目录容量大小而不仅仅列出目录容量大小,默认情况只是统计目录的容量大小,参考示例1。
-B:–block-size=SIZE,指定单位大小。
-b:–bytes,以字节为单位列出文件和目录的容量大小。
-c:–total,除了列出文件和目录的容量大小外,列出总的容量大小,参考示例2。
-h:–human-readable,以人们易读的方式(KB,MB,GB)显示容量大小,参考示例3。
–si:和-h参数类似,但是单位换算时是以1000进行换算,而不是1024。
-k:和–block-size=1k类似,以KB为单位。
-m:和–block-size=1m类似,以MB为单位。
-s:–summarize,仅列出总量,而不列出每个目录和文件的大小,参考示例4。
-S:–separate-dirs,和-s参数类似,但是统计时不包含子目录的容量大小。
-max-depth=N:类似于默认情况的du,但是,递归显示时的递归深度小于等于N。如果–max-depth=0,就相当于-s参数,只统计总量而已,参考示例4。如果–max-depth=1,就相当于du -s 目录/*
2.8 ln 命令 (软/硬链接)
- ln -s 给文件创建 (软链接)
[root@localhost local]# ln -s start.sh start
- ln 给文件创建 (硬链接)
[root@localhost local]# ln start.sh start
- ln -sv (给目录创建软链接)
[root@localhost local]# ln -sv /usr/local/eip /usr/web
ln 命令参数
–backup[=CONTROL] 为每个已存在的目标文件创建备份文件
-b 类似–backup,但不接受任何参数
-d -F –directory 创建指向目录的硬链接(只适用于超级用户,而且有不可预知的风险,慎用哦)
-f –force 强行删除任何已存在的目标文件
-n –no-dereference 如果目的地是一个已存在的链接至某目录的符号链接,会将该符号链接当作普通文件处理,先将该已存在的链接备份或删除
-i –interactive 询问是否删除目的地文件
-s –symbolic 创建符号链接而不是硬链接
-t –target-directory=目录 在指定目录中创建链接
-T –no-target-directory 将链接名当作普通文件(在对目录进行符号链接时要用到此选项)
2.9 stat 命令 (查看文件信息)
- stat 查看文件的基本信息
[root@localhost local]# stat start.sh
文件:start.sh
大小:827 块:8 IO 块:4096 普通文件
设备:fd00h/64768d Inode:33835682 硬链接:1
权限:(0777/-rwxrwxrwx) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2022-04-21 18:32:57.325076046 +0800
最近更改:2022-04-19 16:15:24.156498331 +0800
最近改动:2022-04-19 16:15:24.159498360 +0800
创建时间:2022-03-29 17:37:05.962778596 +0800
- stat -f 不显示文件本身的信息,显示文件所在文件系统的信息
[root@localhost local]# stat start.sh
- stat -L (显示符号链接)
[root@localhost local]# stat -L start.sh
- stat -c (自定义输出格式),结尾有换行
[root@localhost local]# stat -c
- stat -t (简洁模式),只显示摘要信息
[root@localhost local]# stat -t start.sh
start.sh 827 8 81ff 0 0 fd00 33835682 1 0 0 1650537177 1650356124 1650356124 1648546625 4096 unconfined_u:object_r:usr_t:s0
二.系统命令
1.1 top 命令 (系统监控)
- top 查看系统监控
[root@localhost ~]# top
- top -d:number代表秒数 默认5秒 刷新一次
[root@localhost ~]# top -d 5
- top -b:以批次的方式执行top
[root@localhost ~]# top -b
- top -b: ‘批量模式’,用来将输出重定向到指定文件,一般配合-n 指定输出几次统计信息
[root@localhost ~]# top -n 3 -b > /tmp/top.tmp
- top -c: 显示产生进程的完成命令
[root@localhost ~]# top -c
- 5.top -p: 指定pid 多个pid以‘逗号’分开,只显示指定pid进程的状态
[root@localhost ~]# top -p 45532
top显示的页面命令
P:以CPU的使用资源排序显示
M:以内存的使用资源排序显示
N:以pid排序显示
T:由进程使用的时间累计排序显示
k:给某一个pid一个信号。可以用来杀死进程
r:给某个pid重新定制一个nice值(即优先级)
q:退出top(用ctrl+c也可以退出top)。
具体的top页面参数信息 请看我这篇----
Linux 史上最全top命令及参数详解
1.2 ip命令
1.1.1 ip地址
- ip addr (查看ip地址)
[root@localhost ~]# ip addr
- sudo ip addr add 192.168.166.100/24 dev eno16777736 ( 设置一个IP) 地址为 192.168.166100
[root@localhost /]# sudo ip addr add 192.168.100/24 dev eno16777736
备注:IP地址要有一个后缀,比如/24。这种用法用于在无类域内路由选择(CIDR)中来显示所用的子网掩码
- ip addr show eno16777736 查看指定的ip地址 (是否生效)
[root@localhost /]# ip addr show eno16777736
- sudo ip addr del 删除刚刚设置的Ip地址 (删除ip)
[root@localhost /]# sudo ip addr del 192.168.100/24 dev eno16777736
1.1.2 路由
- ip route show (列出路由表条目)
[root@localhost ~]# ip route show
default via 192.168.***.2 dev ens33 proto static metric 100
192.168.***.0/24 dev virbr0 proto kernel scope link src 192.168.***.1 linkdown
192.168.***.0/24 dev ens33 proto kernel scope link src 192.168.***.100 metric 100
- ip route get 查看ip对应的 (路由包) 192.168.***
[root@localhost \]# ip route get 192.168.***
- sudo ip route add default via (更改默认路由) 192.168.***.3
[root@localhost \]# sudo ip route add default via 192.168.***.3
1.1.3 显示网络统计数据
- ip -s link 显示不同网络接口的统计数据
[root@localhost \]# ip -s link
- ip -s -s link ls 获取特定网络接口信息***(排查网络故障专用)***
[root@localhost ~]# ip -s -s link ls eno17744430
- ip neighbour (ARP条目)
[root@localhost \]# ip neighbour
- ip monitor all (监控netlink消息)
[root@localhost \]# ip monitor all
- ip route show (激活和停止网络接口)
[root@localhost \]# ip route show
1.3 ping命令
- ping (ip 地址)
[root@localhost \]# ping 192.168.163.1
- ping (网关)
[root@localhost \]# ping -b 192.168.120.1
- ping -c number ping (指定次数)
[root@localhost \]# ping -c 10 192.168.121.100
- ping -c 10 -i 1 (次数限制和时间间隔的ping)
[root@localhost \]# ping -c 10 -i 1 192.168.163.100
- 通过域名ping (公网) 上的站点百度 5次
[root@localhost \]# ping -c 5 www.baidu.com
ping 命令参数
-d 使用Socket的SO_DEBUG功能。
-f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
-n 只输出数值。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程。
-v 详细显示指令的执行过程。
-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
-I 网络界面:使用指定的网络界面送出数据包。
-l 前置载入:设置在送出要求信息之前,先行发出的数据包。
-p 范本样式:设置填满数据包的范本样式。
-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
-t 存活数值:设置存活数值TTL的大小。
1.4 shutdown 指令 (开关机Linux服务器)
- shutdown -r now (关机后重启)
[root@localhost \]# shutdown -r now
- shutdown -h now (关机后不重启)
[root@localhost \]# shutdown -h now
- shutdown -r +10 (10分钟后重启)
[root@localhost \]# shutdown -r +10
- shutdown -r 10:00 (10点钟重启)
[root@localhost \]# shutdown -r 10:00
- shutdown -h +10 (10分钟后关机)
[root@localhost \]# shutdown -h +10
- shutdown -k now ‘The system willreboot’ (仅发出警告) 信件的参数。系统并不会关机
[root@localhost \]# shutdown -k now 'The system willreboot'
shutdown 命令参数
k 并不真正关机而只是发出警告信息给所有用户
r 关机后立即重新启动
h 关机后不重新启动
f 快速关机重启动时跳过fsck
n 快速关机不经过init 程序
c 取消一个已经运行的Shutdown
1.5 reboot 指令 (重启Linux服务器)
- reboot (重启Linux服务器)
[root@localhost \]# reboot
- -d 重新开机时 (不把数据写入记录文件) /var/tmp/wtmp。本参数具有“-n”参数效果;
[root@localhost \]# reboot -d
- -f (强制重新开机),不调用shutdown指令的功能;
[root@localhost \]# reboot -f
- -i 在重开机之前,先 (关闭所有网络界面);
[root@localhost \]# reboot -i
- -n 重开机之前不检查是否有未结束的程序;
[root@localhost \]# reboot -n
- -w:(仅做测试) ,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
[root@localhost \]# reboot -w
1.6 clear 命令–清屏的三种方式
- clear (清屏)
[root@localhost \]# clear
-
ctrl+l (清屏)
-
reset (清屏)
[root@localhost \]# reset
三.系统用户+权限 命令
1.1 用户组
- groupadd 组名 (创建) 组 mysql1
[root@localhost \]# groupadd mysql1
- groupdel 组名 (删除) 组 mysql1
[root@localhost \]# groupdel mysql1
- cat /etc/group | grep -n 组名 (查找系统中的组)
[root@localhost \]# cat /etc/group | grep -n mysql
73:mysqld:x:306:
74:mysql:x:305:
75:mysql1:x:1001:
1.2 用户
- useradd -g 组名 用户名 (创建用户)
[root@localhost \]# useradd -g mysqld wfs
- passwd 用户名 ( 设置密码)
[root@localhost \]# passwd wfs
更改用户 wfs 的密码 。
新的 密码:
- cat /etc/passwd (查找系统账户) /etc/passwd 尾部
[root@localhost \]# cat /etc/passwd
wfs:x:1001:306::/home/wfs:/bin/bash
- su 用户 (切换用户)
[root@localhost \]# su wfs
- userdel -r 用户名 (删除用户)
[root@localhost local]# userdel -r wfs
1.3 权限
- chown 用户名 文件名 修改文件所有者
[root@localhost local]# chown wfs start.sh
- chown :组名 文件名 修改文件所属组
[root@localhost local]# chown :mysqld start.sh
- chown 用户名:组名 文件名 修改文件所属组
[root@localhost local]# chown wfs :mysqld start.sh
- chown [-R] 用户名:组名 文件夹 修改文件夹的所有者和所属组
[root@localhost local]# chown [-R] wfs :mysqld start.sh
- -R:递归设置权限,也就是给子目录中的所有文件设定权限
权限模式的格式:[ugoa][+ - =][perms],即[用户身份][赋予方式][权限]
用户身份:
u——所有者(user)
g——所属组(group)
o——其他人(other)
a——代表全部(all)
赋予方式:
+ ——加入权限 - ——减去权限 = ——设置权限
权限说明:
目前Llinux的权限位有10位,每一位都代表着不同的含义
第1位: 表示文件类型如下:
-普通文件
b 块设备文件
c 字符设备文件
d 目录文件
l(小写L) 软链接文件
p 管道符文件
s 套接字文件
第2~4位
标识 | 含义 | 权限 |
---|---|---|
r | read | 读取权限 |
w | write | 写权限 |
x | execute | 执行权限 |
第5-7位: 文件所属组(用g表示)的权限,同样用rwx表示
第8-10位: 其他人(用o表示)的权限,也用rwx表示
- 针对start.sh这个文件给文件所有者(u)添加执行权限(x)
[root@localhost local]# chmod u+x start.sh
- chmod o-rwx 文件名 给文件的其他人删除所有权限
[root@localhost local]# chmod o-rwx start.sh
- chmod g=wx 文件名 给文件的所属组设置读写权限
[root@localhost local]# chmod g=wx start.sh
权限图
常用的数字权限
数字权限 | 使用场景 | 描述 |
---|---|---|
644 | 文件的基本权限 | 所有者拥有读、写权限,所属组和其他只读 |
755 | 文件的执行权限和目录的基本权限 | 拥有者读、写和执行,所属组和其他人可读写 |
777 | 最大权限 | 所有人都对该文件拥有读写和执行权限 |
- chmod 764 文件名 设置文件的权限为(所有者可读可写可执行,所属组可读可写,其他人可读)
[root@localhost local]# chmod 764 start.sh
一.系统软件命令
1.1 tar 命令 (打/压/解包)
tar 参数说明
参数 | 含义 |
---|---|
z | 操作tar.gz文件需要使用 |
j | 操作tar.bzip2文件使用 |
c | 生成档案文件,创建打包文件 |
x | 解开档案文件 |
v | 列出归档解档的详细过程,显示进度 |
f | 指定档案文件名称,f 后面一定是 .tar 文件,所以必须放选项最后 |
1.1.1 tar文件
- tar -cvf 打包文件.tar 文件路径 (打包成tar文件)
[root@localhost ~]# tar -cvf sysbench-0.4.12.10.tar sysbench-0.4.12.10
- tar -xvf 打包文件.tar (解包tar文件)
tar -xvf sysbench-0.4.12.10.tar
1.1.2 tar.gz文件
- tar -zcvf 打包文件.tar.gz 文件路径 (打包成tar.gz文件)
[root@localhost ~]# tar -zcvf sysbench-0.4.12.10.tar.gz sysbench-0.4.12.10
- tar -zxvf 打包文件.tar.gz (解包tar.gz文件)
[root@localhost ~]# tar -zxvf sysbench-0.4.12.10.tar.gz
1.1.3 tar.bzip2 文件
- tar -jcvf 打包文件.tar.bz2 文件路径 (打包成tar.bzip2 文件)
[root@localhost ~]# tar -jcvf sysbench-0.4.12.10.tar.bz2 sysbench-0.4.12.10
- tar -jxvf 打包文件.tar.bz2 (解包tar.bzip2 文件)
[root@localhost ~]# tar -jxvf sysbench-0.4.12.10.tar.bz2
1.2 systemctl 命令 (服务命令)
以redis为例
- systemctl status 服务名 (查看服务状态)
[root@localhost ~]# systemctl status redis
● redis.service - SYSV: auto_run
Loaded: loaded (/etc/rc.d/init.d/redis; generated)
Active: active (running) since Thu 2022-04-21 15:15:16 CST; 2 days ago
Docs: man:systemd-sysv-generator(8)
Process: 2385 ExecStart=/etc/rc.d/init.d/redis start (code=exited, status=0/SUCCESS)
Tasks: 4 (limit: 15149)
Memory: 13.3M
CGroup: /system.slice/redis.service
└─2387 /usr/local/bin/redis-server 0.0.0.0:6379
- systemctl start 服务名 (启动服务)
[root@localhost ~]# systemctl start redis
- systemctl stop 服务名 (关闭服务)
[root@localhost ~]# systemctl stop redis
- systemctl restart 服务名 (重启服务)
[root@localhost ~]# systemctl restart redis
- systemctl enable 服务名 (允许服务开机启动 )
[root@localhost ~]# systemctl enable redis
- systemctl disable 服务名 (禁止服务开机启动 )
[root@localhost ~]# systemctl disable redis
- systemctl try-restart 服务名 (仅当服务运行的时候重启服务)
[root@localhost ~]# systemctl try-restart redis
1.3 firewalld (防火墙命令)
- systemctl start firewalld (开启防火墙)
[root@localhost ~]# systemctl start firewalld
- systemctl stop firewalld (禁用防火墙)
[root@localhost ~]# systemctl stop firewalld
- systemctl enable firewalld (设置开机启动防火墙))
[root@localhost ~]# systemctl enable firewalld
- (停止并禁用开机启动防火墙))
[root@localhost ~]# sytemctl disable firewalld
- firewall-cmd --reload (重启防火墙)
[root@localhost ~]# firewall-cmd --reload
- firewall-cmd --state (查看防火墙状态)
[root@localhost ~]# firewall-cmd --state
- firewall-cmd --get-active-zones (查看区域信息)
[root@localhost ~]# firewall-cmd --get-active-zones
- firewall-cmd --get-zone-of-interface=eth0 (查看指定接口所属区域信息)
[root@localhost ~]# firewall-cmd --get-zone-of-interface=eth0
- firewall-cmd --panic-on (拒绝所有包)
[root@localhost ~]# firewall-cmd --panic-on
- firewall-cmd --panic-off (取消拒绝状态)
[root@localhost ~]# firewall-cmd --panic-off
- firewall-cmd --query-panic (查看是否拒绝)
[root@localhost ~]# firewall-cmd --query-panic
- (将接口添加到区域(默认接口都在public)) (永久生效再加上 --permanent 然后reload防火墙)
[root@localhost ~]# firewall-cmd --zone=public --add-interface=eth0
- firewall-cmd --set-default-zone=public (设置默认接口区域) (立即生效,无需重启)
[root@localhost ~]# firewall-cmd --set-default-zone=public
- firewall-cmd --reload (更新防火墙规则) (无需断开连接)
[root@localhost ~]# firewall-cmd --reload
- firewall-cmd --complete-reload (更新防火墙规则) (断开连接)
[root@localhost ~]# firewall-cmd --complete-reload
- firewall-cmd --zone=public --list-ports (查看指定区域所有打开的端口)
[root@localhost ~]# firewall-cmd --zone=public --list-ports
- firewall-cmd --zone=public --add-port=80/tcp (在指定区域打开80端口)(需要重启防火墙才能生效)
(永久生效再加上 --permanent)
–zone 作用域
–add-port=8080/tcp 添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp