Linux常用命令

Share
  • 2022年7月29日

查询

查询目录中的内容:ls
ls -a :显示所有文件,包括隐藏文件
ls -l :显示详细信息,也可写作 ll
ls -d :查看目录属性
ls -h :人性化显示文件大小
ls -i :显示inode
这些命令不加文件默认会操作当前文件夹下所有文件

文件处理命令

目录处理命令:
mkdir -p [目录名]:创建目录
-p:创建多级目录
mkdir -p father/son
会创建 father/son 两级目录
cd :切换目录 control+l 是清屏
cd ~ :进入用户的home目录

cd – :进入上次目录

cd .. :进入上一级目录

cd . :进入当前目录

pwd :输出当前工作目录
rm -rf [文件或目录]:强制删除目录
cp [选项] [原文件或目录] [目标目录] :复制cp -r [原文件或目录] [目标目录] : 复制目录cp -p [原文件或目录] [目标目录] : 连带文件属性复制cp -d [原文件或目录] [目标目录] :若源文件是链接文件,则复制链接属性cp -a [原文件或目录] [目标目录] :相当于 -pdr
mv [ 原文件或目录] [目标目录] :剪切
常用目录
/ :根目录
/lib :存放一些linux的库函数
/mnt : 系统挂载目录
/home : 普通用户家目录
/root : 超级用户家目录
/tmp :存放一些临时文件
/dev :设备文件保存目录,硬件信息
/ect :配置文件保存目录
/boot : 启动目录,启动相关目录
/media : 挂载光盘目录
/proc : 直接写入内存
/usr : 系统资源保存目录
/var和/sys :用来保存内存的挂载点,不可进操作
/bin 和/sbin :用来保存系统目录的 bin只有普通用户可以用 sbin只有超级用户可以用
链接命令
ln -s [原文件] [目标文件] : 软连接
ln [原文件] [目标文件] : 硬链接
文件搜索命令
locate [文件名] :文件搜索命令
updatedb :后台数据库更新
1.在后台数据库中按文件名搜索,搜索速度更快
2.后台数据库是/var/lib/mlocate
3.这个数据库不是实时更新的,每天更新一次或者执行数据库更新命令。

whereis [命令]: 搜索命令的命令
whereis -b [命令] : 只查找可执行文件
whereis -m [命令]: 只查找帮助文件
which [文件名] :搜索命令所在路径及别名
find [搜索范围] [搜索条件]:文件搜索命令1.按照文件时间搜索:
find [搜索范围] [时间条件] n
时间条件:
atime:文件访问时间
ctime :改变文件属性
mtime:修改文件内容
-n n天内修改文件
n n天当天修改的文件
+n n天前修改的文件
eg:
find [搜索范围] -mtime +10
代表的意思是:在搜索范围内查找10天前修改的文件

2.按照文件大小搜索:
find [搜索范围] -size nk
-nk :小于nKB的文件
nk : 等于nKB的文件
+nk :大于nKB的文件
需要注意的是:千字节是小写k,兆字节是大写M
eg:

find [搜索范围] -size -25k
代表的意思是:在搜索氛围内查找小于25KB的文件

3.按照结点搜索:
eg:

find [搜索范围] -inum 9527
意思是:在搜索范围内查找i节点是9527的文件

4.按照文件大小范围搜索:
-a :逻辑与,两个条件都满足
-o:逻辑或,两个条件满足一个即可
eg:

find [搜索范围] -size +20k -a -size -50k
意思是:在搜索范围内查找大于20kb并且小于50kb的文件

grep [选项] 字符串 文件名:搜索字符串命令
选项:
-i 忽略大小写
-v 排除指定字符串
帮助命令
帮助命令man
man [命令] :获取指定命令的帮助
man 的命令级别
1.查看命令的帮助
2.查看内核可调用的函数的帮助
3.查看函数和函数库的帮助
4.查看特殊文件的帮助
5.查看配置文件的帮助
6.查看游戏的帮助
7.查看其它杂项的帮助
8.查看系统管理员可用的命令帮助
9.查看和内核文件相关文件的帮助
man -f [命令]:查看命令有几个等级帮助
man -k [命令]:查看和命令相关的所有帮助
按q退出man界面
其它帮助命令
[命令] –help :获取命令选项的帮助
help [shell内部命令]:获取shell内部命令的帮助
eg:
whreris cd(确定是否是shell内部命令)
cd 是
help cd(获取内部命令帮助)

info [命令]:详细命令帮助,会进入一个巨大的帮助文档
压缩和解压缩命令
.zip格式压缩
zip [压缩文件名] [源文件] :压缩文件
zip -r [压缩目录名] [源目录] : 压缩目录
unzip [压缩文件] :解压缩.zip文件
.gz格式压缩
gzip [源文件] :压缩为.gz格式的压缩文件,源文件会消失
gzip -c [源文件] > [压缩文件]:压缩为.gz格式,源文件保留
gzip -r [目录]:压缩目录下所有的子文件,但是不能压缩目录
gzip -d [压缩文件]:解压缩文件
gunzip [压缩文件]:解压缩文件
.bz2格式压缩
bzip2 [源文件]:压缩为.bz2格式,不保留源文件
bzip2 -k [源文件]:压缩之后保留源文件
bzip2 -d [压缩文件]:解压缩,-k保留压缩文件
bunzip2 [压缩文件]:解压缩,-k保留压缩文件
.tar.gz格式压缩(常见)
tar -cvf [打包/目录文件名] [源文件/目录]:打包命令
-c:打包
-v:显示过程
-f:指定打包后的文件名
其实.tar.gz格式和.tar.zb2格式是先打包为.tar格式,再压缩为.gz格式
tar -zcvf [压缩包名.tar.gz] [源文件]:压缩为.tar.gz格式
tar -zxvf [压缩包名.tar.gz]:解压缩.tar.gz格式
.tar.bz2压缩格式(常见)
tar -jcvf [压缩包名.tar.bz2] [源文件]:压缩为.tar.zb2格式
tar -jxvf [压缩包名.tar.bz2]:解压缩.tar.zb2格式
[解压命令] -C [目标目录]:将解压文件/目录存到目标目录下
tar -ztvf [压缩包名]:查看压缩包
关机和重启命令
shutdown -h [时间] : 关机
shutdown -r [时间] :重启
shutdown -c [时间]:取消前一个关机命令
[时间]可以写now 或者具体时间
reboot:重启
init [选项] :进入系统运行级别
选项:
0 : 关机
1 :单用户
2 :不完全多用户,不含NFS服务
3 : 完全多用户
4 :未分配
5 :图形界面
6 :重启
runlevel:查询当前系统运行级别
logout:退出登录命令
其它常用命令
more:它以全屏幕的方式按页显示文本文件的内容
ifconfig :查看当前网卡
table键:系统命令补全
clear:清屏命令
cat [文件名]:查看文件
touch [文件名]:创建文件
data:显示时间
cal:显示日历
sudo :超级用户
su :更改用户为root
chmod +x+r+w:添加执行/读/写权限
ps:查看进程
kill pid :结束某个进程
挂载命令
mount : 查询系统中已经挂载的设备
mount -a :依据配置文件/etc/fstab的内容,自动挂载
mount [-t文件系统] [设备文件名] [挂载点] :加入文件系统类型来指定挂载的类型,可以是ext3 ext4 iso9660等文件系统
mount [-o 特殊选项] [设备文件名] [挂载点]:可以指定挂载的额外选项
mount /dev/sr0 /mnt :把光盘挂载到mnt目录下

umount [设备文件名或挂载点]:卸载命令
umount /mnt :把mnt目录下的光盘卸载

fdisk -l:查看U盘设备文件名
mount -t vfat /dev/sdb [挂载点]:挂载U盘
mount -t vfat /dev/sdb /mnt :将U盘挂载到mnt目录下

查看登录用户信息
w:查看登录用户的信息
who:查看登录用户名,终端和时间
last:查询当前登录和过去登录的用户信息
lastlog:查看所有用户的最后一次登录时间
Shell相关命令
echo “[输出内容]” :输出命令 有空格需要打引号
echo -e [选项] “[输出内容]”:改变输出格式样式等等
选项:
a:输出警告音
b:退格键,也就是向左删除键
n:换行符
r:回车键
t:制表符号,就是tab键
v:垂直制表符
nnn:按照八进制ASCLL码表输出字符,其中0为数字零,nnn是三位八进制数
xhh:按照十六进制ASCLL码表输出字符,其中hh是两位十六进制数
e[1;31m…e[0m:显示颜色
vi hello.sh :写一个脚本
sh [脚本名称]:执行该脚本
bash相关命令
alias:查看系统中所有命令的别名
alias [别名] = [原命令]:设定命令别名
unalias [别名]:删除别名
history -c:清空历史命令
history -w:把缓存中的历史命令写入历史命令保存文件
!!:执行上一条命令
! [字符串]:重复执行最后一条以该字符串开头的命令
输出重定向
类型 符号 作用
标准输出重定向 [命令] > [文件] 以覆盖的方式,把命令的正确输出到指定的文件或设备当中
标准输出重定向 [命令] >[文件] 以追加的方式,把命令的正确输出到指定的文件或设备当中
标准错误输出重定向 错误命令 2>文件 以覆盖的方式,把命令的错误输出到指定的文件或设备中
标准错误输出重定向 错误命令 2>>文件 以追加的方式,把命令的错误输出到指定的文件或设备中
正确输出和错误输出同时保存 命令&>>文件 以追加的方式,把正确和错误输出都保存到同一个文件当中
输入重定向
wc [选项] [文件名]:统计文件中的字节,单词,行数
选项:
-c:统计字节数
-w:统计单词数
-l :统计行数
管道符
多命令顺序执行
多命令执行符 格式 作用
; 命令1;命令2 多个命令顺序执行,命令之间没有任何逻辑联系
&& 命令1&&命令2 逻辑于,当命令1正确执行,则才执行命令2。当命令1不正确执行,则不执行命令2
ll 命令1ll命令2 逻辑或,当命令1执行不正确,则命令2才会执行。当命令1正确执行,则命令2不会执行

  • && 应该在 前书写

命令1|命令2:命令1的正确输出作为命令2的操作对象
eg:
netstat -an | grep ESTABLISHED

-a/etc/ | more

通配符
通配符 作用
? 匹配任意一个

  • 匹配0个或任意字符,也就是可以匹配任何内容

[ ] 匹配中括号中任意一个字符。例如:[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c
[-] 匹配中括号中任意一个字符,-代表一个范围 例如:[a-z]代表匹配一个小写字母
[^]: 逻辑非,表示匹配不是中括号内的一个字符 例如:1代表匹配一个不是数字的字符
Bash中其他特殊符号
符号 作用
’ ’ 单引号。在单引号中所有的特殊符号,如“$”和“`”都没有特殊含义
转义符。跟在之后的特殊符号将失去特殊含义,变为普通字符

注释

$ 用语调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值
$() 括号里的内容是系统命令,在Bash中会先执行它。
vim编辑器常用指令
底行模式常用指令
w:保存
q:退出
! :强制执行
ls:列出编辑器当前执行的所有文件
n:切换到下一个文件
15:将光标切换到第15行
/xxx:从光标位置向后搜索,直到xxx第一次出现的位置
?xxx:从光标位置向前搜索,直到xxx第一次出现的位置
命令模式常用指令
h:光标左移
j :光标下移
k:光标上移
k:光标右移
ctrl + f :向下翻页
ctrl + b :向上翻页
ctrl + d :向下翻半页
ctrl + u :向上翻半页
dd :删除光标所在行
o:在光标所在行的下方插入一行并切换到输入模式
yy:复制光标所在的这一行
磁盘管理
df -l :查看磁盘分区使用状况,仅显示本地磁盘
df -a :查看磁盘分区使用状况,显示所有文件系统的磁盘使用情况,包含比如/proc/
df -h :查看磁盘分区使用状况,以1024进制计算最合适的单位显示磁盘容量
df -H:查看磁盘分区使用状况,以1000进制计算最合适的单位显示磁盘容量
df -T :查看磁盘分区使用状况,显示磁盘分区类型
df -t :查看磁盘分区使用状况,显示指定类型文件系统的磁盘分区
df -x:查看磁盘分区使用状况,不显示指定类型文件系统的磁盘分区
du -b:以byte为单位统计文件大小
du -k:以KB为单位统计文件大小
du -m:以MB为单位统计文件大小
du -h:按照1024进制以最合适的单位统计文件大小
du -H:按照1000进制以最适合的单位统计文件大小
du -s:指定统计目标
磁盘的分区
MBR分区:
主分区和扩展分区总数不能超过4个
扩展分区最多只能有一个
扩展分区不能直接存取数据,必须在扩展分区内部建立逻辑分区

fdisk :查看磁盘
fdisk [ 磁盘路径]:进入分区模式
m :分区命令详解
GTP分区(常用,不能用于32位,X86)
parted:启动分区工具
help:parted帮助命令
select [磁盘名]:切换分区磁盘
mklabel:指定分区表
print:查看当前磁盘分区类型
交互模式分区:

mkpart :创建一个分区,接下来跟着步骤走,注意4K对齐
命令分区:

mkpart [名称] [位置]
mkpart test 2000 3000

rm [分区编号]:删除分区
磁盘的格式化
格式化(format)是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。格式化通常分为低级格式化和高级格式化。如果没有特别指明,对硬盘的格式化通常是指高级格式化,而对软盘的格式化则通常同时包括这两者。

mkfs :磁盘格式化工具
mkfs.[格式化后文件系统] [区名]:格式化
mkfs.test3 /dev/sdb1

swap交换分区
Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

步骤
1.建立一个普通的Linux分区

用之前建立的sdb6分区

2.修改分区类型的16进制编码

t 输入编码6
L:查看编码的列表
可以看出swap分区是82 输入82
w 保存
3.格式化交换分区

mkswap /dev/sdb6
4.启用交换分区

swapon /dev/sdb6:启用
swapoff /dev/sdb6:停止
分区的挂载
通过mount命令挂载的分区不具有永久性,重启挂载就会失效,可以通过编辑etc目录下的fstab配置文件,实现自动挂载

vim + /etc/fstab

配置文件:
[设备名称] [挂载点] [文件系统类型] defaults 0 0

/dev/sdb1 /mnt/abc ext3 defaults 0 0

用户管理
用户和用户组
用户:使用操作系统的人
用户组:具有相同系统权限的一组用户
/etc/group:存储当前系统中所有用户组信息
/etc/gshadow:存储当前系统中用户组的密码信息
/etc/passwd:存储当前系统中所有用户的信息
/etc/shadow:存储当前系统中所有用户的密码信息
groupadd [用户组名称]:创建一个新的用户组并命名
groupmod -n [信用户组名称] [旧用户组名称]:更改此用户组名称
groupmod -g [主编号] [组名称]:修改组的主编号
grouped -g [主编号xxx] [组名称n]:创建一个主编号为xxx,组名称为n的用户组
groupdel [组名称]:删除此用户组,删除之前要先删用户信息!
useradd -g [用户组名n] [用户名m]:在n用户组里创一个m用户
usermod -c [备注信息] [用户名]:给用户添加一个备注
usermod -l [新用户名] [旧用户名]:更改用户名
usermod -d /home/[文件夹名] [用户名]:为用户创建一个文件夹
usermod -g [用户组n] [用户m(原本m没在用户组n中)]:将用户m切换到n用户组中
userdel [用户名]:删除用户名
*userdel -r [用户名]:删除用户名和它的相关文件

touch /etc/nologin:禁止用户登录服务器(除了root)
passwd -l [用户名]:锁定用户
passwd -u [用户名]:解锁用户
passed -d [用户名]:清楚用户密码
主要组与附属组
用户可以同时属于多个组
一个主要组
多个附属组
gpasswd -a [用户名m] [附属组名s]:将用户m添加到附属组s
gpasswd -d [用户名m] [附属组名s]:将用户m从附属组s删除
newgrp [目标附属组] :切换目标附属组,加组密码
useradd -g [主要组名称] -G [附属组名称,可以写多个,逗号链接]:创建一个用户,为其分配主要组和附属组
gpasswd [用户组名称]:设置组密码
su [其他用户名]:切换用户名
id [用户名]:显示用户名的信息
groups [用户名]:显示用户所在的所有组
chin [用户名]:设置用户资料,依次输入用户资料
finger [用户名]:显示用户详细资料

  1. 0-9