✨你好啊,我是“ 罗师傅”,是一名程序猿哦。
🌍主页链接:楚门的世界 - 一个热爱学习和运动的程序猿
☀️博文主更方向为:分享自己的快乐 briup-jp3-ing
❤️一个“不想让我曾没有做好的也成为你的遗憾”的博主。
💪很高兴与你相遇,一起加油!

前言

Linux 服务的基本操作-2

常用命令

touch

1
2
3
touch a.txt
# 当a.txt文件不存在的时候,会创建该文件
# 当a.txt文件存在的时候,会更新文件的修改时间
1
touch a b c d

mkdir

1
2
3
4
mkdir teest
mkdir test1 test2 test3 # 创建多个平级目录
mkdir ~/test4 # 在当前用户家路径下创建一个子目录
mkdir -p /test1/test2/test3 # 创建多级子目录,-p表示如果子目录不存在就创建

cp

1
2
3
cp a.txt b.txt
# 如果b.txt不存在,则自动创建b.txt文件
# 如果b.txt 存在,则自动覆盖b.txt文件内容
1
cp -i a.txt b.txt # 使用-i进行覆盖提示
1
2
cp a.txt b.txt test # 复制多个文件,到一个指定目录
# 复制a.txt b.txt文件到test目录中,要求这些文件和目录都是存在的
1
2
3
4
cp -r test1 test2 # 复制文件夹和它的内容,到另一个文件夹中
# 复制test1文件及其内容到test2目录中
# 如果test2目录不存在,则创建test2并把test1目录中的内容复制进去,不包含test1目录
# 如果test2目录存在,则把整个test1目录及其内容全部复制到test2中,包含test1目录
1
2
cp -r test  test4/temp # 把test目录复制到test4目录中,并且修改目录名字为temp
# 注意,要求test4目录必须是存在的

mv

1
2
3
4
mv a.txt test # 移动一个文件
# 将a.txt移动到test目录中
# 注意,也可以同时移动多个文件到目录中
mv a.txt b.txt c.txt test
1
2
3
mv ./test/a.txt . # 将test目录中的a.txt移动到当前目录
mv a.txt b.txt # 修改一个文件的名字,将a.txt改为b.txt
mv -i a.txt b.txt # -i参数,覆盖提示
1
2
mv dir1 dir2 # 修改目录的名字 (dir2不存在)
mv dir1 dir2 # 将一个目录移动到另一个目录中 (dir2存在)

rm

1
2
3
4
5
6
7
rm a.txt
rm -i a.txt
rm a b c d
rmdir test # 删除空目录 (非空报错)
rm -r test
rm -r -i test (or) rm -ri test
rm -r -f test (or) rm -rf test

man

Linux提供了丰富的帮助手册,当需要查看某个命令的参数时,可以使用man 命令。

man is your friend

1
2
3
4
5
6
7
8
man ls
# 空格,每次往下翻一个屏幕的内容
# 回车,每次往下翻一行内容
# b,每一次向上翻回一页
# f,每次向下翻一页
# q,退出当前手册界面
# /string,查找指定字符串,例如,/the 就是查找这个单词n,
# 配合/string命令,可以快速调整跳到下一个指定字符串的位置

telnet

  • ifconfig, 查看ip地址
  • 要求
    • 本机有telnet客户端,可以使用telnet命令
    • 服务器主机安装了telnet服务器端,并已经开启服务
    • 本机可以ping通服务器主机的ip地址
  • 使用
    • telnet + ip + [23]

特殊字符

*

1
2
3
# 表示通配,可以代表0~n个字符
ls *.txt
rm *.txt

?

1
2
# 表示任意的一个字符(相当于占位符)
ls a?.txt

;

1
2
3
# 表示在一行语句中连续执行多个命令,命令之间使用分号进行分割
cd;ls # 先cd回到家目录,然后再执行ls命令
date;cal;pwd # 先显示时间,再显示日历,再显示当前路径

> 和 >>

1
2
3
4
5
# 输出重定向符号,将来原本输出到命令行中的内容,重定向输入到另外一个地方。
# > 表示往文件中写入内容,是覆盖操作
echo "hello" > a # 把hello写入到a文件中
# a文件如果不存在,则自动创建,a文件如果存在,则覆盖之前的内容
cal > a # cal命令输出的日历写入到a文件中
1
2
3
4
# >> 表示往文件中写入内容,是追加操作
date >> a
cal >> a
cal 7 2023 > a

|

1
2
3
4
5
# 管道符,可以把第一个命令的结果,交给第二个命令作为参数进行操作
cal | lp # 把当前日历通过打印机进行打印
# 如果当前网络中配置好打印机并连接成功的话,可以打印出日历
cat /etc/passwd | grep "lwsj"
# grep命令进行对结果进行过滤筛选

查看内容

cat

1
2
3
cat a.txt 
cat a.txt b.txt > c.txt
cat /dev/null > c.txt # 把c.txt文件内容,设置为空

Linux系统中,/dev/null(空设备文件或黑洞文件)是一个特殊的设备文件,所有 写入其中的数据,都会被丢弃的无影无踪,/dev/null通常被用于丢弃不需要的数 据输出,或作为用于输入流的空文件。这些操作通常由重定向完成。

1
2
cat /dev/null > a # 清空a文件
ls -R > /dev/null # 将本来要输出的内容直接丢弃不要

more

more和cat类似,也是查看内容的命令,但more命令可以一点点显示内容,而非一次全显示出来。

1
2
3
4
5
6
7
8
9
10
more /etc/passwd
# 空格,每次往下翻一个屏幕的内容
# 回车,每次往下翻一行内容
# b,每一次向上翻回一页
# f,每次向下翻一页
# q,退出当前查看内容界面
# v,进入vi模式(只读),在vi模式下,输入:q 则退出vi模块回到more的查看模式
# 在vi模式下,使用/stirng,查找指定字符串,例如,/the 就是查找这个单词
# 在vi模式下,n,配合/string命令,可以快速调整跳到下一个指定字符串的位置
ls -R | more # more也经常和管道费 | 搭配使用

vi编辑器

vi编辑器是所有Unix及Linux系统下标准的编辑器,它相当于windows系统中的记事本一样,它的强大不逊于任何文本编辑器

三种模式

  • 命令模式:可以使用简单的命令进行文本内容的操作
  • 命令行模式(低行模式):可以使用复杂点的命令进行文本内容操作
  • 编辑模式,可以直接编辑文本内容

三种模式的转换关系如下:

命令模式

基本指令的作用介绍:

命令行模式

环境变量

environment variables

在操作系统中,可以设置一些环境变量(名字=值),将来在执行命令的时候,

可以从指的环境变量中获取到对应的值,也可以将来在我们写的程序中,通过环境变量的名字获取到这些值。

Linux

  • 临时环境变量
    • name=lwsj
    • echo $name
  • 用户级别的环境变量
    • vi ~/.bashrc
    • source ~/.bashrc
  • 全局的环境变量
    • sudo vi /etc/profile

建议一般在 ~/.bashrc中进行配置即可

  • 特殊的环境变量:

    1
    ls -l /bin/ls
    1
    2
    briup@ubuntu:~$ which ls
    /usr/bin/ls

windows

windows系统中,环境变量的意义和作用和Linux中列举出的基本一致。

windows和Linux区别:

  • 配置的地方或方式不同
  • 引用变量的符号不同,windows使用变量名字两边加%,Linux使用变量名字左边加$
  • 多个路径之间分割的符号不同,windows使用分号,Linux使用冒号
  • windows系统中环境变量名字的大小写不敏感,而Linux中大小写是敏感

归档压缩

归档

 归档,把若干个文件或目录简单的合并在一起,它并不对文件进行压缩,就是将多个文件前后连接在一起,形成一个大文件。(+额外的信息)
1
tar -cvf work.tar a b c test1 test2 # 把指定文件和目录进行归档
1
tar -xvf work.tar -C dir1 # 解除归档文件到指定目录中

tar命令常用的选项及其作用:推荐 tar --help

压缩

压缩,是一种通过特定的算法来减小计算机文件大小的机制,Linux中的文 件压缩命令有多种,其中最常用的命令就是gzip。

1
gzip work.tar
1
2
rm work.tar.gz
tar -zcvf work.tar.gz a b c test1 test2

解压

1
gunzip work.tar.gz
1
tar -zxvf work.tar.gz -C dir2

❤️❤️❤️忙碌的敲代码也不要忘了浪漫鸭!

书山有路勤为径,学海无涯苦作舟💪。