Linux基础

这篇博客详细介绍了Linux的基础操作,包括文件管理(ls、cd、pwd、which等)、用户和用户组管理(权限修改、用户添加删除、组管理)以及系统管理(时间查看、进程管理)。此外,还涵盖了文件内容查看、查找文件、磁盘管理和网络相关命令。

修改root密码

目录

一、Linux目录结构

在这里插入图片描述
在这里插入图片描述

目录描述
bin可执行文件和常用的linux命令
dev存放linux系统下的设备文件
home用户的目录,新增用户的家目录都在这个目录中
mnt挂接其它文件系统
proc此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间
src该目录存放一些服务启动之后需要提取的数据
tmp程序产生的临时文件
var放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下
boot启动目录,存放内核
etc存放配置文件
lib库文件,程序在执行过程中,需要调用一些额外参数时,需要函数库的协助
medialinux 系统会自动识别一些设备,例如U盘、光驱等等
opt给主机额外安装软件所摆放的目录
rootroot账户的home目录
sbin系统管理员的命令和工具
usr应用程序和文件的安装目录

在 Linux 中,绝大多数可执行文件都是保存在 /bin 、 /sbin 、 /usr/bin 、 /usr/sbin

二、文件管理

linux系统中一切都是文件。

1、查看文件信息 — ls
命令描述
ls -a列举当前目录下所有内容,包括隐藏内容
ls -l列举当前目录的细节,包括权限、所有者、所属组、大小、创建日期、文件是否为链接
ls -r逆向,从后往前列举目录中的内容
ls -R递归,列举当前目录下所有子目录内的内容

常用语法:

  • ls -al 查看当前目录下所有文件信息
  • ls -al /home/test 查看指定目录下所有文件信息
  • ls -al /home/test/text.txt 查看指定目录下某个文件信息

补充:stat 以文字的格式来显示 inode 的内容。

stat + 文件

2、切换目录 — cd
命令描述
cd …切换到上一级目录
cd /切换到用户根目录
cd ~切换到用户家目录
cd ./xx切换到当前目录下的xx目录(相对路径)
cd /xx切换到根目录下的xx目录(绝对路径)
3、显示当前路径 — pwd
命令描述
pwd显示当前路径
pwd -p显示完整路径
4、查看某个命令路径 — which
命令描述
which + 命令查看某个命令路径

:cd 这个终端命令是内置在系统内核中的,没有独立的文件,因此用 which 无法找到 cd命令的位置。

5、新建文件 — touch
命令描述
touch xx.txt创建 xx.txt文件,若文件存在,则更新创建日期
6、新建目录 — mkdir

mkdir [-mp] 目录名称

命令描述
mkdir新建目录
mkdir -p test1/test2/test3递归新建多层目录
mkdir -m新建目录并授权
7、删除文件/目录 — rm、rmdir
命令描述
rmdir + 空目录删除空目录
rm -i删除前询问
rm -r递归删除多层目录
rm -f强制文件/目录
rm -rf强制多级目录(慎用)
8、复制文件 — cp

cp [-adfilprsu] 来源档(source) 目标档(destination)

命令描述
cp -a相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
cp -d若来源档为连结档的属性(link file),则复制连结档属性而非文件本身
cp -f为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次
cp -i目标文档已存在时,覆盖前会询问
cp -l创建文档硬链接,非复制文件本身
cp -s创建文档软链接,相当于快捷方式
cp -r递归复制多层目录
cp -p连同文件的属性一起复制过去,而非使用默认属性(备份常用)
cp -u若 destination 比 source 旧才升级 destination !
9、移动文件 — mv

mv [-fiu] source destination

命令描述
mv -fforce 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
mv -i若目标文件 (destination) 已经存在时,就会询问是否覆盖
mv -u若目标文件已经存在,且 source 比较新,才会升级 (update)
10、以树形图方式显示目录下所有文件 — tree
命令描述
tree以树形图方式显示目录下所有的内容

手动安装tree,需要root权限

yum install tree

11、查看文件内容
11.1、cat

cat [-AbEnTv] 文件

命令描述
cat -a相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已
cat -b列出行号,仅针对非空白行做行号显示,空白行不标行号!
cat -n列出行号,连同空白行也会有行号,与 -b 的选项不同

tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写!

11.2、nl — 显示行号

nl [-bnw] 文件

命令描述
nl -b a空行同样列出行号(类似 cat -n)
nl -b t空行不列出行号(默认值)
nl -n ln行号在荧幕的最左方显示
nl -n rn行号在自己栏位的最右方显示
nl -n rz行号在自己栏位的最右方显示,且不满6位的填充 0
nl -w n行号在自己栏位的第几位显示
11.4、more
命令描述
空白键 (space)向下翻一页
b向上翻一页
Enter向下翻一行
/xx查找xx字符
q退出more模式
11.5、less
命令描述
空白键 (space)向下翻一页
PgDn向下翻一页
PgUp向上翻一页
/xx向下查找xx字符
?xx向上查找xx字符
n重复查找(与 /、? 有关)
N反向查找(与 /、? 有关)
q退出less模式
11.6、head — 取文件前几行(默认前10行)

head [-n number] 文件

11.7、tail — 取文件后几行(默认后10行)

tail [-n number] 文件

11.8、grep — 文件内容搜索

grep [-nvi] 要搜索的内容 文件名

命令描述
grep -n xx 1.txt在指定文件 1.txt 中搜索 xx 字符,并显示匹配行的行号
grep -v xx 1.txt在指定文件 1.txt 中搜索 xx 字符,并显示不包含匹配文本的所有行(相当于求反)
grep -i xx 1.txt在指定文件 1.txt 中搜索 xx 字符,忽略大小写
grep xx **.txt在指定文件 **.txt 中搜索 xx 字符
grep xx ./xx*.txt在当前目录中搜索含有 xx 字符的文件
12、编辑文件内容 — vi / vim 编辑器

vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)

在这里插入图片描述

命令模式

  • “dd”:删除一行文字
  • “x”:删除一个字符
  • “:n”:光标移到文本的第n行
  • “$”:光标移到文本的行尾
  • “G”:光标移动文本的末尾
  • “/”:查找某些字符

输入模式:修改文档内容

  • “i” :切换到输入模式,在当前字符前面插入字符
  • “o”:切换到输入模式,另起一行,输入字符
  • “a”:切换到输入模式,在当前字符后面插入字符
  • “Esc”:退出输入模式,回到命令模式

底线命令模式:用于退出vi编辑模式

  • “:”:切换到底线命令模式
  • “:q”:退出底线命令模式,回到原目录
  • “:wq”:保存文件并退出底线命令模式,回到原目录
  • “:q!”:不保存文件,强制退出底线命令模式,回到原目录
  • “:wq!”:保存文件并强制退出底线命令模式,回到原目录
13、查找文件 — find

find path -option + 适配规则

13.1、按文件名称查找
命令描述
find . -name “*.txt”在当前目录下查找文件名以 .txt为后缀的所有文件
find . -name “t*.txt”在当前目录下查找文件名以 t开头且以 .txt为后缀的所有文件
find . -name “[a-h]*.txt”在当前目录下查找文件名以 a-h开头且以 .txt为后缀的所有文件
find . -name “*”在当前目录下查找所有文件
13.2、按文件大小查找
命令描述
find . -size 10c在当前目录下查找=10字节的文件
find . -size -1k在当前目录下查找<1k的文件
find . -size +1k -size -1M在当前目录下查找>1k、<1M的文件(k小写、M大写)

注意:

  • c小写,对目录也有效。
  • k小写,对目录无效。
  • M、G大写,对目录无效。
13.3、按文件时间查找

[a|c|m]min – [最后访问|最后状态修改|最后内容修改]min(分钟)
[a|c|m]time – [最后访问|最后状态修改|最后内容修改]time(天)

命令描述
find . -mtime -2 -type f在当前目录下查找两天内内容被修改过的文件
find . -mtime +2 -type f在当前目录下查找两天前内容被修改过的文件
find . -ctime -2 -type f在当前目录下查找两天内状态被修改过的文件
find . -ctime +2 -type f在当前目录下查找两天前状态被修改过的文件
find . -atime -2 -type f在当前目录下查找两天内被访问过的文件
find . -atime +2 -type f在当前目录下查找两天前被访问过的文件
---(+n)-------|-------(n)------|------(-n)---
    (n+1)前	|  	 (n+1)~n间   	|	n内
  • -ctime -n – 查找距现在 n×24H 内状态被修改过的文件。
  • -ctime n – 查找距现在 n×24H 前, (n+1)×24H 内状态被修改过的文件。
  • -ctime +n – 查找距现在 (n+1)×24H 前状态被修改过的文件。

linux 文件的几种时间 (以 find 为例):

  • atime 最后一次访问时间,如 ls、more 等,但 chmod、chown、ls、stat 等不会修改时间,使用 ls -utl 可以按此时间顺序查看;
  • ctime 最后一次状态修改时间,如 chmod、chown 等状态时间改变但修改时间不会改变,使用 stat file 可以查看;
  • mtime 最后一次内容修改时间,如 vi 保存后等,修改时间发生改变的话,atime 和 ctime 也相应跟着发生改变。
14、建立链接文件 — ln

软链接:ln -s 源文件 链接文件
硬链接:ln 源文件 链接文件

命令描述
ln -s软链接,相当于快捷方式(常用)
ln硬链接,两个文件占有同样硬盘空间,源文件被删除后,链接文件依旧保存
15、打包、压缩、解压缩
15.1、zip

zip既可压缩/解压文件,也可压缩/解压目录,后缀名为.zip,保留原文件/目录

命令描述
zip xx.zip + 原文件将文件压缩为xx.zip包,并保留原文件
zip -r xx.zip + 目录将目录压缩为xx.zip包,并保留原目录
unzip + xx.zip解压文件,并保留原压缩包
unzip -d + dir + xx.zip将 xx.zip解压到某个指定dir(目录),并保留原压缩包
15.2、gzip

gzip只能压缩文件 ,不能压缩目录,后缀名为.gz,而且不保留原文件

命令描述
gzip + 文件压缩文件
gunzip + xx.gz解压文件
gzip -d + xx.gz解压文件
15.3、bzip2

bzip2只能压缩文件,不能压缩目录 ,后缀名为.bz2,而且不保留原文件

命令描述
bzip2 + 文件压缩文件
bzip2 -k + 文件压缩文件,并保留原文件
bunzip2 + xx.bz2解压文件
bzip2 -d + xx.bz2解压文件
15.4、tar

tar只打包不压缩,既可打包文件,也可打包目录,后缀.tar,保留原文件/目录

命令描述
-c创建打包文件
-v列出打包的详细过程,显示进度
-f指定打包文件的名称,f 后面一定是.tar文件,所以必须放最后
-x解开包装的文件
-z以gzip命令压缩/解压缩
-j以bzip2命令压缩/解压缩
tar -cvf xx.tar +文件1 +文件2将文件1、文件2打包成 xx.tar包
tar -xvf xx.tar解开 xx.tar包
tar -zcvf xx.tar.gz + 文件/目录将文件/目录打包压缩成 xx.tar.gz
tar -zxvf xx.tar.gz将 xx.tar.gz解包解压缩
tar -jcvf xx.tar.bz2 + 文件/目录将文件/目录打包压缩成 xx.tar.bz2
tar -jxvf xx.tar.bz2将 xx.tar.bz2解包解压缩
16、重定向

echo 会在终端中显示参数指定的文字,通常会和 重定向 联合使用。

命令描述
echo xx在终端中显示“xx”
echo xx > test.txt将 “xx” 添加到 test.txt 中,并覆盖原内容
cat > test.txt单行重定向:按回车开始输入数据,每输一行按回车键就写入文件,按 Ctrl+c 结束,原内容会被覆盖
cat > test.txt <<EOF多行重定向:按回车开始输入数据,换行按回车键,输入标识符 “EOF” 结束,原内容会被覆盖
cat test2.txt > test1.txttest1.txt 中原内容会被 test2.txt 覆盖

以追加方式重定向:

命令描述
echo xx >> test.txt将 “xx” 追加到 test.txt 的末尾
cat >> test.txt单行追加:按回车开始输入数据,每输一行按回车键就写入文件末尾,按 Ctrl+c 结束
cat >> test.txt <<EOF多行追加:按回车开始输入数据,换行按回车键,输入标识符 “EOF” 结束,输入的数据一次性写入文件末尾
cat test2.txt >> test1.txttest2.txt 的内容会追加到 test1.txt 末尾

单行重定向 是每一行写完敲回车之后进行写入文件;
多行重定向 是以指定标识符开始,指定标识符结束,遇到标识符后才进行写入文件;

17、管道命令

管道命令:将 一个命令的输出 可以通过管道 做为 另一个命令的输入,可以对数据进行连续处理。

17.1、常用来作为第一个命令的有: less,more,head,tail
命令描述
less /etc/passwd | grep test在“/etc/passwd”中过滤出与 含有“test” 的行
tail -n /etc/passwd | grep test在“/etc/passwd”末尾 n 行过滤出含有 “test” 的行
ls -l | grep test.txt过滤出当前目录下与 test.txt 相关的文件
cat test.txt| grep aa在 test.txt 文件中过滤出含有 “aa” 的行
17.2、常用来作为第二个命令的有:cut、sort、uniq、wc

cut

命令描述
head -5 test.txt | cut -c 2截取 test.txt 前面 5 行中的第2列字符
cat /etc/passwd | cut -d ‘:’ -f 1,3截取 /etc/passwd 第1列和第3列所有字段(以“:”为界,若某一行无“:”,则整行视为1个字段)
cat /etc/passwd | cut -d ‘:’ -f 1-3截取 /etc/passwd 第 1~3 列所有字段

sort

命令描述
sort + 文件按照首列0-9,a~z顺序对文件内容排序
sort -u + 文件排序时去掉重复行
sort -n + 文件升序:1、数字0排第一行;2、首列为字符,按a~z顺序;3、首列为数字,按整个数字段大小从小到大排序
sort -nr + 文件降序,与 -n 相反
sort -t ‘,’ -k2nr + 文件-t:指定以 ‘,’ 为分隔符,-k2:根据第二列排序

uniq

常搭配sort使用。

命令描述
cat test.txt | sort | uniq将test.txt的内容进行排序,并去掉重复行
cat test.txt | sort | uniq -c在首列前插入一列,显示该行重复次数

wc

命令描述
wc + 文件显示指定文件的行数,单词数,字节数
wc + *.txt显示多个文件的行数,单词数,字节数
wc + 1.txt 2.txt 3.txt显示多个文件的行数,单词数,字节数
wc -c + 文件只显示指定文件的字节数
wc -w + 文件只显示指定文件的单词数
wc -l + 文件只显示指定文件的行数
ls /etc | wc -w显示 /etc 下有多少文件和目录

三、用户和用户组管理

1、登录、查看、退出用户
1.1、用户登录
1.2、查看用户 — who
命令描述
who显示所有已登录系统的用户
whoami显示当前登录的用户名
who -q只显示登录用户账号和数量
who -H显示各栏位的标题信息列
cat /etc/passwd查看所有用户(/etc/passwd末尾记录着当前系统存在多少个用户)(不需要root权限)
id查看用户 UID 和 GID 信息
1.3、用户退出 — exit
  • 若是由其他账户切换到当前账户的,则返回上一个登录用户。
  • 若是由图形化界面切换到命令模式的,则返回图形化界面。
  • 若是使用ssh远程登录,则退出当前登录账户。
2、用户权限管理

在这里插入图片描述
在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
2.1、修改文件权限 — chmod

chmod [-R] xxx 文件或目录

在这里插入图片描述
Linux 文件的基本权限就有九个,分别是owner/group/others(拥有者/组/其他) 三种身份各有自己的 read/write/execute 权限。

用数字修改:

  • 读 r:4
  • 写 w:2
  • 执行 x:1
命令描述
chmod 777 + 文件所有用户都可读写执行
chmod 752 + 文件属主可读写执行、属组可读执行、其他用户可写
chmod 711 + 文件属主可读写执行、属组可执行、其他用户可执行

用字符修改:

  • 拥有者:u
  • 组:g
  • 其他用户:o
  • 全部身份:a等效于 ugo
命令描述
chmod a=rwx + 文件所有用户都可读写执行
chmod u=rwx,g=rx,o=w + 文件属主可读写执行、属组可读执行、其他用户可写
chmod u=rwx,g=x,o=x + 文件属主可读写执行、属组可执行、其他用户可执行
chmod a-x + 文件所有用户不可执行
chmod u-x,g+w,o-w + 文件属主不可执行,属组可执行,其他用户不可执行
2.2、修改文件属主 — chown

chown修改文件所有者,同时也能修改文件属组

chown [-R] 属主名:属组名 文件名

-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

2.3、修改文件属组 — chgrp

chgrp [-R] 属组名 文件名

2.4、临时获取root权限 — sudo

sudo 是允许普通用户执行一些或者全部的root命令的一个工具。

安装配置sudo:

  1. 先用root账户登录,安装sudo

yum install sudo

  1. vi /etc/sudoers (修改 /etc/sudoers配置文件)
  2. 添加一行 test ALL=(ALL) ALL,保存文件后退出。(test为自定义用户名)这样普通用户test就可以执行root权限的所有命令。
    在这里插入图片描述

sudo用法:
举例:作为普通用户test是不能删除其他用户one,但加sudo后就可以,sudo userdel -r one

谨记:学习sudo后,大部分操作都要在普通用户下进行,养成习惯。

3、用户添加、删除、修改

注:该栏所有内容都需要root权限,使用 sudo

3.1、添加用户 — useradd

sudo useradd [option] 用户

命令描述
sudo useradd admin创建新用户admin,默认用户家目录为/home/admin
sudo useradd -d /home/no1 one创建新用户one,指定用户家目录为/home/no1
sudo useradd -d /home/no1 one -g testgroup创建新用户one,指定用户家目录为/home/no1,并加入testgroup组
3.2、删除用户 — userdel

sudo userdel -r 用户名

该用户是非登录状态才能删除。

3.3、修改用户密码 — passwd

修改用户密码:sudo passwd + 用户名

3.4、修改用户名、用户家目录、用户组 — usermod

修改用户名

sudo usermod -l 新用户名 原用户名

修改用户家目录

sudo usermod -d 新家目录 用户名

修改用户组

sudo usermod -g 用户组 用户名

一次性修改用户名和家目录:
用户名two 家目录/home/two >>> 用户名one 家目录/home/one

sudo usermod -l one -d /home/one two

4、切换用户
命令描述
su默认切换到root账户
su + 用户名切换到指定用户
5、用户组管理
5.1、添加组账号 — groupadd
命令描述
sudo groupadd + 组用户名添加组用户名
5.2、删除组账号 — groupdel
命令描述
sudo groupdel + 组用户名删除组用户名
5.3、查看组信息

组信息保存在 /etc/group 文件中

cat /etc/group

5.4、修改用户组属性 — groupmod

用于更改群组识别码或名称。

命令描述
groupmod -g <群组识别码> + 组名更改群组识别码
groupmod -g <群组识别码> -o + 组名重复使用群组识别码
groupmod -n <新群组名称> + 组名更改组名称
5.5、递归修改文件/目录的所属组

chgrp -R 组名 文件/目录名

四、系统管理

1、查看日历 — cal
命令描述
cal显示当月日历
cal -y显示当年日历
cal 2021显示2021年日历
2、查看时间 — date
命令描述
date查看当前时间,如:Sun Mar 27 11:22:45 CST 2022
date -s + 时间设置系统时间,如:date -s “2022-3-27 11:15:01”

重置时间:

  1. 安装ntp网络时间服务:sudo yum install ntp
  2. 网络时间同步命令:ntpdate -u ntp.api.bz
    (NTP服务器地址 :ntp.api.bz)
3、测试远程主机连通性 — ping
命令描述
ping -c n + 域名/地址指定接收包的次数n,如:接收3次包 ping -c 3 baidu.com
ping -i 3 -s 1024 -t 255 + 域名/地址-i 3 发送周期为 3秒;-s 设置发送包的大小为1024; -t 设置TTL值为 255
Ctrl + c终止测试
4、显示网卡信息 — ifconfig

在这里插入图片描述

命令描述
sudo ifconfig + 网卡名 + ip修改网卡ip,如:sudo ifconfig ens33 192.168.232.129

:windows查看网卡信息是ipconfig

5、查看网络状态 — netstat
命令描述
netstat -a显示详细的网络状况
netstat -nu显示当前户籍UDP连接状况
netstat -apu显示UDP端口号的使用情况
netstat -i显示网卡列表
netstat -g显示组播组的关系
netstat -s显示网络统计信息
netstat -l显示监听的套接口
6、查看进程状态 — ps
命令描述
ps显示当前进程的状态,类似 Windows的任务管理器
ps -A列出所有的进程信息
ps -u root列出root用户进程信息
ps -ef显示所有进程信息,连同命令行
ps -ef | grep + 进程关键字查找指定进程信息,如:ps -ef | grep php
pstree以树状图显示进程信息
pstree -apnh以树状图显示进程间的关系
7、动态显示进程信息 — top

top命令执行后,以下命令可进行排序。

命令描述
M根据内存使用量来排序
P根据CPU占有率来排序
T根据进程运行时间的长短来排序
U按下后会出现输入行,根据输入的用户名来筛选进程
q退出
8、停止进程 — kill
命令描述
kill -9 + 进程id需要知道进程id,才能停止某个进程( -9 表示强制终止)
killall + 进程名只需要知道进程名,就可停止某个进程
9、重启 — reboot、shutdown
命令描述
reboot立刻重启
shutdown –r now立刻重启
shutdown –r 20:20系统在今天20:20重启
shutdown –r 1010分钟后重启
10、关机 — shutdown、halt、poweroff
命令描述
shutdown –h now立刻关机
shutdown –h 20:20系统在今天20:20关机
shutdown –h +10系统在10分钟后关机
halt关闭系统
halt -p关闭系统并关闭电源
halt -d关闭系统,但不留下记录
poweroff立刻关机

五、磁盘管理

1、显示整体磁盘使用量 — df
命令描述
df将系统内所有的文件系统列出来!
df -h将容量结果以易读的容量格式显示出来(K、M、G)
df -aTh将系统内的所有特殊文件格式及名称都列出来
2、检查磁盘空间使用量 — du

du是对文件和目录磁盘使用的空间的查看,其实会直接到文件系统内去搜寻所有的文件数据。

命令描述
du只列出当前目录下的所有子目录容量(包括隐藏文件夹)
du -a将文件的容量也列出来
3、用于磁盘分区 — fdisk
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值