基本命令
ls 列出全部文件
ls [参数] [路径]
ls -a
列出全部文件,包括隐藏路径,文件中以.
开头的都是隐藏文件
ls -l
以列表形式详细展示文件信息
也可以缩写成
ls -al
以列表显示所有文件
ls -lh
以列表详细展示文件信息并以简单方式展示文件大小(h必须搭配l使用,ls -alh与上一条同理)
cd路径切换/pwd展示当前路径
(cd参数可选,若留空则为用户路径)
cd /home/nebula
切换至nebula用户文件夹
pwd
直接使用
相对路径与绝对路径
相对路径直接输入,无需以
/
开头,绝对路径以/
(根)开头
特殊路径符
.
表示当前目录,./home
表示切换到当前路径下的home文件夹内
..
表示上一级目录,如cd ../..
表示切换到上两级目录
~
表示home目录,如cd ~/nebula
表示切换到home文件夹下的nebula文件夹
mkdir创建文件夹
mkdir [-p] 路径
,-p可选,表示自动创建不存在的父目录
mkdir -p ~/home/nebula/test
,一次性创建多个文件夹链
touch文件创建
touch test.txt
创建文件
使用ls -l后,开头为d的为文件夹,开头为-的为文件
cat查看文件内容
cat test.txt
查看文件
more以翻页形式查看文件内容
more test.txt
查看文件
空格翻页,q退出编辑器
cp复制文件
cp [-r] 源文件路径 复制路径
,若复制的是文件夹,需要加入-r
cp test.txt ~/nebula/testnew.txt
,将test文件复制到nebula文件夹下并重命名
mv移动文件
mv 源文件路径 复制路径
mv test.txt ~/nebula/testnew.txt
,将test文件复制到nebula文件夹下并重命名
rm删除文件
‘rm [-r -f] 参数1 参数2 .. 参数n’,-r为删除文件夹,-f为强制删除文件(忽略提示),参数可以给多个文件路径
支持通配符,
*
表示任意内容,*test
表示以test结尾,test*
表示以test开头,*test*
表示包含test
which指令文件查找
which cd
查询cd命令源文件的文件路径,which只能查找命令文件
find文件查找
按名称搜索
find 起始路径 -name "文件名"
(加上双引号可以精确匹配,否则可能导致shell解释导致文件搜索不准确)
find / -name "test"
,从根目录开始搜索test文件通配符也一样适用
按文件大小搜索
find 起始路径 -size [+ -] [大小(KMG)]
find / -size +10G
查询大于10G的文件
grep从文件中按照关键字过滤行
grep [-n] "关键字" 文件路径
,-n表示是否显示过滤出来的行号,文件路径若留空可作为管道输入入口
grep -n "nebula" test.txt
,查询test中带有nebula的行,并显示行号
wc数量统计
wc [-c -m -l -w] 文件路径
,-c
统计bytes数量,-m
统计字符数量,-l
统计行数,-w
统计单词数量,若什么都不加则依次显示行数,单词数,字节数,文件名,文件路径若留空可作为管道输入入口
|
管道符,将|
左侧命令的结果作为右侧命令的输入
cat text | grep -n nebula
,将text文件的内容输入至grep命令的参数中并查找带有nebula的行以及行号
cat text | wc -l
,将text文件的内容输入至wc命令中并返回统计行数
ls | grep -n test
,查看目录中带有test的行以及行号
echo在命令行输出指定内容
echo "输出内容"
echo "nebula yahooo"
输出nebula yahooo
`
(反引号)包裹命令执行
echo pwd
输出字符串pwd
echo `pwd`
输出当前文件路径
>
和>>
重定向符
>
将左侧命令的结果覆盖写入到右侧指定的文件中
>>
将左侧命令的结果追加写入到右侧指定的文件中
ls -alh > text.txt
将文件夹内的文件信息写入到text.txt中
tail 查看文件尾部内容,跟踪文件最新更改
tail [-f -num] 文件路径
-f 表示持续跟踪,ctrl +c停止跟踪,-num表示查看尾部多少行,不填默认10行
tail -f -15 text.txt
持续跟踪text.txt后十五行的变化
VI\VIM编辑器
三种基本工作模式
命令模式:所有按键理解为命令,不能进行文本编辑,默认是命令模式
输入模式:允许自由编辑
底线命令模式:以
:
开始,用于文件的保存退出
命令模式
vi 文件路径
vim 文件路径
文件不存在会用于创建并编辑新文件,文件存在则直接编辑文件
模式 | 命令 | 描述 |
---|---|---|
命令模式 | i | 在当前光标位置之前进入输入模式 |
命令模式 | a | 在当前光标位置之后进入输入模式 |
命令模式 | o | 在当前光标位置下一行进入输入模式 |
命令模式 | I | 在当前行开头进入输入模式 |
命令模式 | A | 在当前行结尾进入输入模式 |
命令模式 | O | 在当前光标上一行进入输入模式 |
输入模式 | esc | 回到命令模式 |
命令模式 | 上下左右方向键 | 移动光标 |
命令模式 | 0 | 光标所在行开头 |
命令模式 | $ | 光标所在行结尾 |
命令模式 | pageup/pagedown | 翻页 |
命令模式 | / | 搜索 |
命令模式 | n/N | 向下/向上搜索 |
命令模式 | (n)dd | 删除所在行 |
命令模式 | (n)yy | 复制当前行 |
命令模式 | p | 粘贴复制的内容 |
命令模式 | u | 撤销 |
编辑命令模式
输入
:
进入底线命令模式,输入esc
回到命令模式
底线命令模式
输入
:
进入
模式 | 命令 | 描述 |
---|---|---|
底线命令模式 | :wq | 保存并退出 |
底线命令模式 | :q | 仅退出 |
底线命令模式 | :q! | 强制退出 |
底线命令模式 | :w | 仅保存 |
底线命令模式 | :set nu | 显示行号 |
底线命令模式 | :set paste | 设置粘贴模式 |
用户权限
su/exit切换用户
su [-] [用户名],[-]表示是否加载用户环境变量,用户名默认root
切换用户后,可以使用exit切换到上一个用户
sudo以root用户执行命令
sudu 命令
为用户配置sudo认证:切换到root用户,执行
visudo
,配置如nebula ALL=(ALL) NOPASSWD:ALL
字样,其中NOPASSWD:ALL
表示使用sudo命令无需密码
用户/用户组
groupadd 用户组名
,创建用户组
groupdel 用户组名
,删除用户组
useradd [-g -d] 用户名
创建用户,-g指定用户组,不指定则自动创建同名组加入,-d指定HOME目录,不指定默认在home文件夹下
userdel [-r] 用户名
,删除用户,-r删除用户HOME目录
id [用户名]
,查看用户,默认当前用户
usermod -aG 用户组 用户名
,将指定的用户加入到指定的用户组
getent passwd
,查看当前系统有那些用户
getent group
,查看当前系统有那些用户组
权限控制
权限格式:
[-/d/l]文件类型[r/- w/- x/-]用户权限[r/- w/- x/-]用户组权限[r/- w/- x/-]其他用户权限
-表示文件,d表示文件夹,l表示软连接,r表示可读,w表示可写,x表示可运行
chmod [-R] 权限 文件或文件夹
,修跟权限信息,-R表示是否对文件夹内的全部内容应用同样的操作,如chmod u=rwx,g=rx,o-x test.txt
chown [-R] [用户][:][用户组] 文件或文件夹
,-R表示是否对文件夹内的全部内容应用同样的操作,:
用于分隔用户和用户组,如chown :root test.txt
将文件修改到root用户组