Linux常用命令

man 命令 查看有关命令的帮助信息;例如:man ps --查看ps命令

显示系统时间:date+'%Y-%m-%d-%H-%M-%S'

设置系统时间:date -s

设定日期:date -s 20210610

设定时间:date -s 22:10:10

设定日期和时间:date -s "20210610 10:11:12"

ls -a 查看所有文件  包括隐藏文件

ls -l 以列表形式展示

netstat -nap|grep LISTEN|grep 端口号

unzip -oq smifc91115.zip -d  ./

zip -r 压缩包名.zip  ./文件名  (zip -r sifc_0804.zip ./sifc)

复制文件:cp 原路径 目标路径

复制文件夹及所包含的所有子文件及子文件夹:cp -r 原路径 目标路径

cp重命名:cp 原文件名 现文件名

scp -r root@10.10.64.208:/home/web/domain_8012/autodeploy/smifc91115.zip  ./

scp -r root@10.10.64.204:/opt/cwy8.30  ./

移动文件:mv /home/file1 /tmp  将file1文件/文件夹到/tmp路径下

mv f1 f2 d1 /tmp  同时移动f1 f2 d1 到/tmp路径下

mv重命名:mv f1 f2

mv /home/f1 /tmp/f2 把home路径下的f1 移动到tmp路径下,名字改为f2

创建文件夹:mkdir 名称

创建多层目录:mkdir -p 创建多次目录  例:mkdir -p test/test1/test2

删除一个空目录:rmdir

删除一个文件:rm -f 名称

强制删除一个目录及目录中所有文件和子目录:rm -rf 包名

vi/vim:

命令模式:

G:移动到文件最后一行行首

gg:移动到文件的开头

按0或^:光标移动到所在行的行首

按$:光标移动到所在行的行尾

按ctrl+f往下翻一页

按ctrl+b往上翻一页

dd: 删除光标所在行

3dd:表示删除光标所在位置下3行,包括光标所在行

yy 复制光标所在行

p 粘贴

u 撤销操作

插入模式:

i--在当前位置编辑

a--从下一个字符编辑

o--新增一行开始编辑

底线模式:

:w 文件名(将文件另存为该名字的文件)

:q! 强制退出

:wq 保存后退出

:set number 显示行数

:set nonumber 不显示行数

通配符一般用来匹配文件名

*代表任意字符

?代表一个字符

[] 匹配指定字符范围内的任意单个字符

[^] 匹配指定字符范围外的任意单个字符

    g* 以g为开头的文件

    b*.txt以b开头,.txt结尾的文件

    data??? 以data开头,后面跟着3个字符的文件

    [a,b,c]* 文件名以a或者b或者c开头的文件

    [^a,b,c]* 文件名不是a或者b或者c开头的文件

which命令:查询某个命令的完整路径

例子:which rm  查看rm命令所在的路径

find命令

格式: find 查找的路径 条件

-name 以名字为条件查找

-type 以文件类型为条件查找

-type f 一般文件

-type d 目录

    find /temp –name "abc"  查找名字是abc

    find /temp –name "abc*"  查找名字开头是abc

    find /temp  -name "abc*" –type f  查找名字开头是abc,且类型是文件的

grep命令

文本内容搜索工具

一般在查文件内容中关键字使用,同时也可以针对查询结果使用。

    grep "test" d*  查询所有以d为开头的文件中,包含字符串test的行

    grep "test" aa bb cc     查询aa bb cc 文件中包含字符串test的行

    grep  "root"  -r  /var/log  在目录下所有子目录下的文件中搜索包含字符串root的行

    grep "^test"  /var/log/scp.log  在scp.log 中搜索以字符串“test”开头的行

-c:只输出匹配行的行数。

-i:不区分大小写。

-n:显示匹配行及行号。

-v:显示不包含匹配文本的所有行

-F:指明pattern非正则表达式 (等同于fgrep命令),指查找条件中的条件视作字符串,忽视正则表达式。

常用的正则:

^ 锚定行首

$ 锚定行尾

.* 匹配所有字符

例子 grep "^test.*end$" scp.log 在scp.log文件中搜索以字符串test为开头,end为结尾的行。

*  // 匹配前面的字符0次到n次

\? // 匹配前面的字符0次到1次

\+  // 匹配前面字符1次到n次

\{m\}  // 匹配前面的一个字符m次

\{m,n\}  // 匹配前一个字符m到n次

\{0,n\}  // 匹配前面的字符0次到n次(0必须加)

wc 命令

统计文件内容

    wc -l 统计文件的行数

    wc -c 统计文件的字节数

    wc -m 统计字符数

du命令

查看文件和目录的磁盘使用空间

    du -s  显示整个文件大小

    du -h  显示分区使用情况

    一般连用 du -sh

df命令

    查看系统文件系统使用空间

文件链接

创建链接:

ln -s 源文件路径 链接路径

注意源文件路径要写全,最好写绝对路径,好让非同路径下的链接文件可以正确指向源文件。

useradd test 创建一个用户

文件权限分3种,读取,写入,执行。

r,读取权限

    针对文件:具有读取文件的权限

    针对文件夹:能查看文件夹里面的内容,比如用ls查看目录

w,写入权限

    针对文件: 具有写文件的权限

    针对文件夹:可以删除和创建文件夹下面的文件

x,执行权限

    针对文件: 具有执行的权限

    针对目录: 能够进入该目录如cd命令,文件夹的读写权限依赖于执行权限,所以一般读写权限和执行权限绑定,不单独管理。

对于目录来说

    单独拥有读权限就可以ls查看目录内容 但是不能cd 切换进目录中去

    单独拥有写权限 什么也干不了 既不能ls 查看目录内容,也不能切换进目录中去 更不能创建目录或文件

    单独拥有执行权限 可以cd切换进目录,但是不能ls 查看目录内容和创建文件或者目录

    拥有读 执行的权限,可以ls查看目录内容 可以cd切换进目录中去

    拥有写 执行的权限 可以cd切换进目录,可以创建文件或者目录

    拥有读写的权限 可以ls 查看目录内容,不能切换进目录中去 也不能创建目录或文件

对于文件来说

    单独拥有读权限就可以cat查看文件内容

    单独拥有写权限 可以往文件中添加内容 只是不能查看添加的内容

    单独拥有执行权限 如果文件是二进制文件可以执行该文件

    拥有读 执行的权限,可以cat查看文件内容和执行该文件,但是不可以往文件中添加内容

    拥有写 执行的权限 不能cat查看文件内容,但是可以往文件中添加内容和执行该文件

    拥有读写的权限 可以cat查看文件内容,也可以往文件中添加内容

文件的用户分3种拥有者,所属的组,其他用户

owner,文件的所有者

group, 文件所属的组

other,其他用户,非拥有者和组成员

all,所有用户

chmod命令:改变文件权限的命令

只有文件拥有者和root用户可以使用

使用+来增加权限:

    chmod u+x 文件名 给文件的拥有者增加执行权限

    chmod g+wr 文件名 给文件的组成员增加读写权限

    chmod o+x 文件名  给文件的其他成员增加执行权限

    chmod a+wrx 文件名 给所有用户增加全部权限

    chmod u=rwx,g=wr 文件名  同时针对不同的用户分配权限

使用-来取消权限

    chmod u-wx 文件名 取消拥有者的写入和执行权限

使用=来变动权限

    不管拥有者之前是什么权限,使用=相当于用目前的权限覆盖之前的权限

    chmod u=rw 文件名 给文件拥有者 读写执行的权限

使用数字来赋权

    r =4

    w =2

    x =1

chmod 777 文件名 给文件所有用户赋予全部权限

权限判断的顺序  拥有者到组到其他,所以一个文件拥有者有读取权限,组成员没有,如果你是拥有者同时

也是组成员,那么你可以读取,如果一个文件组成员有读取权限,拥有者没有,如果你是拥有者同时

也是组成员,那么你不可以读取。

chown命令

    改变文件的拥有者和组

    只有root用户可以使用

    chown  jack  test1 把文件test1的拥有者变更为jack

    chown jack:jack test1 把文件test1的拥有者变更为jack,所属组变更为jack组

chgrp命令

    改变文件的所属组

    root和拥有者可以使用,拥有者只能把文件改到自己所属的组

    chgrp jack test1 把文件test1的所属组变更为jack

    chgrp -R jack dirl 把目录dirl下的所有子目录和文件所属组变更为jack

后台运行进程

    使用&符号

    ping 192.168.20.222& --在后台ping这个地址

jobs 列出后台的进程

    ctrl + z 可以将一个正在前台运行的进程放到后台,暂停执行

    fg %num 将后台的进程调到前台运行,num是jobs的编号

    bg %num 将一个后台的暂停的进程变成继续执行

终止进程:

    后台进程我们需要用kill命令去杀死它来终止

    kill pid

    kill -9 pid

    前台进程我们可以使用ctrl +c来终止

标准输入,标准输出,标准错误:

    stdin:标准输入

    stdout:标准输出

    stderr: 标准错误

比如你输入命令 ps -ef 这个就是你的标准输入

命令返回给你结果,这个就是标准输出

如果你输入的是sd,没有sd这个命令,系统会返回给你一个报错信息,这个就是标准错误

通常标准输入对应的是键盘

标准输出和标准错误对应的是屏幕

重定向:

    我们可以通过重定向将标准输出和标准错误重定向到指定的文件中,而不是屏幕上

    ps -ef>test  把ps -ef 的结果输出到test文件中,我们可以查看test文件,发现本该展示在屏幕上的进程信息都在test文件中

    ps -ef>>test 2个>代表了把输出结果追加到文件中,如果一个>是覆盖,会把之前的记录覆盖掉。

注意,ps -ef > test = ps -ef 1> test

因为1代表了标准输出

2代表了标准错误

如果将报错信息输出到文件中:

    sd 2> test  把sd执行的报错结果输出到test文件中

    如果想要同时把标准输出和标准错误 输出到同一文件中: ps -ef > test 2>&1

    如果想分别把标准输出和标准错误输出到不同文件中:ps -ef >test 2>test2

我们也可以通过重定向从文件里读取内容:

    wc -l < test 统计test文件中有多少行

    其实 和 wc -l test 差不多,只不过一个是根据文件来统计,一个是文本内容

    wc -l << end 根据键盘输入的值进行统计,直到你输入end后结束统计,给出统计值

管道符 |

    管道的作用是将管道符前的命令的输出作为管道符后面的命令的输入,连接2个命令

    例子:ps -ef|grep python  把线程中包含python字符串的筛选出来

    可以把错误输出和标准输出同时定向到管道符:

    例子: ps -ef 2>&1|grep err

连续使用管道

    ps -ef|grep python|grep -v grep

工作中最常用的管道符用法

    tail -f test|grep '123456'  动态查询日志时,根据关键字找到自己想要的那条日志

    ps -ef | grep tomcat  找到进程号pid

    netstat -nap | grep pid   根据进程号查找端口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值