Linux基本指令合集

视频教程链接:https://www.bilibili.com/video/BV1Sv411r7vd?spm_id_from=333.337.search-card.all.click

1. Linux目录结构

Linux:一切皆文件

  1. /root:存放最经常使用的命令
  2. /home:普通用户的主目录
  3. /root:系统管理员用的目录
  4. /lib:动态连接共享库
  5. /etc:所有的系统管理所需要的配置文件和子目录
  6. /usr:用户的应用程序和文件
  7. /boot:linux启动的相关文件
  8. /dev:硬件以文件形式存储
  9. /media:自动识别一些设备:如U盘、光驱等
  10. /mnt: 让用户临时挂载别的文件系统。
  11. /usr/local:另一个给主机额外安装软件所安装的目录。一般是通过编译源码的方式安装的程序
  12. /var:这个目录中存放着不断扩充着的东西,习惯将经常被修改的目录放在这个目录下,包括各种日志文件。
  13. /proc:不能动,是虚拟目录

2. vi/vim 基本操作命令

vim hello.java			# 修改文件

====进入文件后:====
i 或 a					# 进入编辑模式
esc						# 正常模式
:						# 命令模式
:wq						# 保存并退出
:q						# 退出
:q!						# 强制退出,不保存

====拷贝&删除====
一般模式下:
yy						# 拷贝当前行(copy)
5yy						# 拷贝及往下五行
p						# 粘贴(paste)

dd						# 删除当前行(delete)
5dd						# 删除当前及往下五行

====查找====
命令行下:
/关键词					# 查找该关键词
n						# 查找下一个(next)


====设置文件的行号====
:set nu					# 设置行号 number
:set nonu				# 取消行号

====转到首行和尾行====
一般模式下:
g						# 到最后一行
gg						# 到第一行

====撤销====
一般模式下:
u						# 撤销 undo
 
====转到行号====
一般模式下:
20 再输入shift+g			# 转到第20行

3. 关机/重启操作命令

shutdown -h now				# 立刻关机,h:halt
shutdown -h 1				# 一分钟后关机
shutdown -r now 			# 现在重启计算机
halt						# 关机
reboot						# 重启
sync						# 将内存的数据同步到磁盘
  1. 不管是重启系统还是关闭系统,首先要运行sync命令,将内存中的数据写到磁盘中
  2. 目前的shutdown/reboot/halt等命令已经在关机前执行了sync,但是最好还是自己同步一下

4. 用户管理操作命令

登陆和注销

  1. 登陆时尽量少用root账号登陆,因为他是系统管理员有很大权限,避免操作失误。可以用普通用户登陆,登陆后再使用su - 用户名 命令来切换系统管理员身份。
  2. logout:注销用户。这个指令再徒刑运行级别无效,在运行级别3下有效。

权限管理

useradd cherry				# 添加用户名为cherry的用户。会自动创建和用户同名的home目录
useradd -d /home/test king	# 指定在某个目录下新建用户工作区间
passwd cherry				# 给cherry这个用户改密码

userdel cherry				# 删掉cherry用户,但保留cherry目录
userdel -r cherry			# 删掉cherry用户,并删除cherry目录【注意!注意!注意!这一步一定要慎重】

id cherry					# 查看用户的id,如果不存在,返回无此用户

su - 用户名					# 切换到用户或者root,如果权限不够就切换到高权限用户
exitlogout				# 从权限高的用户切换到权限低的用户,不需要输入密码

whoamiwho am i			# 查看当前登陆的用户

用户组

groupadd 组名				# 新增组。类似于角色,系统可以对有共性权限的多个用户进行统一的管理。
groupdel 组名				# 删除组
useradd -g 用户组 用户名		# 将用户加入到某用户组里。没有指定组,则创建一个以用户名为组名的组。
usermod -g 用户组 用户名		# 将用户放到另一个用户组里去。
  • /etc/passwd 文件
    用户(user)的配置文件,记录用户的各种信息
    每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

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

  • /etc/group 文件
    组(group)的配置文件,记录Linux包含的组的信息
    每行含义:组名:口令:组标识号:组內用户列表

5. 运行级别

0:关机
1: 单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形界面
6:系统重启
常用运行级别是3和5,也可以指定默认运行级别

init 3		# 切到级别3,init [0123456] ,通过init 来切换不同的运行级别,比如动 5-3,然后关机。

在 centos7 以前,/etc/inittab 文件中
进行了简化,如下:
multi-user.target: analogous to runlevel 3
graphical.target: analogous to runlevel 5

systemctl get-default					# 查看当前的运行级别
systemctl set-default TARGET.target		# 设置运行级别

6. 帮助指令

man 命令				# man ls :查看ls这个命令的帮助文档
help 命令			# help ls : 查看ls这个命令的帮助文档

7. 文件目录类

文件目录增删改查

pwd 指令				# 显示当前工作目录的绝对路径.pwd: Print name of current/Working Directory
ls -a				# 显示当前目录所有的文件和目录,包括隐藏的目录
ls -l				# 以列表方式显示信息
cd 目录				# 切换到某个目录
cd ~				# 回到home目录
cd :				# 回到home目录
cd ..				# 回到当前目录的上一级目录

========
mkdir 目录			        # 创建一个目录
mkdir -p /home/animal/tiger	# 创建多级目录
touch 文件名称				# 创建空文件
cp 原文件路径 目的路径			# cp /home/hello.txt /home/bbb 拷贝文件
\cp -r 原文件路径 目的路径		# 强制覆盖目的文件且不提示



========
rmdir 目录					# 删除一个【空】目录
rm -rf 目录					# 删除一个【非空】目录 【不要轻易使用这个命令,除非你知道自己在干什么!!】
rm -r 目录					# 递归删除整个文件夹
rm -f 目录					# 强制删除不提示


========
mv 原文件名 新文件名			# 重命名文件
mv 源文件目录 目标文件目录		# 移动文件

========
cat 文件						# 查看文件。cat 只能浏览文件,而不能修改文件,为了浏览方便,一般会带上管道命令| more
cat -n 文件					# 显示行号
cat -n 文件 | more			# 进行交互
echo 内容					# 输出内容到控制台,内容可以是环境变量,如$PATH, $HOSTNAME
head 文件					# 查看文件前十行内容
head -n 5 文件				# 查看文件前五行的内容
tail 文件					# 查看文件最后十行的内容
tail -n 5 文件				# 查看文件最后五行的内容
tail -f 文件					# 实时追踪该文档的所有更新

more / less

more指令是一个基于vi编辑器的文本过滤器,以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键:

more 文件			# 以more模式打开文件

空白键				# 往后翻一页
回车					# 往下翻一行
q					# 离开文件,不再显示该文件内容
ctrl+F				# 向下滚一屏
ctrl+B				# 返回上一屏
=					# 输出当前行的行号
:f					# 输出文件名和当前行的行号

less指令用来分屏查看文件内容,它的功能与 more 指令类似,但是比 more 指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。

less 文件			# 以less模式打开文件

空白键				# 向下翻一页
[pageup]			# 向上翻一页
[pagedown]			# 向下翻一页
/字串				# 向下搜索字串,n向下查找 N向上查找
?字串				# 向上搜索字串,N向下查找 n向上查找
q					# 离开less模式

>输出重定向和>>追加

> 输出重定向
>> 追加

ls -l >文件			# 列表的内容写入到文件中(覆盖写)
ls -al >>文件		# 列表的内容追加到文件的末尾
cat 文件1 > 文件2	# 将文件1的内容覆盖到文件2
echo "内容">> 文件	# 将内容追加到文件后 

ln指令

ln -s 原文件或目录 软链接名	# 给原文件创建一个软链接,用于链接到该文件/目录

history指令

查看执行过的指令

history

时间日期类

date						# 显示当前时间
date +%Y					# 显示当前年份
date +%m					# 显示当前月份
date +%d					# 显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S"	# 显示年月日时分秒 

date -s "2022-01-03 20:20:11" #将当前系统时间设置为字符串中的时间

cal							# 显示当前日历
cal 2022					# 显示2022年的日历

搜索查找类

find

find 搜索范围 目的文件或目录
find /home -name hello.txt	# 按文件名,查找home目录下的hello.txt文件
find /home -user cherry		# 按拥有者,查找home目录下的用户名称为cherry的文件
find / -size +200M			# 查找大于200M的文件
find / -size -200k			# 查找小于200k的文件
find / -size 200G			# 查找等于200G的文件 

locate

locate指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 1oeate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。

由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate数据库。

locate 文件					# 搜索文件路径
which 指令					# which cd :查看cd指令在哪个目录

grep

grep 过滤查找
管道符,表示將前一个命令的处理结果输出传递给后面的命令处理。

grep 查找内容 原文件		# 在原文件中查找内容
grep -n 查找内容 原文件	# 显示匹配行及行号
grep -i 查找内容 原文件	# 忽略字母大小写

cat /home/hello.txt | grep "yes"	# 显示hello.txt中yes所在的行,并显示行号
grep -n "yes" /home/hello.txt		# 同上

压缩和解压类

gzip 文件				# 将文件压缩为*.gz文件
gunzip 文件.gz			# 将gz文件解压

zip 文件					# 将文件压缩为.zip文件
unzip 文件				# 将zip文件解压
zip -r myhome.zip /home/	# 将home目录及其包含的文件和子文件夹都压缩
unzip -d /opt/tmp /home/myhome.zip	# 将/home/myhome.zip解压缩到/opt/tmp

tar xxx.tar.gz 文件或目录		# 打包内容为.tar.gz文件
tar -c xxx.tar.gz 文件或目录	# 产生.tar打包文件
tar -v xxx.tar.gz 文件或目录	# 显示详细信息
tar -f xxx.tar.gz 文件或目录	# 指定压缩后的文件名
tar -z xxx.tar.gz 文件或目录	# 打包同时压缩
tar -x xxx.tar.gz 文件或目录	# 解压.tar文件

8. 组管理和权限管理

  • 文件/目录的所有者:文件的创建者
ls -ahl						# 查看文件的所有者
chown 用户名 文件名			# 修改文件的所有者

groupadd 组名				# 创建一个组
useradd -g 组名 用户名		# 创建一个用户,将其放入组

chgrp 组名 文件名				# change group,修改文件/目录所在的组

usermod -g 新组名 用户名		# 改变用户所在的组
usermod -d 目录名 用户名		# 改变用户登陆的初始目录 

rwx权限

在这里插入图片描述

0-9 位说明

  • 第0位确定文件类型(d,-,1,c,b)
    1是链接,相当于 windows 的快捷方式
    d是目录,相当于 windows 的文件夹
    c是字符设备文件,鼠标,键盘
    b 是块设备,比如硬盘
  • 第1-3 位确定所有者(该文件的所有者)拥有该文件的权限。—User
  • 第4-6 位确定所属组(同用户组的)拥有该文件的权限,–Group
  • 第7-9位确定其他用户拥有该文件的权限 --Other

其他:
2: 文件硬链接数或目录子目录数
cherry:用户
cherry:组
4096:文件大小(字节),如果是文件夹,显示4096
May 2 21:49:最后修改日期
cherry:文件名


  • rwx作用到文件
    [r]代表可读(read):可以读取,查看
    [w]代表可写(wite):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
    [x]代表可执行(execute):可以被执行
  • rwx作用到目录
    [r]代表可读(read): 可以读取,1s查看目录内容
    [w]代表可写(write):可以修改,对目录内创建+删除+重命名目录
    [x]代表可执行(execute):可以进入该目录

修改权限

chmod u=rwx, g=rx, o=rx abc.txt # 给abc文件的所有者user读写执行的权限,给所在组group读执行权限,给其他组others读执行权限
chmod u-x, g+w abc				# 给abc文件的所有者除去执行的权限,增加组写的权限
chmod a+r abc					# 给abc文件的所有用户all增加读权限

通过数字变更权限
r = 4 w = 2 x = 1
rwx = 4+2+1 = 7
chmod u=rwx, g=rx, o=x abc.txt  相当于==> chmod 751 abc.txt

chown 新所有者 文件/目录				# 改变所有者
chown 新所有者:新所有者所在组 文件/目录	# 改变所有者和所在组
chown -R 所有者 文件/目录				# 如果是个目录,则其下所有的子文件或目录都递归生效

chgrp 组名 文件/目录					# 修改文件/目录所在组
chgrp -R 组名 文件/目录				# 修改目录下所有文件和目录的所在组都改成对应组
  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值