查询目录中的内容: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]代表匹配一个小写字母 |
[^]: | 逻辑非,表示匹配不是中括号内的一个字符 例如:[^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 [用户名]:显示用户详细资料