文章目录
一、常用命令
1.touch命令
- 创建一个文件或者修改文件的更新时间
touch a.txt
- 当a.txt文件不存在的时候,会创建该文件
- 当a.txt文件存在的时候,会更新文件的修改时间
- 创建多个文件
touch a b c d
2.mkdir命令
- 创建一个目录:
mkdir test
- 创建多个平级目录:
mkdir test1 test2 test3
- 在当前用户家路径下创建一个子目录:
mkdir ~/test4
- 创建多级子目录,-p表示如果子目录不存在就创建:
mkdir -p test1/test2/test3
3.cp命令
- 复制当前目录下a.txt文件内容到b.txt中:
cp a.txt b.txt
- 如果b.txt不存在,则自动创建b.txt文件
- 如果b.txt 存在,则自动覆盖b.txt文件内容
- 使用-i 进行覆盖提示:
cp -i a.txt b.txt
- 复制多个文件,到一个指定目录:
cp a.txt b.txt test
复制a.txt b.txt文件到test目录中,要求这些文件和目录都是存在的 - 复制文件夹和它的内容,到另一个文件夹中:
cp -r test1 test2
- 如果test2目录不存在,则创建test2并把test1目录中的内容复制进去,不包含test1目录
- 如果test2目录存在,则把整个test1目录及其内容全都复制到test2中,包含test1目录
- 把test目录复制到test4目录中,并且修改目录名字为:
temp cp -r test test4/temp
要求test4目录必须是存在的
4.mv命令
- 移动一个文件:
mv a.txt test
可以同时移动多个文件到目录中:mv a.txt b.txt c.txt test
- 将test目录中的a.txt移动到当前目录:
mv ./test/a.txt .
- 修改一个文件的名字,将a.txt改为b.txt:
mv a.txt b.txt
- -i参数,覆盖提示:
mv -i a.txt b.txt
- 修改目录的名字(dir2不存在的时候):
mv dir1 dir2
- 将一个目录移动到另一个目录中(这是dir2存在的时候):
mv dir1 dir2
5.rm命令
- 删除一个文件:
rm a.txt
- 删除前提示确认:
rm -i a.txt
- 删除多个文件:
rm a b c d
- 删除空目录:
rmdir test
- 删除非空目录:
rm -r test
- 删除非空目录,并且删除前确认:
rm -r -i test
或者rm -ri test
- 删除非空目录,强制删除,不做任何提示:
rm -r -f test
或者rm -rf test
6.man命令
查看ls命令的使用手册:man ls
空格,每次往下翻一个屏幕的内容
回车,每次往下翻一行内容
b,每次向上翻回一页
f, 每次向下翻一页
q,退出当前手册界面
/stirng,查找指定字符串,例如,/the 就是查找这个单词
n,配合/string命令,可以快速调整跳到下一个指定字符串的位置
7.telnet
使用telnet命令进行远程登录服务器
ifconfig
,查看ip地址
telnet远程登录服务器的要求:
- 本机有telnet客户端,可以使用telnet命令
- 服务器主机安装了telnet服务器端,并已经开启服务
- 本机可以ping通服务器主机的ip地址
二、特殊字符
1.*(通配):可以代表0~n个字符
- 列出所有txt结尾的文件:
ls *.txt
- 删除所有txt结尾的文件:
rm *.txt
2.?(任意的一个字符)
显示a?.txt文件:ls a?.txt
3.;(表示在一行语句中连续执行多个命令,命令之间使用分号进行分割)
- 先cd回到家目录,然后再执行ls命令:
cd;ls
- 先显示时间,再显示日历,再显示当前路径:
date;cal;pwd
4.>和>>
输出重定向符合,将来原本输出到命令行中的内容,重定向输入到另外一个地方。
>
表示往文件中写入内容,是覆盖操作- 把hello写入到a文件中:
echo "hello" > a
a文件如果不存在,则自动创建,a文件如果存在,则覆盖之前的内容 - cal命令输出的日历写入到a文件中:
cal > a
- 把hello写入到a文件中:
>>
表示往文件中写入内容,是追加操作- 先把date命令显示的日期写入到a文件中,再把cal显示的日历追到a文件中,再查看a文件的内容:
$date >> a $cal >> a $cat a
- 把2020年12月的日历,写入到a文件中,覆盖之前的内容:
cal 12 2020 > a
- 先把date命令显示的日期写入到a文件中,再把cal显示的日历追到a文件中,再查看a文件的内容:
5. | (管道符):可以把第一个命令的结果,交给第二个命令作为参数进行操作
- 把当前日历通过打印机进行打印:
cal | lp
- 查看/etc/passwd中的内容并筛选出start相关的信息:
cat /etc/passwd | grep "start"
grep命令进行对结果进行过滤筛选
三、查看内容
1.cat命令(查看内容):是一次全显示出来
- 显示文件中的所有内容:
cat a.txt
- 把a.txt和b.txt的内容合并到c.txt中:
cat a.txt b.txt > c.txt
- 把c.txt文件内容,设置为空:
cat /dev/null > c.txt
- 清空a文件:
cat /dev/null > a
- 将本来要输出的内容直接丢弃不要:
ls -R > /dev/null
2.more命令(查看内容):一点点的显示内容
查看/etc/passwd文件内容:more /etc/passwd
空格,每次往下翻一个屏幕的内容
回车,每次往下翻一行内容
b,每次向上翻回一页
f, 每次向下翻一页
q,退出当前查看内容界面
v,进入vi模式(只读),在vi模式下,输入:q 则退出vi模块回到more的查看模式
在vi模式下,使用/stirng,查找指定字符串,例如,/the 就是查找这个单词
在vi模式下,n,配合/string命令,可以快速调整跳到下一个指定字符串的位置
四、VI编辑器
1.三种模式
vi编辑器有三种模式,命令模式,命令行模式,编辑模式
- 命令模式,可以使用简单的命令进行文本内容的操作
- 命令行模式,可以使用复杂点的命令进行文本内容操作
- 编辑模式,可以直接编辑文本内容
如果vim编辑器不能正常显示键盘写入内容,方向键不能正常移动,直接重新下载vim编辑器:sudo apt-get install vim
(1)直接使用vi打开文件的时候,就是命令模式
- yy命令:复制当前行
- p命令:把复制内容粘贴到下一行
(2)在命令模式下,按冒号(shift+:)进入到命令行模式: 输入命令w,然后回车,把内容进行保存
命令行模式执行完命令自动返回到命令模式
(3)在命令模式下,按命令i或者a或者o都可以进入到编辑模式,然后可以直接编辑内容
- i 表示在光标当前位置处插入,并变为编辑模式
- a 表示在光标所在位置后插入,并变为编辑模式
- o 表示在光标所在行的下方插入空行,并变为编辑模式
- 编辑完成后,先按Esc进入到命令模式,再按(shift+:)进入到命令行模式,再输入wq,然后回车,表示保存内容并退出
- wq! 则表示保存并强制退出
2.命令模式
命令 | 作用 |
---|---|
x | 删除一个字符 |
dw | 删除一个单词 |
3dw | 删除3个单词 |
dd | 删除一行,光所在行 |
2dd | 删除2行,光标所在行和下一行 |
r | 替换一个字符,在某个字符上按r,然后再按另一个新字符,这样新字符就会替换原来的老字符 |
cw | 先删除这个单词,再进入到编辑模式 |
cc | 先删除当前行,再进入到编辑模式 |
C | 大写C(shift+c),删除光标所在位置到当前行的末尾,然后进入编辑模式 |
yy | 复制当前行 |
yw | 复制一个单词 |
p | 粘贴复制的内容 |
~ | shift+~,把字符进行大小写转换 |
J | shift+j,把当前行和下一行进行连接 |
u | 撤销之前的操作 |
G | shift+g,将光标定位到文件末尾 |
nG | 将光标定位到文件第n行,这里n代表的是行号 |
/hello | 查找和hello的位置,然后使用n可以定位到下一个匹配的地方,从上往下查找 |
?test | 查找和test的位置,然后使用n可以定位到下一个匹配的地方,从下往上查找,将把光标移动到下一个字的字尾 |
w | 将光标移至下一个字的字首 |
b | 将光标移至上一个字的字首 |
h | 将光标左移 |
l | 将光标右移 |
j | 将光标下移 |
k | 将光标上移 |
3.命令行模式
命令 | 作用 |
---|---|
:2,4d | 删除第2行到第4行 |
:2,4co5 | 拷贝第2行到第4行之间的内容到第5行后面 |
:1,2m7 | 移动第1行到第2行之间的内容到第7行后面 |
:w | 保存 |
:w newfile | 保存为另一个新文件,相当于另存为功能 |
:q | 退出 |
:q! | 强制退出 |
:wq! | 保存并强制退出 |
:set nu | 显示行号,set nonu 是取消行号 |
:5 | 将光标直接定位到第五行 |
:r b.txt | 将b.txt文件内容插入到当前文件中 |
:1,$s/hello/test/g 或:%s/hello/test/g | 将文件中从1行开始,所有的hello替换成test |
五、环境变量
1.Linux
- 设置临时的环境变量
name=tom
- 使用$符合,获取环境变量的值
echo $name
这种临时设置环境变量的方式,一旦关闭命令创建,这个环境变量就失效了
- 设置用户级别的环境变量
- 把环境变量配置到用户家目录中的.bashrc中
vi .bashrc
- 保存退出后,使用 source 命令,让修改过的配置文件生效
source .bashrc
- 当前默认使用的bash,在这个窗口中切换到sh中,然后再查看sh中是否能使用刚刚配置的环境变量
sh
- 先退回到bash中,使用vi打开.bashrc进行修改:
vi .bashrc
打开命令窗口默认使用的bash是父shell,又打开的sh是子shell,这时候父shell中配置的环境变量没有传递给子shell中,如果想让它进行传递,需要使用export命令将配置好的环境导出。 - 保存退出,再进行上面的测试过程
- 把环境变量配置到用户家目录中的.bashrc中
ls -l /bin/ls
:在命令窗口中执行命令的时候,例如执行ls命令,其实是运行了一个执行文件/bin/ls文件which ls
:可以查看某个命令所在的路径
2.windows
windows和Linux中环境变量的主意区别:
- 配置的地方或方式不同
- 引用变量的符号不同,windows使用变量名字**俩边加%符号,Linux使用变量名字左边加$**符号
- 多个路径之间分割的符号不同,windows使用分号,Linux使用冒号
- windows系统中环境变量名字的大小写不敏感,而Linux中大小写是敏感的
六、归档压缩
1.归档
归档,把若干个文件或目录简单的合并在一起,它并不对文件进行压缩,就是将多个文件前后连接在一起,形成一个大文件。
另外还会额外的添加一些信息,所以归档后的总文件的大小,反而往往比之前文件之和还要大一些。
- 把指定文件和目录进行归档:
tar -cvf work.tar a b c test1 test2
- 解除归档文件到指定目录中:
tar -xvf work.tar -C dir1
- tar命令常用的选项及其作用:
选项 | 作用 |
---|---|
-c | 建立新的压缩文件 |
-r | 添加文件到已经压缩的文件 |
-u | 添加改变了和现有的文件到已经存在的压缩文件 |
-x | 从压缩的文件中提取文件 |
-t | 显示压缩文件的内容 |
-z | 支持gzip解压文件 |
-j | 支持bzip2解压文件 |
-v | 显示操作过程 |
-k | 保留源有文件不覆盖 |
-C | 切换到指定目录 |
-f | 指定压缩文件 |
2.压缩
压缩,是一种通过特定的算法来减小计算机文件大小的机制,Linux中的文件压缩命令有多种,其中最常用的命令就是
gzip
。
- 将归档好的文件进行压缩:
gzip work.tar
- 在tar进行归档之后直接进行压缩:
rm work.tar.gz
tar -zcvf work.tar.gz a b c test1 test2
3.解压
- 对gz文件进行解压,解压到当前目录:
gunzip work.tar.gz
- 对tar.gz文件进行解压并解除归档:
tar -zxvf work.tar.gz -C dir2