Linux基础命令

常用终端命令

命令英文作用
lslist查看当前文件夹内容
pwdprint work directory查看当前所在文件夹
cdchange directory进入文件夹
cd ...代表当前目录 ..代表上一级目录返回上一级文件夹
cd ~默认返回根目录
mkdirmake director创建文件夹
rmdirremove director删除文件夹
touchtouch创建文件
rmremove删除文件
clear清屏
cpcopy拷贝文件
mvmove移动文件

查阅终端命令帮助文档

command –help

man command命令使用手册

文件和目录命令

ls命令说明

功能:显示当前目录文件,对应于DOS下的dir命令

linux文件特点:
以.开头的文件为隐藏文件,需要用-a参数才能显示,如下:

image-20220322153918108.png

ls常用选项

参数含义
-a显示指定目录下所有子目录及其文件,包括隐藏文件
-l以列表方式显示文件详细信息
-h与-l配合以人性化的方式显示文件大小

如下:

image-20220322154755553.png

image-20220322154904581.png

image-20220322154951860.png

ls通配符

通配符含义
*匹配任意个数的字符
匹配某一个字符,但不能代表0个字符
[abc]匹配abc中任意一个字符
[a-f]匹配a-f字母中任意一个字符

cd切换目录

命令含义
cd切换到目录
cd ~切换到当前用户的家目录
cd ..退出当前目录到上一级目录
cd -在最近两次访问的目录之间切换

image-20220322162200576.png

touch创建文件

1.文件不存在时,创建新的空白文件

2.文件存在时,可修改文件最后一次修改时间

image-20220322162957159.png

mkdir创建文件夹

选项含义
-p递归创建文件夹

image-20220322163650769.png

rm 删除文件或文件夹

选项含义
-f强制删除
-r递归删除,删除文件夹时必须使用该参数

文件拷贝与移动命令

tree显示文件树形结构

功能:以树形结构显示当前目录下所有文件

选项含义
-d只显示文件夹

image-20220322171941510.png

image-20220322172013314.png

image-20220322172031362.png

cp复制文件

命令:cp 源文件 目标文件

作用:将给出的源文件复制到目标文件或目录中

image-20220322173405369.png

选项含义
-i覆盖文件前提示
-r复制文件夹

image-20220322174537680.png

image-20220322174617008.png

image-20220322174656349.png

mv移动文件/目录或重命名文件/目录

命令:mv 源文件 目标文件

1.移动文件夹

image-20220322175123337.png

image-20220322175305836.png

2.移动文件

image-20220322175437927.png

选项含义
-i覆盖文件前提示

文件内容命令

cat查看文件内容

功能:查看文件内容、创建文件、合并文件、追加文件内容等,适合查看较少内容的文件

选项含义
-b对非空输出行编号
-n对所有输出行编号

image-20220323163405091.png

image-20220323163428189.png

image-20220323163538070.png

image-20220323163453550.png

more查看文件内容

功能:分屏显示文件内容。适合查看较多内容的文件

操作键功能
空格键显示手册的下一屏
Enter键显示下一行
b回滚一屏
f前滚一屏
q退出
/word搜索word字符串

grep文本搜索工具

功能:查找匹配的文本内容

选项含义
-n显示匹配的行与行号
-b显示不包含匹配文本的所有行
-i不区分大小写

常用的两种模式查找:

参数含义
^a查找以字符a为开头的行
a$查找以字符a为结尾的行

image-20220323165923263.png

image-20220323165954584.png

image-20220323170011732.png

其他命令

echo终端打印与>、>>重定向

echo hello相当于cout<<”hello”,即将hello字符串在终端打印出来

重定向:将文本内容写入到文件当中

作用
>覆盖源文件所有内容
>>在源文件中追加内容

image-20220323171443541.png

cat写文件

cat >> 文件名称
回车写入文件内容
Ctrl+D结束写入

管道命令 |

Linux允许通过管道命令|将一个命令的输出作为另一个命令的输入

如:

image-20220323172709900.png

image-20220323172821104.png

image-20220323173026914.png

远程管理命令

关机\重启

shutdown //默认1分钟后关机
shutdown 22:22 //在今天的22:22关机
shutdown +10 //10分钟后关机
shutdown now //现在立刻关机
shutdown -c //取消关机命令
shutdown -r now//现在重启操作系统

查看/配置网卡信息

  • ifconfig查看网卡配置信息(DOS下为ipconfig
  • ifconfig | grep inet 查看网卡对应的IP地址
  • 注意:一台电脑可能有一个物理网卡和多个虚拟网卡,Linux中物理网卡以ensXX表示
  • 127.0.0.1为本地环回地址,一般用来测试本地网卡是否正常

image-20220323180126895.png

  • ping IP地址,测试目标IP地址的主机是否连接通常

  • ping 127.0.0.1,测试本机是否连接通畅

  • 终止终端程序执行:CTRL+C

    image-20220323180615700.png

ssh基础

image-20220324092715654.png

  • ssh客户端是一种使用secure shell协议连接到远程计算机的软件程序
  • ssh是目前可靠,专为远程登录会话和其他网络服务提供安全性的协议
    • 通过ssh协议可以有效防止远程原理过程中的信息泄露
    • 通过ssh协议可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗
  • ssh协议传输的数据是经过压缩的,可以加快传输速度

6.3.1 域名与端口号

域名:IP地址的别名,如:www.baidu.com

image-20220324093342913.png

端口号

  • 通过IP地址找到计算机
  • 通过端口号找到计算机上运行的应用程序
    • SSH服务器的默认端口号是22,如果是默认端口号,在连接时可以省略
  • 常见服务端口号列表
序号服务端口号
01SSH服务器22
02Web服务器80
03HTTPS443
04FTP服务器21

6.3.2 SSH客户端的简单使用

ssh -p sort user@IP/域名

sort:端口号,默认为SSH服务器端口号22

user:远程机器上的用户名

(1)查询本地虚拟机Linux的IP地址

image-20220324101003815.png

(2)通过DOS窗口连接本地虚拟机,并通过DOS窗口远程对虚拟机进行操作

image-20220324101712161.png

//注:SSH命令只能在Linux系统和UNIX系统下使用c++
//在Windows系统下使用需要安装PUTTY或者Xshell软件

scp远程拷贝命令

  • scp-scure copy,在Linux下的远程拷贝命令
  • 其地址格式与ssh命令相同,但选项**-P为大写字母**
scp -P port 01.py user@IP:Desktop/01.py   //将本地01.py文件拷贝到远程桌面上
scp -P port user@IP:Desktop/01.py 01.py   //将远程文件拷贝到本地桌面上
加上-r选项可以拷贝文件夹
将虚拟机Desktop文件夹里的123.txt文件拷贝到本地Desktop文件夹下

image-20220324151546457.png

将本地桌面文件夹的123.txt文件拷贝到虚拟机上的桌面文件夹下

image-20220324151653275.png

将虚拟机桌面文件夹下的aaa文件夹拷贝到本地桌面文件夹下

image-20220324151829083.png

将本地桌面文件夹下的aaa文件拷贝到虚拟机的桌面文件夹下

image-20220324152035116.png

SSH高级

用户权限

基本概念

  • 文件/目录的权限
权限英文缩写代号
readr4
writew2
执行excutex1
  • 组:由几个不同的用户组成,实际应用中,可以对组设置权限,从而避免对每一个用户依次设置权限

ls -l详细信息

  • 权限:第一个字符以d为开头表示目录
  • 硬连接数:表示有几种方式可以访问当前目录/文件
  • 拥有者:
  • 组:
  • 大小:
  • 时间:
  • 名称:
  • image-20220324160218211.png

image-20220324160402306.png

chmod修改权限命令

作用:修改用户/组文件/目录的权限

chmod +r/w/x 文件名  //给文件增加权限
chmod -r/w/x 文件名  //给文件取消权限
  • 文件增加执行权限

image-20220324165539972.png

  • 文件取消执行、读取权限

image-20220324165704094.png

image-20220324165717075.png

  • 文件夹取消执行权限

image-20220324170653231.png

超级用户介绍

  • Linux系统中存在一个root用户用于对系统的维护和管理,对操作系统的资源具有所有访问权限

  • Linux安装过程中,会自动创建一个用户账号,该账号称为标准用户

  • susubstitute user的缩写,表示用另一个用户的身份

  • sudo命令意为用其他身份执行命令,预设身份为root

组管理

注:创建组/删除组都需要sudo执行

命令作用
groupadd 组名添加组
groupdel 组名删除组
cat /etc/group确认组信息
chgrp -R 组名 文件/目录名修改文件/目录所在组
  • 组信息都保存在etc/group
  • /etc是专门用来保存系统配置文件信息的目录

image-20220325160837125.png

LrPniR.png

修改文件目录所在组实操:

  • 创建pythonStudy文件目录

LrPKRx.png

  • 创建dev组

LrPeo9.png

  • 将pythonStudy目录所在组修改为dev

LrPZdJ.png

用户管理

终端命令

注:创建/删除用户以及修改用户密码的终端命令都需要sudo执行

  • 创建用户/设置密码/删除用户

    命令作用说明
    useradd -m -g 组 新建用户名添加新用户-m自动建立用户家目录
    -g指定用户所在组,否则会建立一个同名的组
    passwd 用户名设置用户密码如果是普通用户,直接用passwd可以直接修改用户密码
    userdel -r 用户名删除用户-r选项会自动删除用户家目录
    cat/etc/passwd|grep 用户名确认用户信息新建用户后,用户信息会保存在etc/passwd文件中

测试

  • 创建新用户myuser

LrP1sO.png

  • 修改myuser密码(输入密码时在屏幕上不打印)

LrPMz6.png

  • 在Windows下的putty远程登录软件上登录myuser用户进行测试

LrPlQK.png

查看用户信息

查看系统信息

  • 时间日期
    • date
    • cal
  • 磁盘和目录空间
    • df
    • du
  • 进程信息
    • ps
    • top
    • kill

时间日期

命令作用
date查看系统时间
calcalendar查看日历,-y 选项可以查看一年的日历

LrPqYR.png

磁盘信息

命令作用
df -hdisk free 显示磁盘剩余空间
du -h[目录名]disk usage 显示磁盘目录下的文件大小
  • -h表示以人性化的方式显示文件大小

LrPLf1.png

进程信息

命令作用
ps auxprocess status 查看进程的详细状态
top动态显示正在运行中的进程
kill [-9] 进程代号终止指定代号的进程,-9表示强制终止
  • ps选项说明功能
选项含义
a显示终端所有进程,包括没有控制终端的进程
u显示进程的详细状态
x显示没有控制终端的进程

其他命令

  • 查找文件
    • find
  • 软链接
    • ln
  • 打包压缩
    • tar
  • 软件安装
    • apt-get

查找文件

命令作用
find [路径] -name .py查找指定路径下扩展名为.py的文件,包括子目录
  • 省略路径名,表示在当前目录下查找

  • 正则查找

  • 搜索桌面文件下,包含“1”的文件

LrPbk9.png

  • 搜索桌面文件下,所有以“.txt”为扩展名的文件

LrP7TJ.png

  • 搜索桌面文件下,以数字“1”为开头的文件

LrPTw4.png

软链接

命令作用
ln -s建立该文件的软链接,类似与Windows下的快捷方式
  • 若没有-s表示建立的是一个硬链接
  • 源文件要使用绝对路径

演练

  • 在桌面创建01.py文件与demo/b/c文件夹,并在01.py文件内写入内容

LrPv6K.png

  • 将01.py文件移动到demo/b/c文件夹下

LrPxOO.png

  • 在桌面分别创建01.py软链接的相对路径与绝对路径,并分别访问这两个软链接

LriSmD.png

Lrip0e.png

  • 将01.py相对路径的软链接与硬链接移动到demo/b/c文件夹下,并分别访问这两个软链接,比较两者差异

Lri9TH.png

LriPkd.png

打包压缩

  • windows 下使用 rar

  • mac 下使用 zip

    • linux 下使用 tar.gz

GDB调试

命令作用
gdb 可执行程序启动
quit(q)退出
set args*** show args给主函数设置参数
list/l显示当前文件内容
list/l 行号显示某一行前后内容
list/l 函数名显示某函数前后内容
list/l 文件名:行号显示其他文件内容
list/l 文件名:函数名显示其他文件内容
set listsize 行数设置显示行数
b/break 行号、函数名、文件名:行号、文件名:函数设置断点
i/info b/break查看断点
d/del/delete 断点编号删除断点
dis/disable 断点编号设置断点无效
ena/enable 断点编号设置断点生效
b/break 10 if i=5设置条件断点,一般再在循环体内设置
start启动程序从第一行开始
run运行程序直到断点
c/continue继续运行到下一个断点
n/next向下执行,不会进入函数体
p/print打印变量值
ptype打印变量类型
s/step单步调试,可以进入函数体
finish跳出函数体
until跳出循环
display num设置自动变量(自动打印变量值)5
i/info display显示自动变量信息
undisplay 编号移除自动变量

open函数

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdio.h>
#include<unistd.h>
int main(int args,char*argc[])
{
    //int open(const char* pathname, int flags);
    //文件打开模式参数flags
    //	必选参数:O_RDONLY, O_WRONLY, or O_RDWR
    //	可选参数:O_APPEND(追加)、O_CREAT(创建新文件)
    
    int fd = open("a.txt", O_WRONLY);
    if (fd = -1)//fd=-1表示会打开失败
        perror("open");//打印错误信息
    close(fd);//关闭文件描述符

    
//    int open(const char *pathname, int flags, mode_t mode);

    int fd = open("create.txt", O_WRONLY | O_CREAT, 0777);
    if (fd = -1)
        perror("open");
    close(fd);	

    return 1;
}

read/write函数

//#include <unistd.h>
//ssize_t read(int fd, void* buf, size_t count);
// read() attempts to read up to count bytes 
// from file descriptor fd into the buffer starting at buf.
//参数:
//	-fd:open打开的文件描述符
//	-buf:将文件内容读取到buf中
//	-count:设置buf字节数
//返回值:
//	>0 已经读取的字节数
//	-1 读取失败
//	0  读取结束

//#include <unistd.h>
//ssize_t write(int fd, const void* buf, size_t count);
//write() writes up to count bytes from the buffer 
//starting at buf to the file referred to by the file descriptor fd.

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include<stdio.h>
#include<unistd.h>
#include<string.h>
#include<iostream>
using namespace std;
int main(int args,char*argc[])
{
    //打开文件create.txt
    int srcfd = open("create.txt",O_RDONLY);
    if (srcfd == -1)//如果文件不存在或文件打开失败则返回错误信息
        perror("open");

    char buf[1024];
    memset(&buf, 0, sizeof(buf));//初始化buf
    int len = read(srcfd, buf, sizeof(buf));//将create.txt文件中的信息读取到buf中
    if (len < 0)
        perror("read");//显示读取错误信息
    cout << "接受";
    cout << len << "个字符" << endl;
    cout<<buf<<endl;
    //新建一个文件cp.txt
    int desfd = open("cp.txt", O_WRONLY | O_CREAT, 0777);
    if (desfd == -1)
        perror("open");//显示新建错误信息
    write(desfd, buf, sizeof(buf));//将buf中的信息写入cp.txt中
    close(srcfd);
    close(desfd);
    return 1;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值