Linux常用命令

B站黑马视频 和

Linux常用命令CSDN博客

Linux

Linux中的"根目录"和"家目录"

Linux目录和Windows目录有很大不同,Linux目录类似一个树,最顶层是其根目录,如下图:

  1. ~ 代表是home目录,也就是家目录, / 代表的是根目录

  2. 用户登录后在 家目录 (home),可用pwd命令查看,普通用户为 /home/用户名,root用户为/root

  3. 根目录是在最顶端的目录(因为已经不能cd ...到上一级目录了 )

  4. 根目录是所有用户的都可以操作的,家目录用户才有权限操作(管理员可以分配权限)

相对路径

和绝对路径不同,相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起。

复制代码
./      :当前所在的目录
../     :父目录,上一级目录
/       :根目录
1.引用上级文件: ../cover1.jpg
2.引用同级文件: cover1.jpg
3.引用下级文件: cover/cover1.jpg
4.引用上上级文件: ../../cover1.jpg
-----------------------
cd ~        切换到home目录
cd /        切换到根目录

模糊匹配

复制代码
rm命令支持通配符*,用来做模糊匹配
符号*表示通配符,即匹配任意内容(包含空),示例:
test*  ,表示匹配任何以test开头的内容
*test  ,表示匹配任何以test结尾的内容
*test* ,表示匹配任何包含test的内容

管道符 |

复制代码
将管道符 | ,左边命令的结果,作为右边命令的输入。可以嵌套
cat test.txt | grep "test"
将cat test.txt 这个文件作为结果,比如是x, 传入到|右边,成为了 grep "test" x。

第二章-11-grep-wc-管道符哔哩哔哩bilibili 不懂看这个。

用户用户组

Linux系统中可以:配置多个用户、配置多个用户组、用户可以加入到多个用户组中。

Linux中关于权限的管控级别有两个:针对用户的权限控制、针对用户组的权限控制。

以下命令需root用户执行: 创建用户组:groupadd 用户组名

删除用户组: groupdel 用户组名

复制代码
创建用户
useradd [-g -d] 用户名
选项:-g指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
选项:-d指定用户HOME路径,不指定,HOME目录默认在:/home/用户名
​
删除用户
userdel [-r] 用户名
选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留
​
查看用户所属组
id [用户名]
参数:用户名,被查看的用户,如果不提供则查看自身
​
修改用户所属组: usermod -aG 用户组 用户名,将指定用户加入指定用户组

getent命令get entries

复制代码
使用getent命令,可以查看当前系统中有哪些用户: getent passwd共有七份信息:
用户名:密码(x):用户ID:组ID:描述信息(无用):HOME目录:执行终端(默认bash)
​
getent group,查看当前系统有哪些用户组,包含三份信息∶组名称:组认证(显示为x)∶组ID

查看权限控制信息

r (read),针对文件可以查看文件内容 针对文件夹,可以查看文件夹内容,如ls命令

w (write),针对文件表示可以修改此文件 针对文件夹,可以在文件夹内:创建、删除、改名等操作

x (execute),针对文件表示可以将文件作为程序执行 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入。

权限修改

chmod命令change mode

功能:修改文件、文件夹的权限细节。 限制:只能是文件、文件夹的所属用户或root有权修改。 语法 : chmod -R 权限 文件或文件夹。 选项: -R , 对文件夹内的全部内容应用同样规则。

复制代码
chmod u=rwx,g=rx,o=x hello.txt,将文件权限修改为:rwx r-x --x
其中: u表示user所属用户权限,g表示group组权限,o表示other其它用户权限
​
权限的数字序号

r代表4, w代表2,x代表1 rwx的相互组合可以得到从0到7的8种权限组合 如7代表: rwx , 5代表: r-x , 1代表:--×

chown命令change owner

复制代码
只可root执行chown (change owner)。功能,修改文件、文件夹的所属用户、组
语法: chown [-R] [用户][:][用户组] 文件或文件夹  
-R,同chmod,对文件夹内全部内容应用相同规则。
用户,修改所属用户。
用户组,修改所属用户组。
 :用于分隔用户和用户组。冒号左右不能有空格。

小技巧快捷键

ctrl+c :强制停止某些运行的程序。也可以退出当前命令(比如你当前命令输入错误)

ctrl + d:退出或登出。退出账户的登录。或者退出某些特定程序的专属页面。

history:查看历史命令。

!命令前缀,自动匹配上一个命令。

ctrl + r,搜索历史命令。

ctrl+ a,跳到命令开头。ctrl+e,跳到命令结尾 ctrl+键盘左键,向左跳一个单词。ctrl+键盘右键,向右跳一个单词

清屏:通过快捷键ctrl +l,可以清空终端内容,或通过命令clear得到同样效果。

软连接 (类似快捷方式)

软连接可以将文件、文件夹链接到其他位置

复制代码
语法:ln -s 参数1 参数2
-s选项,创建软连接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地

date

复制代码
1.date命令的作用和用法
date命令可以查看日期时间,并可以格式化显示形式以及做日期计算
语法: date [-d] [+格式化字符串]
%Y 年
%y 年份后两位数字,00到99
%m 月份(01_12)
%d 日(01_31)
%H 小时(0_23)
%M 分钟(0_59)
%S 秒(0_5O)
%s 自1970-01-01 00:00:00 到现在的秒数
有空格时,最好格式化字符串的时候加上双引号。

网络请求

复制代码
1.使用ping命令可以测试到某服务器是否可联通
语法: ping [-c num] ip或主机名
选项:-c,测试的次数
2.使用wget命令可以进行网络文件下载
语法: wget [-b] url
选项:-b,后台下载
3.使用curl命令可以发起网络请求
语法: cur1 [-O] url
选项:-O.用于下载使用
4.ifconfig:查看网卡信息
语法:ifconfig 或 ifconfig | more
5.ping:查看与某台机器的连接情况
语法:ping ip
6.netstat -an:查看当前系统端口
语法:netstat -an
搜索指定端口。语法:netstat -an | grep 8080 
​
netstat -anp | grep 端口号 ,查看本机指定端口号的占用情况
​
7.nmap lP地址,查看指定IP的对外暴露端口
​

进程管理

复制代码
管理进程的命令
ps -ef 查看进程信息
ps -ef | grep 关键字 。过滤指定关键字进程信息。
​
kill [-9] 进程号 。关闭指定进程号的进程。
选项:-9,表强制关闭进程。不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制。
​
​

压缩解压

复制代码
1.Linux系统常用的压缩格式有:
tar格式,归档文件,简单的将文件整合到一个文件内,无压缩效果
gzip格式, gzip压缩文件,不仅能整合到一个文件,同时有体积压缩效果
​
2. tar命令
tar [-z -x -v -c -f -C]参数...
-c,创建压缩文件、
-v,查看压缩\解压过程、
-x,解压模式. 
-f,指定压缩\解压的文件,
-z,gzip模式,
-C,指定解压的路径·
-z在选项组建议在开头,-f在选项组内必须在尾部, -C单独使用
​
3.zip命令
zip [-r]参数...
-r,压缩文件夹使用
unzip命令,unzip [-d]参数,-d指定解压去的目录
​

--------------

Linux命令

Linux选用命令行的原因: Linux从诞生至今,在图形化页面的优化上,并未重点发力。所以Linux操作系统的图形化页面:不好用、不稳定。在开发中,使用命令行形式,效率更高,更加直观,并且资源占用低,程序运行更稳定。

Linux命令基础格式: command -options parameter

文件夹的增删改查

ls命令(list)

复制代码
1.ls命令的参数的作用
就是 list 的缩写,可以指定要查看的文件夹(目录)的内容,如果不给定参数,就查看当前工作目录的内容(文件或文件夹)
​
2.ls命令的选项:
命令:ls [-al]
ls               查看当前目录下的所有目录和文件
ls -a            查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l 或 ll      列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls /dir          查看指定目录下的所有目录和文件   如:ls /usr 
​
3.命令的选项组合使用
命令的选项是可以组合使用的,比如: ls -lah,等同于ls -a -l -h

cd命令 Change Directory

复制代码
cd命令来自英文: Change Directory
cd命令可以切换当前工作目录,语法是:cd [Linux路径]

cd /        切换到根目录
cd /usr     切换到根目录下的usr目录
cd ../      切换到上一级目录 或者  cd ..
cd ~        切换到home目录
cd -        切换到上次访问的目录

pwd命令Print work Directory

复制代码
pwd命令来自英文: Print work Directory

pwd命令,没有选项,没有参数,直接使用即可。

作用是∶输出当前所在的工作目录

mkdir命令make directory

复制代码
mkdir用以创建新的目录(文件夹)

语法:mkdir [-p] Linux路径
参数**必填**,表示要创建的目录的路径,相对、绝对、特殊路径符都可以使用

-p选项的作用可选,表示自动创建不存在的父目录,适用于创建连续多层级的目录

mkdir test 		//当前工作目录下创建名为 test的文件夹
mkdir ./test	//当前工作目录下创建名为 test的文件夹

mkdir -p /tmp/test/t1/t    //在 tmp 目录下创建路径为 test/t1/t 的目录,若不存在,则创建:

mv 和 cp 目录修改【改】

复制代码
一、重命名目录 (mv 即move)
    命令:mv 当前目录  新目录
    例如:mv aaa bbb    将目录aaa改为bbb
    注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行    重命名的操作

二、剪切目录 (mv 即move)
    命令:mv 目录名称 目录的新位置
    示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面     mv /usr/tmp/aaa /usr
    注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

三、拷贝目录  (cp 即copy)
    命令:cp -r 目录名称 目录拷贝的目标位置   (-r代表递归)
    示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面     cp /usr/tmp/aaa  /usr
    注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不    用写-r递归 

rm 删除目录或文件【删】

复制代码
命令:rm [-rf] 目录

删除文件:
rm 文件        删除当前目录下的文件
rm -f 文件    删除当前目录的的文件(不询问 f force,一般用户用不到,root用户使用)

删除目录:
rm -r aaa bbb    递归删除当前目录下的aaa,和bbb目录 	 (-r代表递归)
rm -rf aaa    递归删除当前目录下的aaa目录	 (不询问)

全部删除:(不要乱用)
rm -rf *    将当前目录下的所有目录和文件全部删除

rm命令支持通配符*,用来做模糊匹配
符号*表示通配符,即匹配任意内容(包含空),示例:
test*  ,表示匹配任何以test开头的内容
*test  ,表示匹配任何以test结尾的内容
*test* ,表示匹配任何包含test的内容

rm -rf /* 【自杀命令!慎用!慎用!慎用!坐牢的那种】将根目录下的所有文件全部删除

find 搜索目录【查】

复制代码
按文件名查找:支持通配符
find 起始路径 -name "被查找文件名"
eg: find /usr/tmp -name 'a*'   查找/usr/tmp目录下的所有以a开头的目录或文件
按文件大小查找: 
find 起始路径 -size +n[kMG]
find 起始路径 -size -n[kMG]
+、-表示大于和小于n表示大小数字
kMG表示大小单位,k(小写字母)表示kb,M表示MB,G表示GB
eg:查找根目录下大于10OMB的文件: find / -size +100M
./	   	:当前所在的目录
../ 	:父目录,上一级目录
/ 	   	:根目录

文件的增删改查

touch命令(增)

用于创建一个新的文件

语法:touch Linux路径 参数必填,表示要创建的文件的路径,相对、绝对、特殊路径符都可以使用

cat/more/less/tail (查)

cat命令 用于查看文件内容。catenate(连接)

语法:cat Linux路径 参数必填,表示要查看的文件的路径,相对、绝对、特殊路径符都可以使用

more:百分比显示

示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看 more sudo.conf

less:翻页查看

示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看 less sudo.conf

tail:指定行数或者动态查看

示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束 tail -10 sudo.conf

语法:tail -f -num Linux路径

-f表示持续跟踪,-num:启动的时候查看尾部多少行,默认10行,Linux路径表示被查看的文件

vi或vim 修改文件【改】Visual Interface

vi (Visual Interface 视觉接口),vim(Vi IMproved 即vi增强)。

vi\vim编辑器,就是命令行模式下的文本编辑器,用来编辑文件。vim是vi的升级版,一般用vim即可,包含全部vi功能。

语法:vi\vim 文件路径

eg: vi aa.txt 或者 vim aa.txt 。打开当前目录下的aa.txt文件。

如果文件路径表示的文件不存在,那么此命令会用于编辑新文件。 如果文件路径表示的文件存在,那么此命令用j编辑已有文件。

基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:

  1. 命令模式 (command mode) 控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。 命令行模式下的常用命令:(有很多命令,具体百度即可) 【1】控制光标移动:↑,↓,j 【2】删除当前行:dd 【3】查找:/字符 【4常用】进入编辑模式:i o a ( i :在当前光标位置进入输入模式。a:在当前光标位置之后进入输入模式。o:在当前光标下一行进入输入模式) i,a,o分大小写,具体作用查吧。

    【5】进入底行模式:: 任何情况下输入esc都能回到命令模式。

  2. 编辑模式(Insert mode)按i o a进入编辑模式。 只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。 编辑模式下常用命令: ESC 退出编辑模式到命令行模式;

  3. 底行模式(last line mode) 将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号......等。 底行模式下常用命令: 【1】退出编辑: :q 【2】强制退出: :q! 【3】保存并退出: :wq

查找

which

which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

使用实例:

复制代码
which 要查找的命令
which pwd  查找pwd命令所在路径 
which java  查找path中java的路径

grep命令

grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

复制代码
从文件中通过关键字过滤文件行
语法:grep [-n] 关键字 文件路径

选项 -n,可选,表示在结果中显示匹配的行的行号。
参数,关键字,必填,表示过滤的关键字,建议使用””将关键字包围起来
参数,文件路径,必填,表示要过滤内容的文件路径,可作为管道符的输入
eg: grep -n "code" test.txt 。在当前目录的 test.txt 文件中,找到含有 code 关键字的 一行,且显示行号。

wc命令 (word count)

复制代码
命令统计文件的行数、单词数量、字节数、字符数等
语法: wc [-c -m -l -w] 文件路径
不带选项默认统计:行数、单词数、字节数
-c字节数、-m字符数、-l行数、-w单词数
参数,被统计的文件路径,可作为管道符的输入

su、sudo

su命令switch user

复制代码
语法: su[-] [用户名]
- 符号是可选的,表示是否在切换用户后加载环境变量(后续讲解),建议带上。
用户名,表示要切换的用户,用户名也可以省略,省略表示切换到root。
切换用户后,可以通过exit命令退回上一个用户,也可以使用快捷键: ctrl + d。

使用普通用户,切换到其它用户需要输入密码,如切换到root用户。
使用root用户切换到其它用户,无需密码,可以直接切换。

su test:切换到test用户,但是路径还是/root目录
su - test : 切换到test用户,路径变成了/home/test
su : 切换到root用户,但是路径还是原来的路径
su - : 切换到root用户,并且路径是/root

su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。
退出返回之前的用户:exit

sudo

sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。

复制代码
如何为普通用户配置sudo认证?
答:切换到root用户,执行visudo命令,会自动通过vi编辑器打开:/etc/sudoers
或者 直接 vi /etc/sudoer 
可以让一条普通命令带有root权限,语法:sudo 其它命令
案例:
允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
hadoop  ALL=(ALL)   ALL 
 
案例:
只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。 
配置文件中: 
hadoop  ALL=NOPASSWD:  /bin/ls, /bin/cat 

echo命令

复制代码
可以使用echo命令在命令行内输出指定内容。感觉跟print函数一样。
语法: echo 输出的内容
无需选项,只有一个参数,表示要输出的内容,复杂内容可以用” ”包围
eg: echo "hello world"

`反引号符
被`包围的内容,会被作为命令执行,而非普通字符
eg:echo pwd 只会输出pwd
echo `pwd` 则会输出 当前工作目录(Print work Directory)。

重定向符

复制代码
重定向符
>,将左侧命令的结果,覆盖写入到符号右侧指定的文件中
>>,将左侧命令的结果,追加写入到符号右侧指定的文件中
eg:	echo "hello world" > test.txt
	echo "hello world" >> test.txt

-----------------

软件安装

CentOS: .rpm , yum Ubuntu: .deb , apt

CentOS使用yum管理器,Ubuntu使用apt管理器。

CentOS:yum命令

复制代码
yum : RPM包软件管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。(RPM是linux系统的软件安装格式)
语法: yum [-y] [install | remove | search] 软件名称
选项: -y,自动确认,无需手动确认安装或卸载过程
install:安装
remove:卸载
search:搜索

yum命令需要root权限哦,可以su切换到root,或使用sudo提权。yum命令需要联网

Ubuntu:apt命令

复制代码
用法和yum一致,同样需要root权限
语法: yum [-y] [install | remove | search] 软件名称
apt install wget,安装wget。
apt remove wget,移除wget。
apt search wget,搜索wget。

控制软件启动关闭

systemctl 命令

可以控制软件(服务)的启动、关闭、开机自启动 1系统内置服务均可被systemctl控制 2第三方软件,如果自动注册了可以被systemctl控制 3第三方软件,如果没有自动注册,可以手动注册(后续学习)

复制代码
系统内置的服务比较多,比如:NetworkManager,主网络服务。
network,副网络服务。
firewalld,防火墙服务。
sshd, ssh服务(FinalShell远程登录Linux使用的就是这个服务)。

2.语法
systemctl start | stop | status | enable | disable 服务名

解释:start启动,stop关闭,status查看状态
enable开启开机自启,disable关闭开机自启
相关推荐
aixingkong9212 小时前
Nvidia为例 XPU的Multi-Host、Socket Direct 、GPUDirect、RDMA 技术点分析
服务器·网络·硬件架构·硬件工程
雯宝4 小时前
mnt_init 函数
linux
律宏阔10 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔10 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴10 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千10 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei3710 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei3710 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei3710 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh10 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker