1.帮助命令
1.help [ root@localhost /]
2.man [ root@localhost /]
1.查看命令的信息和参数 2.man
是在程序安装时安装的帮助文档 3.程序的man帮助文档可能存在多个
CP( 1 ) User Commands CP( 1 )
NAMEcp - copy files and directories
SYNOPSIScp [ OPTION] .. . [ -T] SOURCE DESTcp [ OPTION] .. . SOURCE.. . DIRECTORYcp [ OPTION] .. . -t DIRECTORY SOURCE.. .
DESCRIPTIONCopy SOURCE to DEST, or multiple SOURCE( s) to DIRECTORY.Mandatory arguments to long options are mandatory for short options > too.
3.info [ root@localhost /]
2.开关机命令
1.halt
[ root@localhost /]
2.reboot
[ root@localhost /]
3.shutdown # 用于安全关闭Linux 系统
[ root@localhost / ] # shutdown now
4.poweroff # 关闭计算器并切断电源,实际上是调用shutdown - P 命令
[ root@localhost / ] # shutdown now
4.init 1.init
是所有进程的祖先,其进程号始终为1 2.init
用于切换系统的运行级别,切换是立即完成的 3.init 0
命令用于立即将系统运行级别切换为0,即关机 4.init 6
命令用于将系统运行级别切换为6,即重新启动。
3.输出命令
1.echo
1.显示普通字符串 echo "It is a test"
双引号可省略
echo It is a test
2.显示转义字符 echo "\" It is a test\" "
双引号可省略
echo \ "It is a test\ "
3.显示变量 #!/bin/sh
read name
echo "$name It is a test"
[ root@www ~]
OK
OK It is a test
4.显示换行 echo -e "OK! \n "
echo "It is a test"
OK! It is a test
5.显示不换行 #!/bin/sh
echo -e "OK! \c "
echo "It is a test"
OK! It is a test
6.显示结果定向至文件 echo "It is a test" > myfile
7.原样输出字符串,不进行转义或取变量(用单引号) echo '$name \" '
$name \ "
8.显示命令执行结果 echo ` date `
注意: 这里使用的是反引号 `, 而不是单引号 '
Thu Jul 24 10 :08:46 CST 2014
2.printf 转义字符 说明 \a 警告字符,通常为ASCII的BEL字符 \b 后退 \c 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略 \f 换页(formfeed) \n 换行 \r 回车(Carriage return) \t 水平制表符 \v 垂直制表符 \ 一个字面上的反斜杠字符 \ddd 表示1到3位数八进制值的字符。仅在格式字符串中有效 \0ddd 表示1到3位的八进制值字符
printf format-string [ arguments.. .]
format-string
: 为格式控制字符串arguments
: 为参数列表
1.格式化输出 #!/bin/bash printf "%-10s %-8s %-4s\n " 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n " 郭靖 男 66.1234
printf "%-10s %-8s %-4.2f\n " 杨过 男 48.6543
printf "%-10s %-8s %-4.2f\n " 郭芙 女 47.9876
姓名 性别 体重kg
郭靖 男 66.12
杨过 男 48.65
郭芙 女 47.99
#!/bin/bash
printf "%d %s\n " 1 "abc"
printf '%d %s\n ' 1 "abc"
printf %s abcdef
printf %s abc defprintf "%s\n " abc defprintf "%s %s %s\n " a b c d e f g h i j
printf "%s and %d \n "
1 abc
1 abc
abcdefabcdefabc
def
a b c
d e f
g h i
j
and 0
$ printf "a string, no processing:<%s>\n " "A\n B"
a string, no processing:< A\ nB> $ printf "a string, no processing:<%b>\n " "A\n B"
a string, no processing:< A
B> $ printf "www.runoob.com \a "
www.runoob.com $
1.%s %c %d %f
都是格式替代符 2.%s
输出一个字符串 3.%d
整型输出 4.%c
输出一个字符 5.%f
输出实数,以小数形式输出 6.%-10s
指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来 7.%-4.2f
指格式化为小数,其中 .2 指保留2位小数
4.网络命令
1.ping
ping [ 选项] 目标主机( IP地址/域名)
[ root@localhost /]
PING www.a.shifen.com ( 180.101 .51.73) 56 ( 84 ) bytes of data.
64 bytes from 180.101 .51.73 ( 180.101 .51.73) : icmp_seq = 1 ttl = 52 time = 10.3 ms
64 bytes from 180.101 .51.73 ( 180.101 .51.73) : icmp_seq = 2 ttl = 52 time = 9.78 ms
64 bytes from 180.101 .51.73 ( 180.101 .51.73) : icmp_seq = 3 ttl = 52 time = 8.97 ms
64 bytes from 180.101 .51.73 ( 180.101 .51.73) : icmp_seq = 4 ttl = 52 time = 11.1 ms--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0 % packet loss, time 6030ms
rtt min/avg/max/mdev = 8.977 /10.058/11.147/0.789 ms
2.ip
[ root@localhost /]
4.ifconfig
[ root@localhost /]
-bash: ifconfig: 未找到命令
2.dhclient
[ root@localhost /]
5.netstat netstat [ 选项] 选项:
-a或–all :显示所有连线中的Socket
-A< 网络类型> 或–< 网络类型> :列出该网络类型连线中的相关地址
-c或–continuous :持续列出网络状态
-C或–cache :显示路由器配置的快取信息
-e或–extend :显示网络其他相关信息
-F或–fib :显示FIB
-g或–groups :显示多重广播功能群组组员名单
-h或–help :在线帮助
-i或–interfaces :显示网络界面信息表单
-l或–listening :显示监控中的服务器的Socket
-M或–masquerade :显示伪装的网络连线
-n或–numeric :直接使用ip地址,而不通过域名服务器
-N或–netlink或–symbolic :显示网络硬件外围设备的符号连接名称
-o或–timers :显示计时器
-p或–programs :显示正在使用Socket的程序识别码和程序名称
-r或–route :显示Routing Table
-s或–statistice :显示网络工作信息统计表
-t或–tcp :显示TCP传输协议的连线状况
-u或–udp :显示UDP传输协议的连线状况
-v或–verbose :显示指令执行过程
-V或–version :显示版本信息
-w或–raw :显示RAW传输协议的连线状况
-x或–unix :此参数的效果和指定"-A unix" 参数相同
–ip或–inet :此参数的效果和指定"-A inet" 参数相同
netstat -a
netstat -at
netstat -au
netstat -l
netstat -lt
netstat -lu
netstat -lx
netstat -pt
netstat -an
netstat -c
netstat -r
netstat -tunlp | grep ssh
netstat -an | grep ":80" 或 netstat -tunlp | grep ":3306"
netstat -tunlp | grep 3306 | awk '{print $7 }' | cut -d/ -f1
netstat -i
netstat -n | awk '/^tcp/{++S[$NF ]}END{for(i in S) print i,S[i]}'
1.显示正在侦听的所有 TCP
或 UDP
端口,包括使用端口和套接字状态的服务,一般用于检验本机各端口的网络连接情况 2.TCP
连接状态详解 1.LISTEN
: 侦听来自远方的TCP端口的连接请求 2.SYN-SENT
: 再发送连接请求后等待匹配的连接请求 3.SYN-RECEIVED
:再收到和发送一个连接请求后等待对方对连接请求的确认 4.ESTABLISHED
: 代表一个打开的连接 5.FIN-WAIT-1
: 等待远程TCP连接中断请求,或先前的连接中断请求的确认 6.FIN-WAIT-2
: 从远程TCP等待连接中断请求 7.CLOSE-WAIT
: 等待从本地用户发来的连接中断请求 8.CLOSING
: 等待远程TCP对连接中断的确认 9.LAST-ACK
: 等待原来的发向远程TCP的连接中断请求的确认 10.TIME-WAIT
: 等待足够的时间以确保远程TCP接收到连接中断请求的确认 11.CLOSED
: 没有任何连接状态
6.nc nc [ -hlnruz] [ -g< 网关.. .> ] [ -G< 指向器数目> ] [ -i< 延迟秒数> ] [ -o< 输出文件> ] [ -p< 通信端口> ] [ -s< 来源位址> ] [ -v.. .] [ -w< 超时秒数> ] [ 主机名称] [ 通信端口.. .] -g< 网关> 设置路由器跃程通信网关,最多可设置8个
-G< 指向器数目> 设置来源路由指向器,其数值为4的倍数
-h 在线帮助
-i< 延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口
-l 使用监听模式,管控传入的资料
-n 直接使用IP地址,而不通过域名服务器
-o< 输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存
-p< 通信端口> 设置本地主机使用的通信端口
-r 乱数指定本地与远端主机的通信端口
-s< 来源位址> 设置本地主机送出数据包的IP地址
-u 使用UDP传输协议
-v 显示指令执行过程
-w< 超时秒数> 设置等待连线的时间
-z 使用0输入/输出模式,只在扫描通信端口时使用
监听端口号并向指定端口发送字符串消息数据
yum install nc
yum install -y net-tools
yum install -y telnet
nc -lk 9999
netstat -anpt | grep 9999
telnet ip 9999
7.ss ss [ 选项] 选项:
-a, --all 列出所有的socket
-h, --help 帮助信息
-V, --version 展示版本信息
-n, --numeric 不解析服务名称
-r, --resolve 解析主机名
-l, --listening 显示监听的socket,列出所有打开的网络连接端口
-o, --options 显示定时器信息
-e, --extended 显示socket的详细信息
-m, --memory 显示socket内存使用情况
-p, --processes 显示使用socket的进程
-i, --info 显示内部TCP信息
-s, --summary 显示socket使用情况摘要-4, --ipv4 只显示IP版本4的socket
-6, --ipv6 只显示IP版本6的socket
-0, --packet 显示包socket
-t, --tcp 只显示TCP类型的socket
-u, --udp 只显示UDP类型的socket
-d, --dccp 只显示DCCP类型的socket
-w, --raw 只显示RAW类型的socket
-x, --unix 只显示Unix域socket
-f, --family= FAMILY 显示FAMILY类型的socket-A, --query= QUERY, --socket= QUERYQUERY := { all| inet| tcp| udp| raw| unix| packet| netlink} [ ,QUERY] -D, --diag= FILE 将TCP套接字的原始信息转储到FILE
-F, --filter= FILE 从文件中读取过滤器信息FILTER := [ state TCP-STATE ] [ EXPRESSION ] 例:
ss -nlt
1.ss(socket statistics)
:获取socket
统计信息,内容类似netstat
,但更详细更快
8.curl
5.日期命令
1.date # 显示当前系统时间
[ root@localhost ~ ] # date
2022 年 10 月 21 日 星期五 19 : 27 : 26 CST
# 显示年月日时分秒
[ root@localhost ~ ] # date '+%F %T'
2022 - 10 - 21 19 : 29 : 43
6.清屏命令
1.clear
[ root@localhost /]
2.reset
[ root@localhost /]
7.终止命令 1.Ctrl+c
和Ctrl+z
都是中断命令 2.ctrl+c
是强制中断程序的执行(终止) 3.ctrl+z
是将任务中止(暂停), 4.可以使用fg/bg
操作继续前台或后台的任务 5.fg
命令重新启动前台被中断的任务 6.bg
命令把被中断的任务放在后台执行 7.ctrl+d
不是发送信号,而是表示一个特殊的二进制值,表示 EOF
8.shell
中,ctrl+d
表示退出当前shell.
8.查看历史命令
1.上下箭头
2.history 1.查看历史命令 2.历史命令一般存放在~/.bash_history
中 3.只有当正常登陆退出之后系统才会将缓存中的命令写入文件 4.历史命令最多可以保存1000条,可以在/etc/profile
中进行修改,修改后执行source /etc/profile
使环境变量生效 5.使用“!n”重复执行第n
条历史命令 6.使用“!!”重复执行上一条命令 7.使用“!字串”重复执行最后一条以该字串开头的命令
9.自动补全命令
10.目录命令
1.pwd(print work directory)
[ root@localhost home]
/home
2.cd(change directory)
[ root@localhost home]
3.ls(list files)
[ root@localhost home]
test2.txt test.txt
[ root@localhost ~]
.
[ root@localhost ~]
. .bash_history .bash_profile .cshrc .oracle_jre_usage .tcshrc
.. .bash_logout .bashrc .mysql_history .rediscli_history .viminfo
[ root@localhost home]
. .. test2.txt test.txt
[ root@localhost home]
总用量 8
-rw-r--r--. 1 root root 15 10 月 22 12 :35 test2.txt
-rw-r--r--. 1 root root 836 10 月 22 12 :59 test.txt
[ root@localhost home]
总用量 8
drwxr-xr-x. 2 root root 39 10 月 22 12 :59 .
dr-xr-xr-x. 17 root root 224 10 月 21 18 :13 ..
-rw-r--r--. 1 root root 15 10 月 22 12 :35 test2.txt
-rw-r--r--. 1 root root 836 10 月 22 12 :59 test.txt
[ root@localhost home]
test2.txt test.txt
4.mkdir(make directory) [ root@localhost home]
[ root@localhost home]
test test2.txt test.txt
[ root@localhost home]
[ root@localhost home] mkdir -m 711 test2
5.rmdir(remove directory) 1.删除一个空的目录(-p
:从该目录起,一次删除多级空目录) 2.rmdir
仅能删除空的目录,你可以使用 rm
命令来删除非空目录
6.tree tree [ -aACdDfFgilnNpqstux] [ -I < 范本样式> ] [ -P < 范本样式> ] [ 目录.. .] -a 显示所有文件和目录。
-A 使用ASNI绘图字符显示树状图而非以ASCII字符组合。
-C 在文件和目录清单加上色彩,便于区分各种类型。
-d 显示目录名称而非内容。
-D 列出文件或目录的更改时间。
-f 在每个文件或目录之前,显示完整的相对路径名称。
-F 在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*" ,"/" ,"=" ,"@" ,"|" 号。
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码。
-i 不以阶梯状列出文件或目录名称。
-L level 限制目录显示层级。
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录。
-n 不在文件和目录清单加上色彩。
-N 直接列出文件和目录名称,包括控制字符。
-p 列出权限标示。
-P< 范本样式> 只显示符合范本样式的文件或目录名称。
-q 用"?" 号取代控制字符,列出文件和目录名称。
-s 列出文件或目录大小。
-t 用文件和目录的更改时间排序。
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码。
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外
11.文件命令
1.touch
[ root@localhost home]
[ root@localhost home]
frist.txt test test2.txt test.txt
2.rm
[ root@localhost home]
rm:是否删除普通空文件 "frist.txt" ?y
[ root@localhost home]
test test2.txt test.txt
[ root@localhost home]
rm:是否进入目录"test" ? y
rm:是否进入目录"test/spring" ? y
rm:是否删除目录 "test/spring/springboot" ?y
rm:是否删除目录 "test/spring" ?y
rm:是否删除目录 "test" ?y
[ root@localhost home]
[ root@localhost home]
test2.txt
[ root@localhost home]
3.cp
[ root@localhost home]
[ root@localhost home]
test1.txt test2.txt
[ root@localhost home]
test springmvc
[ root@localhost home]
[ root@localhost home]
test test1.txt test2.txt
[ root@localhost home]
[ root@localhost home]
test test1.txt test2.txt
[ root@localhost home]
[ root@localhost test]
test1.txt
[ root@localhost home]
[ root@localhost home]
4.mv [ root@localhost home]
[ root@localhost home]
test test1.txt test2
[ root@localhost home]