Linux命令大全
查询目录中的内容: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:垂直制表符
\0nnn:按照八进制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]代表匹配一个小写字母 |
[^]: | 逻辑非,表示匹配不是中括号内的一个字符 例如:[^0-9]代表匹配一个不是数字的字符 |
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 [用户名]:显示用户详细资料