Linux命令:设置时间和格式、grep|find命令、>/>>/<输出输入重定向、windows/Linux查看和搜索指定端口、2>&1重定向到标准输出、chmod 777 ugo模式修改权限、lsof、sed按行数或时间截取日志

菜鸟教程 - Linux 命令大全

id 命令:查看当前用户

一、ls

ll -hSr

ll  = ls -l
 
  • -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
  • -R 若目录下有文件,则以下之文件亦皆依序列出

ll -h 按M显示文件大小 -h for human-readable

ll -S 按文件大小显示 size

ll -r 文件名称字典反序(默认升序) reverse

ll -t 时间排序 time

二、date 

 # 设置时间格式

date '+%Y-%m-%d %H:%M:%S'

date +%Y-%m-%d

# 设置时间
date -s 设置时间

  在Windwos中,系统时间的设置很简单,界面操作,通俗易懂。而且设置后,重启,关机都没关系。系统时间会自动保存在Bios的时钟里面,启动计算机的时候,系统会自动在Bios里面取硬件时间,以保证时间的不间断。

  但在Linux下,默认情况下,系统时间和硬件时间,并不会自动同步。在Linux运行过程中,系统时间和硬件时间以异步的方式运行,互不干扰。硬件时间的运行,是靠Bios电池来维持,而系统时间,是用CPU tick来维持的。

  在系统开机的时候,会自动从Bios中取得硬件时间,设置为系统时间。

ntpd与ntpdate修改时间的区别

三、chmod

    方式一:加减号修改权限
 
chmod  mode(u+w)  文件名
        修改文件权限
mode:
rw-r--rw-
User u+r u+w u+x u-r u-w u-x
Group g+r g+w g+x g-r g-w g-x
Other o+r o+w o+x o-r o-w o-x
 
对于文件:
r cat  more  tail
w vi vim >>  >
x ./
对于文件夹:
r ls
w touch  rm
x cd
 
    方式二:数字方式修改权限
 
r---4 2^2
w---2 2^1
x---1 2^0
 
rwx 7
rw- 6
r-x 5
-wx 3
r-- 4
-w- 2
--x 1
--- 0
 
一次性表示的数字
rwxrwxrwx 777
rwxrw-rw- 766
rwxr-xr-x 755
rw-r--r-- 644
 
eg:chmod 755 文件名
 
 
所属用户的修改:
chown
修改文件(文件夹)的所属用户和所属组
chown [-R] 所属用户[:所属组] 文件名(文件夹名)
-R recursive 递归修改文件夹内所有文件的所属用户和所属组

Linux修改权限功能------chmod

https://blog.csdn.net/jerrytomcat/article/details/81744860

 

四、vim

ctrl + F 向上翻页 F是FORWARDS(upwards)
ctrl + B 向下翻页 B是BACKWARDS(downwards)
vi中:help ^F可查看帮助文档
ZQ = :q!  不作保存,强制退出
ZZ = :wq!  强制写入退出
ngg = nG = :n 行数定位
dd 删除当前行
ndd nyy 删除\复制 光标所在向下n行
d1G y1G 到文首
dG yG 到文尾 yy 复制 p 粘贴 u 撤销 ctrl
+r 回退 进入底行模式 /xx 向后查找 ?xx 向前查找 n 继续查找下一个 N 继续查找前一个 Vim尾行模式下使用 :noh 或 :nohlsearch 来关闭当前的高亮结果 :set nu 显示行数 :set nu! 取消行号显示 :set ic(ignorecase 的缩写) 忽略大小写 :set noic(noignorecase 的缩写) 不忽略大小写 /xxx\C 区分大小写 /xxx\c 不区分大小写 vim '+set nu' file 参数显示行号 vim +number file 打开并跳转到number行 :n% 底行命令模式,百分比跳转
:11,22d 删除11-22行 i:insert 在字符之前插入 a:append 在字符之后插入 o:
?outer 在字符的下一行插入
u: (undo)撤销
U: 撤销对整行的操作
ctrl + r : (redo)重做,反撤销

 

vim模式与模式切换

vim在打开文件的时候显示行号(通过添加启动参数的方式)

Vim 常用命令-删除、复制与粘贴

 

五、搜索

1.grep

grep 'xxx' filename -rin

grep: 搜索文件内容中的某一行或某几行
grep 查询内容 文件名   

grep 同时满足多个关键字和满足任意关键字

① grep -E 'word1|word2|word3'   file.txt

   满足任意条件(word1、word2和word3之一)将匹配。

② grep word1 file.txt | grep word2 |grep word3

   必须同时满足三个条件(word1、word2和word3)才匹配。

 
1.作用
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。
 
2.格式
grep [options]
 
3.主要参数
[options]主要参数:
-c:只输出匹配行的计数。
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及 行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\: 忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$: 匹配正则表达式的结束行。
\<:从匹配正则表达 式的行开始。
\>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求 。
[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的单个字符。
* :有字符,长度可以为0。
 
ps -ef|grep java| grep -v grep | awk '{print $n}'  其中的grep -v grep 是为了去除grep进程行 ,避免影响最终数据的正确性 

 

2.find

find  dir  -name '*xx*'

find 查找文件
根据文件名查找
find 目录 -name *文件名*
 
根据文件大小查找
find 目录 -size +1M/-1M
大于1M或小于1M,没有正负号就是等于,一般不可能使用这个
 
根据所属用户查找
find /opt/ -user 用户名
 
根据时间查找
按天查找
atime access
ctime change(所有者、所属组、权限..任何一个被修改)属性被修改过
mtime modify               内容被修改过
 
find /opt/ -mtime -10
 
按分钟查找
amin
cmin
mmin
 
find /opt/ -mmin -10
 
负号表示少于
正好表示大于 

六、压缩

压缩 解压缩
gzip gunzip
tar tar
zip unzip
 
gzip:
1.不能打包
2.不能对目录压缩
3.压缩之后源文件没有了
 
**tar
压缩  tar -zcvf xxx.tar.gz 源文件...
解压缩 tar -zxvf xxx.tar.gz -C 指定目录
 
zip
zip 压缩后的文件名 需要压缩的文件
unzip 压缩文件名
 
1.保留源文件
2.可以对目录压缩  zip -r 压缩后的文件名 目录
 

七、Shell 输入/输出重定向

命令说明
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。

需要注意的是文件描述符 0 通常是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

 
echo "内容" >> 文件名   
 
> 覆盖
 
>> 追加 (使用时注意 >> 符号后一定要有空格,否则效果将是覆盖)

清空文件内容的5中方法

1)cat /dev/null > file
/dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。
 2)> file
3): > file
help :
:: :
    空的命令。
    
    没有效果; 此命令不做任何操作。
    
    退出状态:
    总是成功。
4)echo > file
5)echo '' > file

sudo 命令
普通用户使用sudo命令来完成root用户才能执行的命令权限
 

cat/tail/head

【一】从第3000行开始,显示1000行。即显示3000~3999行

cat filename | tail -n +3000 | head -n 1000

【二】显示1000行到3000行

cat filename| head -n 3000 | tail -n +1000

*注意两种方法的顺序

分解:

    tail -n 1000:显示最后1000行
    tail -n +1000:从1000行开始显示,显示1000行以后的
    head -n 1000:显示前面1000行

【三】用sed命令 按行数或时间截取日志

# 查看文件的第5行到第10行。
sed -n '5,10p' filename 

# p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~ 截取日志到part文件中。
sed -n "/2020-10-10 08:00:00/, /2020-10-10 11:00:00/p" nohup.out > part.log
==>
sed -n "/2020-10-10 08:/, /2020-10-10 11:/"p nohup.out > part.log

Linux sed 命令

八、查看端口

1).windows查看端口

# 列出所有系统使用端口

netstat -nao 

# 搜索指定端口

netstat -nao | findstr "8080"

# 根据端口查看进程任务

tasklist | findstr "8080"

参数说明:

netstat --help

显示协议统计信息和当前 TCP/IP 网络连接。

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-x] [-t] [interval]

  -a            显示所有连接和侦听端口。
  -b            显示在创建每个连接或侦听端口时涉及的
                可执行程序。在某些情况下,已知可执行程序承载
                多个独立的组件,这些情况下,
                显示创建连接或侦听端口时
                涉及的组件序列。在此情况下,可执行程序的
                名称位于底部 [] 中,它调用的组件位于顶部,
                直至达到 TCP/IP。注意,此选项
                可能很耗时,并且在你没有足够
                权限时可能失败。
  -e            显示以太网统计信息。此选项可以与 -s 选项
                结合使用。
  -f            显示外部地址的完全限定
                域名(FQDN)。
  -n            以数字形式显示地址和端口号。
  -o            显示拥有的与每个连接关联的进程 ID。
  -p proto      显示 proto 指定的协议的连接;proto
                可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s
                选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个:
                IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
  -q            显示所有连接、侦听端口和绑定的
                非侦听 TCP 端口。绑定的非侦听端口
                 不一定与活动连接相关联。
  -r            显示路由表。
  -s            显示每个协议的统计信息。默认情况下,
                显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;
                -p 选项可用于指定默认的子网。
  -t            显示当前连接卸载状态。
  -x            显示 NetworkDirect 连接、侦听器和共享
                终结点。
  -y            显示所有连接的 TCP 连接模板。
                无法与其他选项结合使用。
  interval      重新显示选定的统计信息,各个显示间暂停的
                间隔秒数。按 CTRL+C 停止重新显示
                统计信息。如果省略,则 netstat 将打印当前的
                配置信息一次。

2).Linux查看端口

方式一:netstat

常用参数:

-a或--all 显示所有连线中的Socket。
-h或--help 在线帮助。。
-l或--listening 显示监控中的服务器的Socket。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。
-t或--tcp 显示TCP传输协议的连线状况。
-u或--udp 显示UDP传输协议的连线状况。
--ip或--inet 此参数的效果和指定"-A inet"参数相同。

# 列出所有TCP、UDP和监听端口
netstat -tlunp

# 显示系统端口使用情况(所有)
netstat -anp
# 显示UDP、TCP类型的端口
netstat -unpl/tnpl

# 搜索指定端口,查看3306端口的连接客服端ip
netstat -anp | grep 3306

 

方式二:lsof

lsof (lists openfiles)

列出所有的网络连接
lsof -i

列出所有tcp 网络连接信息
lsof  -i tcp

列出所有udp网络连接信息
lsof  -i udp

列出谁在使用某个端口
lsof -i :3306

列出谁在使用某个特定的udp端口
lsof -i udp:55

特定的tcp端口
lsof -i tcp:80
other:firewall-cmd --list-ports
# 开端口命令:
## 打开单个端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
## 打开多个端口
firewall-cmd --zone=public --add-port=20000-29999/tcp --permanent
--permanent  为永久生效,不加为单次有效(重启失效)

# 查看开启端口:
netstat -ntlp 或:firewall-cmd --list-ports

# 关闭端口命令:
firewall-cmd --zone= public --remove-port=80/tcp --permanent

# 查看端口是否打开
firewall-cmd --zone= public --query-port=80/tcp

 

3).Linux根据进程找端口

#端口找进程ID
lsof -i :3006

# 进程ID找端口
netstat -anp | grep 9350

lsof -i | grep 9350

 

 

100.其他

1.错误日志重定向到标准日志输出

nohup java -jar name.jar >>logname.log  2>&1 &
-- 以dev模式启动
nohup java -jar name.jar   --spring.profile.active=dev 2>&1 &

解释如下:

2>
表示把标准错误(stderr)重定向,标准输出(stdout)是1。

尖括号后面可以跟文件名,或者是&1, &2,分别表示重定向到标准输出和标准错误。

2> &1
1> &2
2> stderr.log
1> stdout.log 

https://blog.csdn.net/thxiong1234/article/details/85623448

1.1 linux下运行jar包的命令

1、java -jar xxxxx.jar // 当前xshell窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出

2、java -jar xxxxx.jar & //当前shell窗口不被锁定,但是当窗口关闭时,程序中止运行。

3、nohup Java -jar xxxxxx.jar & //意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行

linux下运行jar包命令

 2.curl

Linux查看外网地址

curl ident.me
curl cip.cc

 curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。

不带有任何参数时,curl 就是发出 GET 请求。

-d参数用于发送 POST 请求的数据体。

http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

3.xargs

xargs 可以将管道或标准输入(stdin)数据转换成命令行参数

args 默认的命令是 echo。

它能够捕获一个命令的输出,然后传递给另外一个命令。

之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令

http://www.ruanyifeng.com/blog/2019/08/xargs-tutorial.html

...

 4.Linux 查看磁盘空间

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

du (英文全拼:disk usage)命令用于显示目录或文件的大小。

du 会显示指定的目录或文件所占用的磁盘空间。

df -hl:查看磁盘剩余空间 [Human-readable]
df -hl . : 查看当前路径所在的空间信息
df -h:查看每个根路径的分区大小
du -sh [目录名]:返回该目录的大小
du -sm [文件夹]:返回该文件夹总M数
du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)
du -sm * | sort -nr   :显示文件大小 并排序,单位M
free -h : 显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等

Linux sort命令

 

...

 
posted @ 2020-01-15 19:57  毁乐乖狂,自有诪张  阅读(618)  评论(0编辑  收藏  举报