Linux实用命令

Linux实用命令

关于 Linux 中单双引号的区别:

  • 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;
  • 双引号里可以有变量,双引号里可以出现转义字符
  • 反引号 param = date,命令替换,将命令的标准输出赋值给变量,同 *$(date)

命令返回值

  • 0 :执行成功(即正常执行,并返回预期结果)
  • 非0 :执行失败
  • $? 代表上一个命令执行后的退出状态,也代表调用函数的返回值
  • echo $? 查看返回值

列出当前目录下所有文件

find

在指定目录下查找文件

详细文件信息

-name

文件名

修改时间排序

-iname

文件名,忽略大小写

逆序排列

-type

d 文件夹、f 文件

可读的文件大小格式

常用用法

find . -name “abc”

显示隐藏文件

常用用法

ls -ltr

locate

查找符合条件的文件(查数据库)

updatedb

更新 locate 命令所必需的数据库文件

只查找文件夹

显示执行的详细过程

忽略大小写(默认不忽略)

常用用法

updatedb -v | less

注意事项

如果存在的文件查不到,updatedb

常用用法

locate abc aab (支持多关键词)

chmod

更改文件权限(读 r w 执行 x

chown

更改文件拥有者

777

rwx(r4 w2 x1)拥有者、群组、其他

子目录同样生效

子目录同样生效

user:group

使用者:群组

常用用法

chmod 777 test

常用用法

chown runoob:users file1.txt

diff

比较文件差异

创建文件同步链接,默认硬链接(自动同步的文件)

并列方式展示

创建软链接(快捷方式)

指定宽度(并列方式有效)

常用用法

ln -s a.txt b.txt

常用用法

diff a.txt b.txt -yW 50

less

浏览文件

vi/vim

编辑文件

常用用法

less a.txt

常用用法

vim a.txt

移动文件 / 文件重命名

scp

远程文件拷贝(双向)

覆盖同名文件时不提示

保留原文件的时间和权限等

常用用法

mv aaa bbb

递归复制整个目录,默认是不能复制文件夹的

常用用法

scp root@192.168.1.10:/root/a.txt /tmp/a.txt

删除文件,默认是不能删除目录

拷贝文件,默认不能拷贝目录

递归删除目录内的文件,删除目录

递归拷贝目录内的文件,拷贝目录

从不询问是否删除

从不询问是否覆盖文件

显示删除详情

保留原文件的时间和权限等(常用)

常用用法

rm -rf test

常用用法

cp aaa.txt bbb.txt

tee

把数据 打印到屏幕和文件中,类似 >

touch

刷新文件的时间属性,文件不存在则创建

追加到文件中,类似>>

常用用法

touch aa.txt

常用用法

echo abc | tee aa.log

read

标准输入(控制台输入),默认回车结束

grep

文件内查找字符串 / 筛选

输入数组,空格分割

忽略大小写,默认是不忽略

设置结束符

显示行号

输入前显示内容

递归子目录查找

限制输入长度

全词匹配

输入时不显示,像输密码那样

常用用法

find . -name “*.java” | xargs grep “main” –color

常用用法

read str

grep “main” *

sed

操作文件,增删改查(脚本常用)

expr

将表达式的值 打印到控制台

可以指定多个命令

expr $arg1 + $arg2(中间的空格是必需的,不加空格是字符串)

指定命令文件

字符串匹配

expr match “abcd” “.*bcd”,只能从头匹配,返回匹配长度

取消默认控制台输出,与p一起使用可打印指定内容

字符串长度

expr length “awefwe”,返回长度

输出到原文件,静默执行(修改原文件的意思)

字符串截取

expr substr “abscw” 2 3,返回bsc,下标从1开始

常用用法

sed ‘s/old/new/gi’ test.txt

字符查找

expr index “abcd” “dc”,返回3,只能单个字符,哪个字符先出现

变量赋值

param=expr $arg1 + $arg2将标准输出赋值给变量)

let

定义整型变量

ftp

连接 FTP

let

let sum=age+3,不能有空格,变量不用加$,同declare -i

ftp ip

连接ftp服务器

let

let “sum = age + 3″,同上,有空格需要加引号

查看当前目录下的文件列表

不用let

sum=age+num,默认字符串操作,sum值为”age+num’字符串

pwd

查看当前目录的路径

切换目录

get a.txt

下载文件到当前目录(执行ftp ip的目录),自动覆盖

put a.txt b.txt

上传文件,自动覆盖

delete a.txt

删除文件

less a.txt

查看文件,同linux的less

查看各种ftp命令

显示文件系统的磁盘使用情况

显示文件夹所占空间大小

可读的文件大小格式

可读的文件大小格式

显示所有文件系统

常用用法

du -h 或者 du -h /tmp/zzj

常用用法

df -h

mkdir

创建文件夹

pwd

显示当前目录的绝对路径

父目录自动创建,用于创建多层文件夹

常用用法

pwd

常用用法

mkir -p /tmp/abc/ddd/test

stat

查看文件属性(创建时间、修改时间、权限修改时间 等)

tree

以树状图列出目录的内容 ,包括子目录里的文件

常用用法

stat test.txt

绘图字符显示树状图(推荐)

显示隐藏文件

文件类型着色,便于区分

显示完整文件路径

常用用法

tree -AC test

telnet

查看某个端口是否可以访问

ifconfig

显示 或设置网络设备

常用用法

telnet 192.168.1.2 8080

常用用法

ifconfig eth0 down 关闭eth0网卡

ifconfig eth0 up 启动eth0网卡

ifconfig eth0 192.168.1.12 修改ip

netstat

显示网络状态

lsof

列出当前系统打开 的文件

显示所有

指定端口筛选程序

域名转换为IP

常用用法

lsof -i:8080 查看8080端口程序

显示进程PID / 进程名

linux环境下的任何事物都以文件的形式存在,例如:进程、网络连接等等都可以列出来

常用用法

netstat -anp | grep “:8080” 查看8080端口程序

lsof | grep vim | grep .swp 能查看当前正在编辑的文件和vim进程

端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。而不要纯粹的理解为关闭掉某个端口,不过可以禁用某个端口

wall

广播消息给所有在线用户( who 命令可查看)

which

查看命令的绝对路径

常用用法

wall hello

常用用法

which ls

man

查看命令的说明手册

ping

检测主机的连通性

常用用法

man ls

常用用法

ping 192.168.1.1

who

查看当前活跃连接

write

发送消息给指定在线用户( who 命令可查看)

常用用法

who /var/log/wtmp 查看历史连接

常用用法

write root pts/1

useradd

创建用户

userdel

删除用户

创建用户主目录,默认在home目录下创建

删除用户主目录

不创建用户主目录

常用用法

userdel -r testuser

-d path

指定目录为用户主目录

创建时指定用户群组

常用用法

useradd testuser

date

显示当前时间

finger

查看用户信息

-d str

显示指定字符串所描述的时间,而非当前时间

常用用法

finger root

-s str

将系统时间设为字符串中指定的时间

less /etc/passwd 能查看所有用户

-r file

显示指定文件的最后修改时间

less /etc/group 查看所有用户群组

常用用法

date

sleep

等待指定时间( s m 分钟 h 小时 d 天,不加单位默认秒)

常用用法

sleep 5s

groupadd

创建用户群组

groupdel

删除用户群组(只能删除空群组)

常用用法

groupadd testgroup

常用用法

groupdel testgroup

groupmod

修改用户群组

usermod

修改用户

-A user

groupmod -A user testgroup 将用户加入群组

-g group

usermod -g testgroup testuser 将用户加入群组

-R user

groupmod -D user testgroup 将用户移除群组

-d path

修改用户主目录

-g gid

groupmod -g 1234 testgroup 修改群组的gid

-u uid

usermod -u 123 testuser 修改用户的uid

查看用户的 uid (用户唯一标识)、 gid 、所属群组

kill

关闭进程

常用用法

id testuser

-KILL

强制杀死进程

彻底杀死进程

常用用法

kill -9 PID

last

查看当前活跃连接和历史连接(类似 who

logname

显示当前登录的用户名

常用用法

last

常用用法

logname

显示瞬间进程的状态

top

显示实时进程的状态

显示所有进程

-d 3

刷新周期,默认3秒

显示全格式列表

常用用法

top

常用用法

ps -ef 显示所有瞬间进程信息

shutdown

sudo

使用 root 用户执行命令(需要配置 /etc/sudoers 设置权限)

立刻重启(推荐)

常用用法

sudo test.sh 使用root执行脚本(需要输入当前用户密码)

立刻关机

与su区别

su root test.sh 也是使用root执行脚本(需要输入root密码)

提示关机,但不会关机

常用用法

shutdown -r now

切换用户

查看自己当前的连接

su root ./test.sh 使用指定用户执行脚本

常用用法

su -c ./test.sh root 使用指定用户执行命令或脚本

常用用法

su – oracle

clear

alias

设置命令的别名( /etc/profile 配置永久生效)

常用用法

clear

unalias lt 取消别名

alias 列出所有设置的别名

常用用法

alias lt=’ls -ltr’

source

在当前 shell 中执行文件中的命令

crontab

定时任务(后台执行)

source test.sh 在当前shell中执行脚本

列出当前用户定时任务

sh test.sh 创建子shell执行脚本,普通变量不会被带到父shell

删除当前用户所有定时任务

常用用法

source /etc/profile 使修改立即生效

编辑定时任务 * * * date (分.时.日.月.星期)每分钟执行一次date命令

常用用法

crontab -l

declare

定义变量

set

显示所有变量和方法,同 declare

declare

显示所有变量和方法,同set

常用用法

set

显示函数

声明只读变量,只允许声明时赋值

声明环境变量,同export

声明整数型变量,同let

声明数组 arr=(“ab” “cc” [5]=”ww”)

常用用法

declare test=abc

type

查看命令的类型

eval

执行字符串命令

alias 别名

常用用法

eval “test args1 args2” 例如调用函数,test为函数

keyword 关键字

shell 保留字

function 函数

builtin 内建命令

常用用法

type if

export

定义环境变量

rpm

RPM 软件包管理工具

常用用法

export testparam=value

显示套件的相关信息

export 显示环境变量,同env

显示指令执行过程

显示安装进度

–force

忽略报错,强制安装

常用用法

rpm -ivh packageName 安装软件包

passwd

设置用户密码

time

测量指令执行消耗的时间

常用用法

passwd testuser

常用用法

time cd /tmp

env

显示环境变量,同 export

unset

删除环境变量

常用用法

env

常用用法

unset test

chkconfig

显示系统服务

service

管理系统服务

chkconfig iptables on/off 开关防火墙,重启生效

常用用法

service iptables stop/start/statu 开关防火墙,立即生效

常用用法

chkconfig

gzip

压缩 gz 文件(不能压缩目录,不保留原文件)

gunzip

解压 gz 文件

将压缩后文件输出到控制台,保留原文件

不解压情况下cat压缩包中的文件,同zcat

gzip test.txt 变成test.txt.gz文件,不保留原文件

gunzip test.txt.gz 变成test.txt文件,不保留压缩文件

常用用法

gzip -c test.txt > test.txt.gz

常用用法

gunzip -c test.txt.gz > test.txt

zip

压缩 zip 文件(jar包也适用)

unzip

解压 zip 文件(jar包也适用)

压缩文件夹 zip -r test.zip /tmp/zzj

常用用法

unzip test.zip

常用用法

zip test.zip ab.java 如果zip包存在,则更新zip包

unzip test.jar META-INF/maven/* 解压指定文件或文件夹

unzip -p test.jar META-INF/MANIFEST.MF 不解压cat压缩包里面的文件

zipinfo

查看 zip 文件内容( vim 也可以查看)

tar

压缩解压 tar 文件(可保留软链接文件)

常用用法

zipinfo test.zip

查看tar文件内容(vim也可以查看)

使用gzip或gunzip处理

显示执行过程

指定压缩或解压文件

指定解压目录,相当于unzip的-d,与unzip不同的是,目录要存在

常用用法

tar -cvzf test.tar.gz /tmp/zzj

tar -xvzf test.tar.gz

用于数学运算,

tail

查看文件结尾

直接执行bc,就是一个计算器,输入数学表达式运算

不断刷新

常用用法

echo ‘scale=2; (2.777 – 1.4744) / 1’ | bc 保留两位小数,输出1.30

指定显示行数

echo ‘5 != 3’ | bc 数字比较,输出1

常用用法

tail -f test.log

xargs

从标准输入构建和执行命令行

yum

自动下载 rpm 并安装

一般和管道一起使用,”|”符号表示管道

常用用法

yum install packageName

管道:将上一条命令的标准输出,传递给下一条命令

yum remove packageName

例如:find . -name “*.java” | grep “main”,从文件名中grep

例如:echo “test.txt” | less,显示字符串

管道加上xargs:将上一条命令的结果转换成标准输入,传递给下一条命令

例如:find . -name “*.java” | xargs grep “main”,从文件内容中grep

例如:echo “test.txt” | xargs less,显示文件内容

统计行数 / 字数 / 字节数

jar

javaJDK带的命令,效果同zip命令,参数用法同tar命令;打jar包zip包都可

常用用法

wc test.txt

常用用法

jar -cvfM test.zip /tmp/zzj,-M表示不生成META-INF/MANIFEST.MF

ls -l | wc

jar -xvf test.zip 解压到当前目录

Ctrl+z

将正在执行的命令放到后台,并且暂停。同时得到一个后台命令的编号

jobs

查看后台命令列表,只能看同一个shell窗口的

Terminated 停止,使用kill杀掉进程对应的状态 Running 正在运行 Stopped 暂停,Ctrl+z对应的状态 Done 完成,使用jobs命令查看一次后记录消息

将后台命令调至前台执行,如果是Stopped状态则变成Running状态

常用用法

fg 15,数字对应后台命令编号

常用用法 bg 15,数字对应后台命令编号。可结合Ctrl+z使用,放到后台暂停再bg。

后台命令调至前台后,只能通过Ctrl+z再次放到后台,再bg继续执行

(普通命令后加 & 可直接后台执行,如:sh execute.sh &,同时得到后台命令编号和进程PID。后台命令可fg调到前台停止,也可以kill杀掉进程)

PID 等待同一个shell窗口的指定后台命令执行完毕,不能跨shell窗口

Original: https://www.cnblogs.com/zhangzongjian/p/10247672.html
Author: zhangzongjian
Title: Linux实用命令

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606790/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 2021年3月-第02阶段-前端基础-移动WEB开发-移动WEB开发之_响应式布局

    移动端WEB开发之响应式布局 1.0 响应式开发原理 1.1 响应式开发原理 就是使用媒体查询针对不同宽度的设备进行布局和样式的设置,从而适配不同设备的目的。 设备的划分情况: 小…

    Linux 2023年6月8日
    0118
  • windows下设置redis开机自启动

    windows: 在windows下安装目录下 打开命令窗口: redis-server.exe –service-install redis.windows.conf…

    Linux 2023年5月28日
    096
  • 自动化集成:Kubernetes容器引擎详解

    前言:该系列文章,围绕持续集成:Jenkins+Docker+K8S相关组件,实现自动化管理源码编译、打包、镜像构建、部署等操作; 本篇文章主要描述Kubernetes引擎用法。 …

    Linux 2023年5月27日
    0116
  • docker:alpine使用logrotate切割日志

    最近在交付项目的时候使用了docker,大家都知道日志是项目定位问题的重要依据,但如果一开始项目本身没有对日志进行合理切割那就会导致长时间运行的项目日志文件大得编辑器打不开的情况。…

    Linux 2023年5月27日
    0116
  • 生成随机数的若干种方法

    背景: 创建账户时我们需要配置初始随机密码,使用手机号注册时需要随机验证码,抽奖活动需要随机点名,俄罗斯方块游戏需要随机出形状。这些案例都在说明一个问题,随机数据很重要!而在 Sh…

    Linux 2023年6月6日
    092
  • 防数据泄露_MySQL库和数据安全

    攻击场景 外部入侵 内部盗取 防御体系建设 参考 在企业安全建设中有一个方向是防数据泄露,其中一块工作就是保障数据库安全,毕竟这里是数据的源头。当然数据库也分不同的种类,不同类型的…

    Linux 2023年6月6日
    0106
  • c++的左值(lvalue),右值(rvalue),移动语义(move),完美转发(forward)

    c++的左值(lvalue),右值(rvalue),移动语义(move),完美转发(forward) c++的左值,右值 精辟总结 当一个对象被用作右值的时候,使用的是对象的值(内…

    Linux 2023年6月14日
    0123
  • 015 Linux 标准输入输出、重定向、管道和后台启动进程命令

    1 三种标准输入输出 2 什么是重定向?如何重定向? (1)什么是重定向? (2)如何重定向? 3 管道符以及和它容易混淆的一些符号使用 (1)管道符 | (2)&和&am…

    Linux 2023年5月27日
    0113
  • 国产化之虚拟ARM64-CPU安装银河麒麟操作系统

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟v4,CPU使用飞腾处理器。我本地没有这个国产的处理器,但飞腾是基于 _ARMv8_架构的64位处理器,所以理论上…

    Linux 2023年5月27日
    0323
  • 到底什么是TORCH.NN?

    该教程是在notebook上运行的,而不是脚本,下载notebook文件。 PyTorch提供了设计优雅的模块和类: torch.nn, torch.optim, Dataset,…

    Linux 2023年6月14日
    0107
  • typedef

    为类型定义别名 typedef int Int 这样 Int 就是 int类型的别名,就可以使用 Int来定一整形变量. 只需要在类型变量生命的基础上,再加一个关键字 typede…

    Linux 2023年6月13日
    088
  • 计算机网络学习任务

    自学分析题 请分析,一个5KHz的无噪声信道能够达到的最大数据传输率是多少? 为什么? 假设你使用的宽带是100Mbps,你要把一个0.5GB的文件发送出去, 理论上要花多长时间?…

    Linux 2023年6月6日
    0139
  • python入门基础知识六(函数)

    函数要先定义,再调用! 一、函数参数的类型: 1. 形式参数和实际参数: def funct_name(arguments): codes… codes… …

    Linux 2023年6月7日
    090
  • CentOS shell中的变量

    shell中的变量 变量的介绍 变量即变化的量,核心是”变”与”量”二字,变即变化,量即衡量状态。 量:是记录现实世界当中的某种状态…

    Linux 2023年6月7日
    096
  • OpenSSL测试-SM3

    任务详情 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务 使用OpenSSL的命令计算你的8位学号的摘要值(SM3),提交截图(5’…

    Linux 2023年6月8日
    0110
  • Shell grep 命令扩展增强

    背景: 线上排查问题需要找出有某个特征的日志,并获取这些日志的完整调用日志链路。 比如, 通过某个tag 获取到了这些日志的 请求id 【Span ID】, 然后还需要再一步取得所…

    Linux 2023年5月28日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球