Linux 命令 Ubuntu20.04命令

这篇博客详细列举了Linux系统中常用的各种命令,包括清空命令行、查看内存和CPU、安装及使用htop、切换用户、文件及目录管理、权限设置、压缩解压缩、搜索文件内容、进程管理等。还介绍了find、grep和locate等高级查找工具的使用方法,是Linux系统管理和运维的实用参考资料。
摘要由CSDN通过智能技术生成

清空命令行命令

Ctrl + l

查看内存命令

free -m

查看cpu命令

top

直观查看cpu的工具
安装

sudo apt-get install htop

命令

htop

清空屏幕命令1

clear

清空屏幕命令2

reset

当前用户

whoami

用户当前所在的工作目录

pwd

当前目录

./  或 .

上一级目录

../ 或 ..

直接切换到当前用户的home目录

cd
或
cd ~

登录root用户

su root

退出root用户

exit

查看当前目录的文件

ls

显示所有的隐藏文件

ls -a

显示文件的详细属性信息(文件大小默认为字节显示)

ls -l

以人类可以直观文件大小的方式显示详细属性信息

ls -lh

直观的显示文件和目录

ls -F

ubuntu中

ll 相当于 ls -laF

查看要执行的命令所在的实际路径,命令解析器工作的时候也会搜索这个目录

  • 需要注意的是该命令只能查看非内建的shell指令所在的实际路径
  • 有些命令是直接写到内核中的, 无法查看
#查看可执行程序的位置:如查看pwd命令
which pwd

输出环境变量PATH

echo $PATH

查看输入的历史指令

history

自动补齐

Tab

创建目录

mkdir 新目录的名字

创建多层目录,需要加参数 -p

mkdir parent/child/baby1/baby2 -p

只能删除空目录

rmdir 目录名

删除目录或删除文件

  • 删除目录需要加参数 -r, 递归的意思, 删除之后是不能恢复的
  • -i: 删除的时候给提示
  • -f: 强制删除文件,没有提示直接删除并且不能恢复,慎用
rm 目录名  -r

树状结构查看目录情况
安装

sudo apt install tree

命令

tree [-L n]         # 查看当前目录的结构, n为显示的目录层数
tree 目录名  [-L n]	# 查看指定目录的结构, n为显示的目录层数

tree -L 1

拷贝文件

cp 要拷贝的文件  得到的文件

拷贝目录需要参数 -r

#场景1: 目录A, 通过拷贝得到不存在的目录B
cp 目录A 目录B -r

#场景2: 目录A存在的, 目录B也是存在的, 目录A会被拷贝并将其放到目录B中
cp 目录A 目录B -r

#场景3: 把A目录里的某一个或者多个文件拷贝到B目录中
拷贝 A目录中的 a.txt 到目录B中
cp A/a.txt B	 

#拷贝A目录中的所有文件到目录B中, 不能确定A目录中是否有子目录, 因此需要加 -r
cp A/* B -r	

文件的移动

  • 有一个文件A, 移动到目录B中,其中A可以是文件也可以是目录, B必须是目录而且必须是存在的
mv 要移动的文件  目录

文件改名

  • 其中A可以是文件也可以是目录,并且是存在的,B原来是不存在的
mv 要改名的文件  新名字(原来是不存在的,这点很重要)

文件覆盖

  • 其中A是文件(非目录)并且是存在的, B也是一个文件(非目录)并且也存在
  • A文件中的内容覆盖B文件中的内容, A文件被删除, 只剩下B文件
mv 存在文件A  存在的文件B

将文件内容显示到终端(大数据只能显示部分内容)

cat 文件名

以翻屏的方式查看文件中的内容1

  • 回车: 显示下一行
  • 空格: 向下滚动一屏
  • b: 返回上一屏
  • q: 退出more
more 文件名

以翻屏的方式查看文件中的内容2

  • b: 向上翻页
  • 空格: 向后翻页
  • 回车: 显示下一行
  • 上下键: 上下滚动
  • q:退出
less 文件名

查看文件头部的若干行信息

  • 默认显示文件的前10行
head 文件名

指定显示头部的前多少行

head -行数 文件名

查看文件尾部的若干行信息

  • 默认显示文件的后10行
tail 文件名

指定显示尾部的最后多少行

tail -行数 文件名

创建软链接

ln -s 源文件路径(建议绝对路径,这样软链接移动位置后依旧能够实现链接) 软链接文件的名字(可以带路径)

创建硬链接

  • 目录是不允许创建硬链接
ln 源文件 硬链接文件的名字(可以带路径)

修改文件文件权限

文字设定法

  • who:
    • u: user -> 文件所有者
    • g: group -> 文件所属组用户
    • o: other -> 其他
    • a: all, 以上是三类人 u+g+o
  • 对权限的操作:
    • +: 添加权限
    • -: 去除权限
    • =: 权限的覆盖
  • mod: 权限
    • r: read, 读
    • w: write, 写
    • x: execute, 执行
    • -: 没有权限
chmod who [+|-|=] mod 文件名

#将文件所有者权限设置为读和执行, 也就是权限覆盖
chmod u=rx b.txt

数字设定法

  • 对权限的操作:
    • +: 添加权限
    • -: 去除权限
    • =: 权限的覆盖, 等号可以不写
  • mod: 权限描述, 所有权限都放开是 7
    • 4: read, r
    • 2: write, w
    • 1: execute , x
    • 0: 没有权限
    • 5: r + x
    • 6: r + w
    • 3: w + x
    • 7: r + w + x

权限的开头八进制表示符0可以省略

chmod 0567 a.txt

修改文件所有者

  • 只修改所有者
sudo chown 新的所有者 文件名

sudo chown lisi a.txt
  • 同时修改所有者和所属组
sudo chown 新的所有者:新的组名 文件名

sudo chown lisi:zhangsan a.txt

修改文件所属组

sudo chgrp 新的组 文件名

sudo chgrp lisi a.txt

创建一个新的空文件

  • 如果指定的文件是已存在的,只会更新文件的修改日期,对内容没有任何影响
touch 文件名

在终端打印字符串

echo 字符串

echo hello,world

输出日期

 date

重定向

>	#将文件内容写入到指定文件中,如果文件中已有数据,则会使用新数据覆盖原数据
>>	#将输出的内容追加到指定的文件尾部

#日期信息被写入到文件 test.txt中
date > test.txt

#日期信息被追加到 test.txt中
date >> test.txt

切换用户

  • su只切换用户,当前的工作目录不会变化
  • su - 不仅会切换用户也会切换工作目录,工作目录切换为当前用户的家目录
  • 从用户 A 切换到用户 B, 如果还想再切换回用户 A,可以直接使用 exit
su 用户名

su - 用户名

exit

添加新用户

#所有linux版本
sudo adduser 用户名

#ubuntu -m: 创建用户家目录 -s: 设置命令解析器
sudo useradd -m -s /bin/bash  用户名

删除用户

#所有linux版本
#删除用户, 添加参数 -r 就可以一并删除用户的家目录了
sudo userdel 用户名 -r

#ubuntu也支持deluser
#deluser不能添加参数-r, 家目录不能被删除, 需要使用 rm 命令删除用户的家目录
sudo rm /home/用户名 -r

添加删除用户组

#基于普通用户创建新的用户组
sudo groupadd 组名

#基于普通用户删除已经存在的用户组
sudo groupdel 组名

修改密码

#修改当前用户
passwd

#修改非当前用户密码
sudo passwd 用户名

#修改root
sudo passwd root

压缩 (.tar.gz .tar.bz2 .tgz)

  • .tgz 文件就等同于 .tar.gz 文件
  • c: 创建压缩文件
  • z: 使用 gzip 的方式进行文件压缩
  • j: 使用 bzip2 的方式进行文件压缩
  • v: 压缩过程中显示压缩信息,可以省略不写
  • f: 指定压缩包的名字
  • 压缩使用 gzip 方式, 标准后缀格式为: .tar.gz
  • 压缩使用 bzip2 方式, 标准后缀格式为: .tar.bz2
tar 参数 生成的压缩包的名字 要压缩的文件(文件或者目录)

#压缩目录中所有文件
tar zcvf all.tar.gz *

tar jcvf part.tar.bz2 a.txt b.txt

解压缩 (.tar.gz .tar.bz2 .tgz)

  • .tgz 文件就等同于 .tar.gz 文件
  • x: 释放压缩文件内容
  • z: 使用 gzip 的方式进行文件压缩,压缩包后缀为.tar.gz
  • j: 使用 bzip2 的方式进行文件压缩,压缩包后缀为.tar.bz2
  • v: 解压缩过程中显示解压缩信息
  • f: 指定压缩包的名字
  • 解压到指定目录,需要指定参数 -C
#语法1: 解压到当前目录中
tar 参数 压缩包名 

#语法2: 解压到指定目录中
tar 参数 压缩包名 -C 解压目录

#将 all.tar.gz 压缩包解压缩到 temp 目录中
tar zxvf all.tar.gz -C temp

zip安装

#ubuntu
sudo apt install zip    	#压缩
sudo apt install unzip	#解压缩

压缩 (.zip)

#自动添加压缩包后缀 .zip, 如果要压缩目录, 需要添加参数-r
zip [-r]  压缩包名 要压缩的文件

zip all a.txt b.txt -r

解压缩 (.zip)

#解压到当前目录中
unzip 压缩包名

#解压到指定目录, 需要添加参数 -d
unzip 压缩包名 -d 解压目录

#将 all.zip 解压缩到 temp 目录中
unzip all.zip -d temp/

rar安装

#ubuntu
sudo apt install rar

压缩 (.rar)

#文件压缩, 需要使用参数 a, 压缩包名会自动添加后缀 .rar
#如果压缩了目录, 需要加参数 -r
 
rar a 压缩包名 要压缩的文件 [-r]

rar a all a.txt b.txt -r

解压缩 (.rar)

#解压缩: 需要参数 x
#解压缩到当前目录中
rar/unrar x 压缩包名字

#解压缩到指定目录中
rar/unrar x 压缩包名字 解压目录

rar x all.rar temp/

压缩(.tar.xz)

#第一步
tar cvf xxx.tar 要压缩的文件

#第二步, 最终得到一个xxx.tar.xz 格式的压缩文件, 上一步得到的.tar没有了
xz -z xxx.tar

tar cvf all.tar a.txt b.txt
xz -z all.tar

解压缩 (.tar.xz)

#第一步: 压缩包解压缩, 得到 xxx.tar
xz -d xxx.tar.xz

#第二步: 将 xxx.tar 中的文件释放到当前目录
tar xvf xxx.tar

xz -d all.tar.xz
tar xvf all.tar

find

  • 文件名 (-name)
  • 精确查询
  • 模糊查询: * 可以匹配零个或者多个字符, ?用于匹配单个字符
  • 模糊查询,建议(非必须)将带有通配符的文件名写到引号中(单引号或者双引号都可以)
#根据文件名搜索
find 搜索的路径 -name 要搜索的文件名

find /root -name "a.txt"
find /root -name "*.txt"
  • 文件类型 (-type)
  • 普通文件类型 f
  • 目录类型 d
  • 软连接类型 l
  • 字符设备类型 c
  • 块设备类型 b
  • 管道类型 p
  • 本地套接字类型 s
find 搜索的路径 -type 文件类型

find /root -type l
  • 文件大小 (-size)
  • k(小写), M(大写), G(大写)
  • -size 4k: 表示的区间为 (4-1k,4k], 表示一个区间,大于 3k, 小于等于 4k
  • -size -4k: [0k, 4-1k], 表示一个区间,大于等于 0 并且 小于等于 3k
  • -size +4k: (4k, 正无穷), 表示搜索大于 4k 的文件
find 搜索的路径 -size [+|-]文件大小

find ./ -size -3M

#搜索当前目录下 大于1M 并且 小于等于 3M 的文件
find ./ -size +1M -size -4M
  • 目录层级
  • -maxdepth: 最多搜索到第多少层目录,
  • -mindepth: 至少从第多少层开始搜索
  • 这两个参数不能单独使用, 必须和其他属性一起使用
  • 必修写在其他属性前,参数必须按着下面例子的顺序
#查找文件, 从根目录开始, 最多搜索5层, 这个文件叫做 *.txt (1 <= 层数 <= 5)
sudo find / -maxdepth 5 -name "*.txt"

#查找文件, 从根目录开始, 至少从第5层开始搜索, 这个文件叫做 *.txt (层数>=5层)
sudo find / -mindepth 5 -name "*.txt"

同时执行多个操作

  • exec
  • 在exec参数后添加其他需要被执行的shell命令
  • 命令的尾部需要加一个后缀 {} ;
find 路径 参数 参数值 -exec shell命令2 {} \;

find ./ -maxdepth 2  -name "*.txt" -exec ls -l {} \;
  • ok
  • -ok 和 -exec 都是 find 命令的参数,使用方式类似,但是这个参数是交互式的
find 路径 参数 参数值 -ok shell命令2 {} \;

find ./ -maxdepth 1  -name "*.txt" -ok ls -l {} \;
find ./ -maxdepth 1  -name "*.txt" -ok rm -rf {} \;
  • xargs
  • xargs的效率比使用 -exec 效率高
  • -exec: 将find查询的结果逐条传递给后边的shell命令
  • -xargs: 将find查询的结果一次性传递给后边的shell命令
find 路径 参数 参数值 | xargs shell命令2

find ./ -maxdepth 1  -name "*.cpp" | xargs ls -l

grep

  • -r: 如果需要搜索目录中的文件内容,需要进行递归操作,必须指定该参数
  • -i: 对应要搜索的关键字,忽略字符大小写的差别
  • -n: 在显示符合样式的那一行之前,标示出该行的编号
#对应要搜索的文件内容,建议放到引号(单双都可以)中
grep "搜索的内容" 搜索的路径/文件 参数

grep "include" ./ -rn

locate

  • 在使用locate之前,先使用updatedb命令,手动更新数据库
#使用管理员权限更新本地数据库文件
sudo updatedb

locate test		# 搜索所有目录下以 test 开头的文件

#搜索指定目录下以某个关键字开头的文件,指定的目录必须要使用绝对路径
locate /home/zhang3/test

#搜索文件的时候,忽略文件名的大小写,使用参数 -i
locate TEST -i

#列出前 n 个匹配到的文件名称或路径名称,使用参数 -n
locate test -n 5

#基于正则表达式进行文件名匹配,查找符合条件的文件,使用参数 -r
locate -r "\.cpp$"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值