Linux 常用操作命令大全及参数详解

Linux命令目录

一.文件命令

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	Inode33835682    硬链接: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位

标识含义权限
rread读取权限
wwrite写权限
xexecute执行权限

第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

未完待更~~~~~

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
### 回答1: Linux系统下有很多命令,每个命令都有其特定的功能和用法。掌握Linux命令可以提高工作效率,下面我们来介绍一些常用Linux命令及其详解。 1. ls命令 ls命令用于查看当前目录的文件列表。该命令不需要参数即可使用,使用ls -l选项可显示更多信息,使用ls -a可以显示隐藏文件。 2. cd命令 cd命令用于切换当前目录。例如,使用cd /usr/local将当前目录切换到/usr/local目录下。 3. cp命令 cp命令用于复制文件和目录。例如,使用cp file1 file2将file1复制到file2。 4. mv命令 mv命令用于移动文件或重命名文件。例如,使用mv file1 file2将file1移动到file2。 5. rm命令 rm命令用于删除文件。例如,使用rm file1将file1删除,使用rm -r directory将directory目录和其子目录下的所有文件删除。 6. mkdir命令 mkdir命令用于创建目录。例如,使用mkdir new_dir将在当前目录下创建一个名为new_dir的目录。 7. rmdir命令 rmdir命令用于删除空目录。例如,使用rmdir empty_dir将empty_dir目录删除。 以上是Linux系统中常用命令之一,掌握这些命令可以更好地操作Linux系统并提高工作效率。当然,Linux系统中还有很多其他有用的命令,我们可以通过man命令或者参考相关资料学习和掌握这些命令。 ### 回答2: Linux是一种开源的操作系统,因其稳定性、安全性和可靠性等特点,越来越受到用户的欢迎。想要学习和掌握Linux系统,对常用命令进行熟练运用是必不可少的。本文介绍了一份Linux常用命令大全及其详解doc,让我们一起来看看吧。 该文档包括了Linux中最常用命令,如文件和目录的操作、文本文件的编辑、权限的管理、系统服务的管理、网络的配置和管理等等。每个命令都详细介绍了其用法和功能,并且附有实例说明,便于用户理解和掌握。此外,文档还对一些命令的使用技巧和常见问题进行了讲解,帮助用户避免一些误区和不必要的烦恼。 比如,文档中介绍了chmod命令用于改变文件或目录的权限,并详细阐述了其语法和参数的含义。同时,文档还提供了一些实例说明,如如何给一个目录设为只读或写入权限等。 此外,文档还讲解了系统服务的管理命令,如启动和停止服务、重启服务等。这些命令Linux系统中非常重要,用户需要熟练运用才能保证系统稳定运行和服务的正常使用。 总之,这份Linux常用命令大全及其详解doc非常实用,可以为用户提供快速掌握Linux命令的绝佳工具。无论是初学者还是有经验的用户,都可以从中受益匪浅。 ### 回答3: Linux常用命令大全及其详解doc是一份非常有价值的文档,它包含了Linux系统中的大量命令及其详细解释。文档分为多个章节,涵盖了文件管理、进程管理、系统管理、网络管理等多个方面。下面简要介绍一下其中一些章节的内容。 文件管理:介绍Linux文件系统中经常使用的命令,如ls、cd、cp、mv、rm等。其中每个命令都有详细的介绍和示例。 进程管理:介绍Linux系统中进程管理相关的命令,如ps、top、kill、pkill等。每个命令都解释了其用途和常见的选项,帮助用户了解如何监视和管理进程。 系统管理:介绍Linux系统管理相关的命令,如date、uname、df、du、mount等。这些命令可以帮助用户了解系统的状态、磁盘空间情况等。 网络管理:介绍Linux网络管理相关的命令,如ping、traceroute、ifconfig、netstat等。这些命令可以帮助用户了解网络连接状态、IP地址、网络接口等信息。 文档中涵盖了大量的命令和相关介绍,对于想要学习Linux系统操作和管理的用户来说,是一份非常有价值的文档。同时,在日常使用Linux时,这份文档也可以作为一个非常方便的工具和参考资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只可爱的委屈翁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值