Linux基本操作整理

        此文章主要针对ubantu22.04.1以及CentOS7中常用的命令和问题做汇总。

一、安装

ubantu、CentOS安装:去国内镜像源下载即可,地址如下:

 中科大源:http://mirrors.ustc.edu.cn/

清华源:https://mirror.tuna.tsinghua.edu.cn/

        在VMWare中安装时,根据操作执行最小安装即可,注意在安装ubantu时,如果键盘布局那个直接跳过,然后在安装过程中如果不想等待,当skip按钮亮时,点击直接跳过就好,还有一个就是安装过程中遇到飘红的安装硬盘分区选择哪一项,按照默认的执行就好。

        在安装完成后,可能会遇到以下问题,就是明明自己的Windows网络连接是正常的,但是右下角图标却显示没网络,这个问题去打开网络适配器,然后诊断一下Windows的网络连接,然后重启电脑就可以了,但是过一段时间又会不对,所以直接在更改适配器选项中,把所有的VMware网络禁用即可。

        如果用filezilla或其他连接虚拟机,装ssh服务。  

        sudo apt-get install openssh-server

sudo apt-get install openssh-server

        安装完成后,如果需要用Xshell连接ubantu,如果在连接过程中发现了 如下问题

Linux基本操作整理_第1张图片

       先检查用户名和密码是否正确,记住,不论ubantu的用户名中是否存在大写,在Xshell中输入时必须全部小写,如果还是不行,看下面的操作。

        这是因为sshd默认设置不允许root用户用密码来远程登录的,需要修改配置文件。

sudo vim /etc/ssh/sshd_config

将
PermitRootLogin prohibit -password
修改为
PermitRootLogin yes

然后保存并退出
systemctl restart sshd    # 重启sshd
sudo /etc/init.d/ssh restart    # 重启ssh服务

        此处还有一个大坑,在完成上述配置后还是拒绝密码,说明一定是用户名或者密码错了 ,如果root的用户名是自定义的,记得在输入用户名时全部小写,例如我的Ubantu用户名时Ethan,在Xshell中用户名填Ethan就显示拒绝,填ethan就会成功进入。

sudo apt update (更新数据)
sudo apt upgrade(升级)
sudo apt install net-tools


安装不同版本python		sudo apt-get install python3.5-dev

卸载pip包			sudo apt-get remove python3-pip

python3更新pip		python3 -m pip install --upgrade pip


linux下切换python版本
首先看一下有没有关于pyhton的可选项
update-alternatives --display python
update-alternatives		#错误: 无 python 的候选项

那首先先建立python的组,并添加Python2和Python3的可选项
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2 # 添加Python2可选项,优先级为2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.4 1 #添加Python3可选项,优先级为1
选择python版本
sudo update-alternatives --config python

基于用户修改python版本的方法
alias python='/usr/bin/python3.5'
source ~/.bashrc(或者 . ~/.bashrc)

常用的快捷键整理

ubantu:

Ctrl + Alt + T:打开终端
Ctrl + Shift + T:在同一个窗口新建终端标签页
Ctrl + Shift + W:关闭标签页
Ctrl + Shift + N:新建终端窗口
Ctrl + Shift + Q:关闭终端窗口
Ctrl + D:关闭标签页
Ctrl + L:清除屏幕
Ctrl + P:显示上一条历史命令
Ctrl + N:显示下一条历史命令
Ctrl + J/M:回车(同enter键功能)
Tab:命令或文件名自动补全
Ctrl + Win + ↑:最大化当前窗口
Ctrl + Win + ↓:还原/最小化当前窗口
Ctrl + Win + D:最小化所有窗口

二、操作命令

1. Linux系统目录

├── bin -> usr/bin # 用于存放二进制命令
├── boot # 内核及引导系统程序所在的目录
├── dev # 所有设备文件的目录(如磁盘、光驱等)
├── etc # 配置文件默认路径、服务启动命令存放目录
├── home # 用户家目录,root用户为/root
├── lib -> usr/lib # 32位库文件存放目录
├── lib64 -> usr/lib64 # 64位库文件存放目录
├── media # 媒体文件存放目录
├── mnt # 临时挂载设备目录
├── opt # 自定义软件安装存放目录
├── proc # 进程及内核信息存放目录
├── root # Root用户家目录
├── run # 系统运行时产生临时文件,存放目录
├── sbin -> usr/sbin # 系统管理命令存放目录
├── srv # 服务启动之后需要访问的数据目录
├── sys # 系统使用目录
├── tmp # 临时文件目录
├── usr # 系统命令和帮助文件目录
└── var # 存放内容易变的文件的目录
cd .. 返回上一级目录

cd ~

cd

返回home目录
cd / 返回根目录
cd - 返回上次工作的目录
cd 路径 返回指定路径
clear 清空屏幕

2. 查看目录 

        (1) pwd 查看当前目录所在位置

        (2) ll 查看当前目录下内容

        (3) ls 查看当前目录下文件信息

-l 以列表的方式显示
-h 以大小单位显示,默认是字节(需要配合-l来使用)
-a 显示隐藏文件和隐藏目录
-l --block-size=MB 以MB来显示文件大小

        (4) tree 以树状形式返回目录结构

                     示例:tree opt/   把opt目录及其子目录按照树状形式返回

权限更改 

Linux基本操作整理_第2张图片

r 读取权限,数字代号为 4
w 写入权限,数字代号为 2
x 执行权限,数字代号为 1
- 不具有任何权限,数字代号为 0
文件所属用户为User 简写为u
文件所属组为Group 简写为g
其他用户为Other Users 简写为o
所有人为all Users 简写为a
增加权限 +
删除权限 -
设定权限 =

方法一:通过字母来更改权限

chmod u+r a.txt               给user添加读取权限 
chmod u-w,g+x a.txt        删除user写入权限,并给group加执行权限

方法二:通过数字来更改权限

chmod 777 a.txt              解开a.txt的所有权限,7是4+2+1,相当于解开所有权限

3. 目录及文件操作

命令 说明 示例
mkdir 目录名 创建目录 mkdir AAA
mkdir 目录名/目录名 -p 创建嵌套目录 mkdir AA/BB/CC -p
touch 文件名 创建文件 touch test.txt
rmdir 目录名 删除空目录 rmdir AAA

rm 目录名(文件名)

参数: -f 忽略不存在文件,不提示

            -i 每次删除前进行提示

            -l 删除递归目录或超过3个文件时进行提示

            --interactive[=WHEN] 从不提示,没WHEN时总是提示

            --preserve-root 保护根目录不被删除

            --no--preserve-root 不保护根目录 

            -r,-R,--recursive 删除递归目录及内容

            -v,--verbose 显示删除时的详细工作内容

删除目录(文件)

rm -rf AAA

cp -r 目录 新目录

参数: -r 表示递归copy目录下的内容

            -i 交互式提示

            -v 显示copy后的文件描述

            -a 保留文件原有权限

cp 文件

拷贝目录、文件

cp -r AAA /opt

cp test.txt

cp -r aaa /opt/bbb

将aaa目录copy到/opt目录下,并改名为bbb

拷贝并改名
mv 目录名(文件名) 新的目录名(新的文件名)

重命名目录、文件

mv AAA AA

mv /aaa /bbb

将根目录下的aaa移动到bbb,如果bbb不存在,则会重命名

移动目录(文件)

mv aaa /opt/bbb

将当前目录下的aaa移动到/opt目录下,并改名为bbb

移动并改名

mkdir {dirA,dirB}
touch dirA/{A1,A2,A3}

批量创建目录

批量创建文件

4. 查询

find / -name 'b'        查询根目录下(包括子目录),名为b的目录和文件
find / -name 'b*'       查询根目录下(包括子目录),名以b开头的目录和文件

find . -name '*.pyc' -exec rm -rf {} \    递归删除.pyc格式的文件
find . -name "*" -size 145800c -print     打印当前文件夹下指定大小的文件
find . -name "*" -size 145800c -exec rm -rf {} \    递归删除指定大小的文件(145800)
find . -name "*" -size 145800c -print -exec rm -rf {} \    递归删除指定大小的文件,并打印出来
 . 从当前目录开始递归查找
-name '*.exe' 根据名称查找,查找所有以.exe结尾的文件夹或者文件
-type f 查找类型为文件
-print 输出查找的文件目录名
-size 145800c 指定文件的大小
-exec rm -rf {} \ 递归删除(前面查询出来的结果)

5. 重定向 

> 如果文件存在会覆盖文件中内容,相当于文件操作中的'w'
>> 如果文件存在会追加写入文件末尾,相当于文件操作中的'a'

        只要在终端能显示信息的命令都可以使用重定向,例如

        ls -a > /opt/test.txt        将当前目录中的信息以w的方式写入opt目录下的test.txt文件中。

6. 文件中的内容操作 vim

cat a.txt 查看文件的最后一页内容
more a.txt

从第一页开始查看文件内容,按回车键一行一行进行查看,

按空格键一页一页进行查看,q退出

less a.txt

从第一页开始查看文件内容,按回车键一行一行的看,按空格键一页一页的看,

按键盘上下方向键显示上下内容,支持使用PageDown和PageUp翻页,q退出;

它不会读取整个文件,所以速度比more快,并且退出后不会在shell中留下刚刚显示的内容

head a.txt

参数:-q 隐藏文件名

           -v 显示文件名

           -c <字节> 显示字节数

           -n <行数> 显示的行数

查看文件中前10行内容

tail a.txt

参数: -f 循环读取
            -q 不显示处理信息
            -v 显示详细的处理信息
            -c <数目> 显示的字节数

            -n <行数> 显示行数
            –pid=PID 与-f合用,表示在进程ID,PID死掉之后结束。
            -q, --quiet, --silent 从不输出给出文件名的首部。
            -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

查看文件中后10行内容

grep  [options] [pattern] file

命令 参数        匹配模式 被匹配的文件

参数:-v 排除匹配结果

           -n 显示匹配行与行号

           -i 不区分大小写

           -c 只统计匹配的行数

           -E 使用正则进行匹配

           --color-auto 为grep过滤结果显示颜色

           -w 只匹配过滤的单词

           -o 只输出匹配的内容

grep abc a.txt

在a.txt中查找含有abc的行

此部分参考以下链接,详细示例请去该网页查询:

https://blog.csdn.net/m0_50370837/article/details/125068528x

文件分割split

去该网址:

https://blog.csdn.net/qq_43382735/article/details/122188277

7. 管道操作符 |

        原文链接:https://blog.csdn.net/lydms/article/details/101368670

        可将指令连接起来,前一个指令的输出作为后一个指令的输入。

一些示例

grep 'error' email.log        从email.log文件中查询包含error的行
grep 'error' email.log | grep -o '\[0-9\]'    获取到error的行,并取[]含有数字的

ps -ef|grep tomcat |grep -v     并过滤掉含有当前进程
grep  123.txt | sed -n 's/\"//gw test01.txt'    替换后将数据保存在文中

grep 'input' 123.txt | awk -F ',' '{print $2}' | sed 's/\"//g; s/,/\n/g' | awk -F ":" '{print $1 >> "test01.txt"}'
将文件123.txt,按,切分,去除",按:切分后,将第一列存到文件test01.txt中

使用管道注意的要点

(1)只处理前一个命令正确输出,不处理错误输出。

(2)右边命令必须能够接收标准输入流,否则传递过程中数据会被抛弃

(3)sed,awk,grep,cut,head,top,less,more,c,join,sort,split等

8. echo

        主要用来在屏幕上输出字符。

        参数: -n 表示输出以后不换行

                    -e 表示将一些特殊字符转义,特殊字符如下:

  • \b 表示删除前面的空格
  • \n 表示换行
  • \t 表示水平制表符
  • \v 表示垂直制表符
  • \c \c后面的字符将不会输出,同一时候,输出完毕后也不会换行
  • \r 输出回车符
  • \a 表示输出一个警告的声音

9. 链接的操作

硬链接:

        硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。如果为f1文件建立一个硬链接f2,那么他们的inode 节点号是一样的。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软链接:

        类似于Windows中的快捷方式。如果为f1文件创建一个软链接f3,它俩的节点号是不一样的,并且当删除了f1文件后,f3会变成一个无效的链接。

  • 1).删除符号连接f3,对f1,f2无影响;
  • 2).删除硬连接f2,对f1,f3也无影响;
  • 3).删除原文件f1,对硬连接f2没有影响,导致符号连接f3失效;
  • 4).同时删除原文件f1,硬连接f2,整个文件会真正的被删除。

10. 打包和解压操作

Linux默认支持的压缩格式:.gz,.bz2,.zip。

        .gz和.bz2的压缩包需要使用tar命令来压缩和解压缩。

        .zip的压缩包需要使用zip命令来压缩,使用unzip命令来解压缩

        tar命令 ,参数如下所示:

独立参数(只能出现一个) 说明
-c 创建打包文件
-x 解包
-t 查看内容
-r 向压缩文件末尾追加文件
-u 更新原压缩包中的文件
必须参数(必须出现的参数) 说明
-f 指定文件名称,必须紧紧跟着参数放
附加参数(可出现多个) 说明
-v 显示打包或解包的详细信息
-z 压缩或解压缩(.gz)
-j 压缩或解压缩(.bz2)
-C(解压专用,独立使用) 解压缩到指定目录
-Z 有compress属性的
-O 将文件解开到标准输出

一些示例:

tar -cf all.tar *.jpg        将所有.jpg的文件打成一个名为all.tar的包
tar -rf all.tar *.gif        将所有.gif的文件增加到all.tar的包里面去
tar -uf all.tar logo.gif     更新原来tar包all.tar中logo.gif文件
tar -tf all.tar              这条命令是列出all.tar包中所有文件
tar -xf all.tar              这条命令是解出all.tar包中所有文件

tar -czf jpg.tar.gz *.jpg    将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,
                                生成一个gzip压缩过的包,名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg    将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,
                                生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg      将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,
                                生成一个umcompress压缩过的包,命名为jpg.tar.Z

        zip命令:压缩成.zip格式的文件

zip命令参数 说明
-b 指定存放文件的目录;
-d 删除压缩文件内指定的文件;
-f 更新压缩包的文件;
-m 将文件压缩并加入压缩文件后,删除原始文件;
-q 不显示执行过程;
-r 递归处理,将指定目录下的所有文件和子目录一并处理;
-v 显示指令执行过程或显示版本信息(默认选项);
-sf  显示文件;

        unzip命令:解压缩.zip格式的文件

unzip命令 说明
-d 后接目录名,把文件解压到目录中。
-f 更新归档中的文件,没有的新增。
-l 列出归档中的文件。
-p 文件解压到管道,不打印输出。
-t 测试归档数据。
-T 设置归档的时间戳与最新文件的一致。
-u 更新文件,如果不存在则新建文件。
-v 展示详细信息或展示版本信息。
-x 将后接的文件除外。

一些示例:

zip test.zip *.txt                将单个文件压缩
zip -r test.zip lib/              将lib目录进行压缩
zip -r test.zip a.txt b.txt       将多个文件进行压缩

unzip test.zip                    解压test.zip
unzip test.zip -d AA              解压test.zip至AA目录中

11. vim编辑器的使用 

        vim是Linux自带的文本编辑器,用来修改文件,开启时长按shift进入管理界面,按e换界面。

三种工作模式:    

        1. 命令模式:用于对文章内容的操作,如复制,粘贴,删除,光标定位
        2. 插入模式:用于编写文件
        3. 末行模式:用途保存文件,读写文件,复制,粘贴,光标定位,vim参数设置等
        4. esc:在不同模式当中切换的,退到命令模式

在命令行模式下操作

:w 写入
:q 退出
:q! 强制退出
:wq 保存并退出
u 命令行模式下撤销
Delete和x 删除光标压住的字
dd  删除整行
3dd 删除3行
yy 复制一行
3yy 复制3行
p 粘贴,大写粘贴在上,小写粘贴在下
h,j,k,l 负责上下左右移动
ctrl+f 前一页
ctrl+b 后一页
o 移动到行的第一个字符
^ 移动到行的第一个可见字符处
$ 移动到行的最后一个字符处
G(shift+g) 移动到文件的最后一行
gg 移动到文件的第一行
7G 移动到第7行
:set nu 打开行号标识
7K  从当前行向前移动7行
w 前移一个单词
b 后移一个单词
/word 在光标前查找word
?word 在光标后查找word

 在INSERT模式下操作,随便按下面六个字母中的一个就可以进入INSERT模式:

i 在光标之前插入
a 在光标之后插入
I 在光标所在行的行首插入
A 在光标所在行的行末插入
o 在光标所在行的上面插入一行
O 在光标所在行的下面插入一行

你可能感兴趣的:(Linux,linux,运维,服务器)