Linux | Linux常用指令学习笔记
阅读原文时间:2023年07月08日阅读:3

@

目录


前言

由于项目需要用到一些Linux相关知识,故学习了一些Linux基本知识,如目录结构与常用指令等;

资料来源:B站《2021韩顺平 一周学会Linux》


1. Linux目录结构:

Linux的目录结构是核心内容之一,在Linux里,一切皆文件。

目录

说明

/root

【常用】超级管理员的主目录;

/bin

【常用】Binary的缩写,存放最经常使用的命令;

/sbin

s是Super User的缩写,存放系统管理员使用的系统管理程序;

/boot

【常用】存放Linux启动时的一些核心文件,包括连接文件与镜像文件;

/dev

类似windows的设备管理器,把硬件用文件方式储存;

/etc

【常用】所有的系统管理所需要的配置文件和子目录,如安装mysql数据库的my.conf;

/home

【常用】存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般目录名为账号名;

/var

【常用】存放不断扩充的东西,习惯性将经常被修改的目录放在这个目录下,包括各种日志文件;

/lib

系统开机所需要最基本的动态连接共享库,作用类似于Windows里的DLL文件。几乎所有程序都要用到这些共享库;

/usr

【常用】非常重要,用户的应用程序与文件,类似于Windows下的program files目录;

/media

【常用】Linux将识别的设备挂挂载在这个目录下,如:U盘、光驱等;

/mnt

【常用】系统提供该目录是为了让用户临时挂载别的文件系统,可以将外部储存挂载在/mnt/上;

/usr/local

【常用】另一个给主机额外安装软件所安装的目录。一般通过编译源码方式安装的程序;

/lost+found

一般情况下是空的,当系统非法关机后,会存放一些文件;

/tmp

存放临时文件;

/opt

给主机额外安装软件所存放的目录,如安装Oracle数据库可以安装在此。默认的为空;

/selinux

SELinux是一种安全子系统,能控制程序只能访问特定文件,有三种工作模式,可自行设置。

/proc

【不能动】虚拟目录,系统内存的映射,访问这个目录来获取系统信息;

/srv

【不能动】service的缩写,存放一些服务启动后需要提取的数据;

/sys

【不能动】Linux2.6内核变化,该目录下安装了2.6内核中新出现的文件系统sysfs;

2. 运行级别:

  • 0:关机;

  • 1:单用户【找回丢失密码】

  • 2:多用户状态没有网络服务(少用);

  • 3:多用户有网络状态服务(经常用);

  • 4:系统未使用保留给用户;

  • 5:图形界面(常用);

  • 6:系统重启;

命令

说明

init 5

切换运行级别为5;

systemctl get-default

查看当前运行级别;

systemctl set-default TARGET.target

设置运行级别

TARGET:

在CentOS7后,在/etc/inittab文件中,进行了简化:

multi-user.target :类似于3;

graphical.target:相当于5。

3. vim相关快捷键:

命令

说明

vim XXX

进入XXX文件 -> “一般模式”;

yy p

复制黏贴;

5yy p

赋值黏贴以下5行;

dd

删除当前行;

u

撤销;

gg

到首行;

G

到末行;

20 shift键+g

快速定位到20行;

i或a

“一般模式”-> “编辑模式”;

ESC键

“编辑模式” ->“一般模式”;

: 或 /

“一般模式”-> “命令行模式”;

:set nu

设置行号;

:set nonu

取消行号;

/XXX

查找XXX关键字,n查找下个;

:w

保存;

:q

退出;

:wq

保存并退出;

:q!

强制退出不保存;

ESC键

“命令行模式”-> “一般模式”;

4. 开关机相关命令:

命令

说明

shutdowm -h now

立刻关闭主机;

shutdowm -h 1 "一分钟后关机"

一分钟后关机,并显示“一分钟后关机”;

shutdowm

同上;

shutdowm -r now

立刻重启主机;

halt

关机;

reboot

重启;

sync

把内存数据同步到磁盘;

su - root

切换root用户;

logout

注销当前用户/注销;

5. 查看系统信息相关命令:

命令

说明

uname -r

查看Linux内核版本;

cat /etc/os-release

查看系统配置;

cat /etc/redhat-release

查看centOS版本;

6. 用户管理相关命令:

命令

说明

useradd + 用户名

添加用户;

useradd -d /home/test king

添加King用户,该用户文件夹名为test;

passwd

给当前登录用户修改密码;

passwd + 用户名

给指定用户修改密码;

userdel + 用户名

删除用户,保留家目录(一般情况即建议保留);

userdel -r + 用户名

【慎重】删除用户与家目录;

id + 用户名

查询用户信息;

whoami

查询当前登录的用户,切换后还是之前的,下同;

who am i

查询当前用户信息,登录ip等;

su + 用户名

切换用户(权限高向低不用密码)

logout或exit

注销当前用户/注销,返回上一层;

用户组管理:

未指定组时默认新建跟用户名相同的组名;

命令

说明

groupadd + 组名

添加组名;

useradd -g + 组名 + 用户名

增加用户时直接加上组;

usermod -g + 组名 + 用户名

修改用户的组;

groupdel + 组名

删除组;

用户和组相关文件

目录

说明

/etc/password

【用户配置文件】每行含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

/etc/shadow

【口令配置文件】每行含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

/etc/group

【组配置文件】每行含义:组名:口令:组标识号:组内用户列表

7. 帮助指令:

命令

说明

man ls

获取帮助信息(按空格键换页),后续可以-a;

ls -a

列出所有文件,包括以“.”开头的隐藏文件;

ls -l

单列输出文件,每一行一个文件(详细);

ls -la /root

列出指定目录/root的所有、单列文件;

help

获取shell内置命令的帮助信息;

help cd

获取cd用法说明(英文),建议直接百度;

8. 文件目录指令:

命令

说明

ls

列出当前目录下目录或文件;

ls -a

列出所有文件,包括以“.”开头的隐藏文件;

ls -l

单列输出文件,每一行一个文件(详细);

ls -h

按照人能看懂的单位显示文件;(大小等)

ls -la /root

列出指定目录/root的所有、单列文件;

pwd

显示当前用户在哪个目录下(绝对路径);

命令

说明

cd XXX

进入XXX文件夹;

cd ~

返回到家目录;

cd ..

返回当前目录是上一级目录;

cd /root

回到root目录;

命令

说明

mkdir

创建目录(文件夹);

mkdir /home/dog

在home下创建dog目录;

mkdir -p /home/animal/dog

创建多级目录;

touch hello.txt

创建hello.txt空文件;

命令

说明

rmdir + 路径

删除空目录;

rm -rf + 路径

【谨慎】递归强制删除非空目录(-r 递归)(-f 强制不提示);

命令

说明

cp hello.txt bbb/

将hello.txt复制到bbb文件夹下;

cp -r /home/bbb /opt

将/home/bbb整个目录拷贝到/opt;

\cp -r /home/bbb /opt

【谨慎】强制覆盖不提示;

命令

说明

mv cat.txt pig.txt

两个文件在同一级目录下,重命名;

mv pig.txt /root/

两个文件在不同级目录下,移动文件(剪切);

mv pig.txt /root/pig.txt

移动并重命名;

mv bbb/ /home/

将/bbb整个目录移动到/home下;

命令

说明

cat /etc/profile

【推荐】查看/etc/profile文件内容;

cat -n /etc/profile

查看/etc/profile文件内容,显示行号;

cat -n /etc/profile | more

管道命令 | more,将前面指令交给后面处理;(enter下一行,空格翻页,q离开,=输出当前行号,:f输出文件名和当前行号,Ctrl+F向下滚动一屏,Ctrl+B返回上一屏)

more /etc/bashrc

用more指令操作/etc/bashrc;

命令

说明

less

类似more,动态加载;

less 杂文.txt

采用less查看大型文件/opt/ 杂文.txt;(空格键下一页,pagedowm下翻一页,pageup上翻一页,q退出,/字符串 向下搜索字符串 n向下 N向上)

命令

说明

echo

输出内容到控制台;

echo $PATH

输出环境变量;

echo $HOSTNAME

输出主机名;

echo "hello world"

输出hello world到控制台;

命令

说明

head + 文件

显示文件开头部分,默认显示前10行;

head -n 5 文件

查看文件前5行

tail+ 文件

查看文件尾10行;

tail -n 5 文件

查看文件尾5行;

tail -f 文件

实时追踪该文档的所有更新;

命令

说明

>

输出重定向(覆盖);

>>

追加;

echo “hello” > /home/mydate.txt

将控制台输出内容hello重定向输入到mydate.txt文件;

ls -a > a.txt

列表的内容写入a.txt中(覆盖写,文件不存在则自动创建);

ls -al >> aa.txt

列表的内容追加到aa.txt的末尾;

cat 文件1 > 文件2

将文件1的内容覆盖到文件2;

cal >> /home/mycal

将当前日历信息追加到/home/mycal中;

命令

说明

ln -s /root/ /home/myroot

在/home目录下创建一个软连接myroot,连接到/root目录;

rm /home/myroot

删除软连接myroot;

命令

说明

history

查看已执行历史命令,也可执行历史命令;

history 10

显示最近10条历史命令;

!5

执行历史编号为5的指令;

9. 日期类指令:

命令

说明

date

显示当前时间;

date "+%Y"

显示当前年份;

date "+%m"

显示当前月份;

date "+%d"

显示当前是哪一天;

date "+%Y-%m-%d %H:%M:%S"

显示年月日、时分秒;

date -s "2021-07-09 14:33:10"

设置日期为2021-07-09 14:33:10;

cal

显示日历;

cal 2021

显示2021年日历;

10. 搜索查找类指令:

命令

说明

find

从指定目录向下递归遍历其各个子目录,将满足条件文件或目录显示在终端;

find /home -name hellow.txt

查找/home下的hello.txt文件;

find /opt - user nobody

查找/opt目录下,用户名为nobody的文件;

find / -size +200M

查找整个linux系统下大于200M的文件;(+n大于 -n小于 n等于,单位有k M G)

updatedb

将文件形成locate数据库,使用locate查询必须先updatedb;

locate

快速定位文件路径(快速、需要定期updatedb);

locate hello.txt

快速定位hello.txt文件所在目录;

which

可以查看某个指令在哪个目录下;

which ls

查找ls指令在哪个目录下;

grep

过滤查找,与管道符"|",一起用,表示将前一个命令的处理结果输出传递给后面命令处理;

cat /home/hello.txt | grep "yes"

在hello.txt文件中,查找“yes”所在行;

cat /home/hello.txt | grep -n "yes"

在hello.txt文件中,查找“yes”所在行,并且显示行号;

grep -n "yes" /home/hello.txt

同上;

cat /home/hello.txt | grep -i "yes"

在hello.txt文件中,查找“yes”所在行,并且不区分大小写;

11. 压缩与解压类指令:

命令

说明

gzip

压缩文件(只能压缩成 *.gz文件);

gzip /home/hello.txt

将/home下的hello.txt文件进行压缩(只能压缩成 *.gz文件);

gunzip /home/hellow.txt.gz

将/home下的hello.txt.gz文件进行解压;

zip

用于压缩文件或文件夹(-r递归压缩 -d指定解压后存放目录);

zip -r myhome.zip /home/

将/home下的所有文件进行压缩成myhome.zip;(包括home文件夹本身)

unzip -d /opt/tmp /home/myhome.zip

将/home/myhome.zip解压到/opt/tmp目录下;

tar

打包,将文件打包成 .tar.gz;(-c产生.tar打包文件 -v显示详细信息 -f指定压缩后的文件名 -z打包的同时压缩 -x解包.tar文件)

tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt

压缩多个文件,将 /home/pig.txt 和 /home/cat.txt 压缩成 pc.tar.gz;

tar -zcvf myhome.tar.gz /home/

将 /home 的文件压缩成 myhome.tar.gz;

tar -zxvf pc.tar.gz

将 pc.tar.gz 解压到当前目录,切换到 /opt/;

tar -zxvf /home/myhome.tar.gz -c /opt/tmp2

将 myhome.tar.gz 解压到 /opt/tmp2 目录下;


最后

新人制作,如有错误,欢迎指出,感激不尽!
欢迎关注公众号,会分享一些更日常的东西!
如需转载,请标注出处!