安装Linux系统

VMware安装

首先安装VMware

VMware下载地址

在镜像网站下载镜像,直接进行安装

虚拟机安装

镜像下载地址

这里使用\(16.04\)版本

  1. 点击创建新的虚拟机

  2. 根据向导选择镜像并安装

  3. 安装完成之后开启虚拟机

    等待虚拟机启动

Linux介绍

  • \(LINUX\)的内核

    内核是系统的核心,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。
  • \(LINUX \ SHELL\)

    Shell是系统的用户界面,它是一个命令解释器,它解释用户输入的命令,并且把它们送到内核。提供了用户与内核进行交互操作的一种接口。
  • \(LINUX\) 文件系统

    Linux文件系统是文件存放在磁盘等存储设备上的组织方法。Linux能支持多种目前许多的文件系统,如EXT2、EXT3、FAT、VFAT、ISO9660、NFS、SMB等。
  • \(LINUX\)应用系统

    标准的Linux系统都有一整套称为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。

Linux常用命令

此处使用\(Tabby\)进行ssh连接操作

文件与目录管理

目录操作

  • 系统目录结构





  • 目录创建

lyj208111545116@ubuntu:~$ mkdir work
lyj208111545116@ubuntu:~$ ls
Desktop Documents Downloads examples.desktop Music Pictures Public Templates Videos work
  • 目录删除

    1. 删除空目录
    2. 删除非空目录
lyj208111545116@ubuntu:~$ rmdir work
lyj208111545116@ubuntu:~$ ls
Desktop Documents Downloads examples.desktop Music Pictures Public Templates Videos
lyj208111545116@ubuntu:~$ rmdir work
rmdir: 删除 'work' 失败: 目录非空
lyj208111545116@ubuntu:~$ rm -r work
  • 查看当前所在目录
lyj208111545116@ubuntu:~$ pwd

  • 转换目录
lyj208111545116@ubuntu:~$ cd [dir]
# dir 相对路径或绝对路径

  • 到用户的主目录
lyj208111545116@ubuntu:~/Desktop$ cd ~

  • 回到先前的目录
lyj208111545116@ubuntu:~$ cd -
# /home/lyj208111545116/Desktop

  • 回到上级目录
lyj208111545116@ubuntu:~/Desktop$ cd ..

  • 查看当前目录的内容
lyj208111545116@ubuntu:~$ ls
# Desktop Documents Downloads examples.desktop Music Pictures Public Templates Videos



可选参数

  • [-a] 显示隐藏文件和目录

  • [-l]显示文件的细节.

  • [-R]递归的显示子目录

  • 复制文件

lyj208111545116@ubuntu:~/work$ ls
# test
lyj208111545116@ubuntu:~/work$ cd test
lyj208111545116@ubuntu:~/work/test$ ls
# t.txt
lyj208111545116@ubuntu:~/work/test$ cp t.txt ~/work
lyj208111545116@ubuntu:~/work/test$ cd ..
lyj208111545116@ubuntu:~/work$ ls
# test t.txt

附加操作

  1. -r

    递归的复制子目录
  2. -f

    若目的地已经有相同档名的档案存在,则在复 制前先予以删除再行复制 .
  3. -a

    尽可能将档案状态、权限等资料都照原状予以复制

文件操作

  • 文件创建
lyj208111545116@ubuntu:~/work$ touch t.txt
lyj208111545116@ubuntu:~/work$ ls
t.txt
  • 文件删除
lyj208111545116@ubuntu:~/work$ rm t.txt
lyj208111545116@ubuntu:~/work$ ls
  • 链接

    1. ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化 .
    2. ln的链接又分为软链接和硬链接两种
    3. 硬连接是存在同一个文件系统中,而软连接却可以跨越不同的文件系统 。不能建立指向目录的硬链接
  • 软链接

lyj208111545116@ubuntu:~/work$ ln -s ~/work/test/t.txt t.txt
lyj208111545116@ubuntu:~/work$ ls -l t.txt
lrwxrwxrwx 1 lyj208111545116 lyj208111545116 37 8月 29 15:27 t.txt -> /home/lyj208111545116/work/test/t.txt
  • 硬链接
lyj208111545116@ubuntu:~/work/test$ ln ~/work/t.txt t.txt
lyj208111545116@ubuntu:~/work/test$ ls -l t.txt
-rw-rw-r-- 2 lyj208111545116 lyj208111545116 0 8月 29 15:31 t.txt
  • 移动文件
lyj208111545116@ubuntu:~/work$ ls
test
lyj208111545116@ubuntu:~/work$ cd test
lyj208111545116@ubuntu:~/work/test$ ls
t.txt
lyj208111545116@ubuntu:~/work/test$ mv t.txt ~/work
lyj208111545116@ubuntu:~/work/test$ ls
lyj208111545116@ubuntu:~/work/test$ cd ..
lyj208111545116@ubuntu:~/work$ ls
test t.txt
  • 文件查看

    1. cat [filename]

      显示文件内容

    2. less [filename]

分页显示文件,显示一页,不能拖动滚动条

3. more [filename]

分页显示文件

4. head [options] [filename]

显示文件的前n行

5. tail [options] [filename]

显示文件的后n行

  • 查找文件

    • 查找指定的文件

    • 在文件中查找字符串

  • 查看文件属性

文件权限 文件所属的用户 文件所属的组 数据最后修改时间 文件
Permissions Owner Group Date file
lyj208111545116@ubuntu:~/work$ ls -l
总用量 20
drwxrwxr-x 2 lyj208111545116 lyj208111545116 4096 8月 29 16:55 test
-rw-rw-r-- 1 lyj208111545116 lyj208111545116 10240 8月 29 16:25 test.tar.gz
-rw-rw-r-- 1 lyj208111545116 lyj208111545116 74 8月 29 16:19 t.txt
  • 修改文件权限
名称 字符 数值
可读 r 4
可写 w 2
可执行 x 1
可以使用直接相加的分数来进行修改
lyj208111545116@ubuntu:~/work$ sudo chmod 777 ~/work/test
lyj208111545116@ubuntu:~/work$ ls -l
总用量 20
drwxrwxrwx 2 t1 test_grp 4096 8月 29 16:55 test
-rw-rw-r-- 1 lyj208111545116 lyj208111545116 10240 8月 29 16:25 test.tar.gz
-rw-rw-r-- 1 lyj208111545116 lyj208111545116 74 8月 29 16:19 t.txt
  • 修改文件用户
lyj208111545116@ubuntu:~/work$ sudo chown t1 ~/work/test
lyj208111545116@ubuntu:~/work$ ls -l
总用量 20
drwxrwxr-x 2 t1 lyj208111545116 4096 8月 29 16:55 test
-rw-rw-r-- 1 lyj208111545116 lyj208111545116 10240 8月 29 16:25 test.tar.gz
-rw-rw-r-- 1 lyj208111545116 lyj208111545116 74 8月 29 16:19 t.txt
  • 修改文件所属组
lyj208111545116@ubuntu:~/work$ sudo chgrp test_grp ~/work/test
lyj208111545116@ubuntu:~/work$ ls -l
总用量 20
drwxrwxr-x 2 t1 test_grp 4096 8月 29 16:55 test
-rw-rw-r-- 1 lyj208111545116 lyj208111545116 10240 8月 29 16:25 test.tar.gz
-rw-rw-r-- 1 lyj208111545116 lyj208111545116 74 8月 29 16:19 t.txt

管理

User

  • 创建用户
lyj208111545116@ubuntu:~/work/test$ sudo useradd [opt] [username]
  • 删除用户
lyj208111545116@ubuntu:~/work/test$ sudo userdel [opt] [username]
  • 修改用户
lyj208111545116@ubuntu:~/work/test$ sudo usermod [opt] [username]
  • 修改密码
lyj208111545116@ubuntu:~/work/test$ sudo passwd [opt] [username]
  • 查看登录用户

  • 用户切换
lyj208111545116@ubuntu:~$ su t1
密码:[输入密码]
t1@ubuntu:/home/lyj208111545116$

Group

  • 添加组
# 权限问题
lyj208111545116@ubuntu:~$ sudo groupadd test_grp
  • 删除组
lyj208111545116@ubuntu:~$ groupdel test_grp
  • 显示用户所在的组
lyj208111545116@ubuntu:~$ groups lyj208111545116
# lyj208111545116 : lyj208111545116 adm cdrom sudo dip plugdev lpadmin sambashare

杂项

  • 通配符

    • \({*}\)

      匹配多个字符
    • \(?\)

      匹配单个字符
    • [a-z]

      匹配a\(\sim\)z之间的字符
    • [^a-z]

      匹配除了a\(\sim\)z之间的字符
  • Standard I/O

读取数据的对象称为输入流,能向其写入的对象叫输出流 。

名称 文件标识符 设备
STDIN 0 键盘
STDOUT 1 显示器、打印机
STDERROR 2 显示器
  • redirect I/O
序号 命令 作用
1 > file 把结果写入文件,文件内容覆盖
2 < file 读文件内容作为命令输入
3 >> file 把结果写入文件,文件内容不覆盖
4 2>&1 把错误输出写道标准输出
lyj208111545116@ubuntu:~/work$ ls -l t.txt > t.txt
lyj208111545116@ubuntu:~/work$ cat t.txt
-rw-rw-r-- 1 lyj208111545116 lyj208111545116 0 8月 29 16:14 t.txt
lyj208111545116@ubuntu:~/work$ cat t.txt
t.txt
lyj208111545116@ubuntu:~/work$ cat < t.txt
t.txt
lyj208111545116@ubuntu:~/work$ cat t.txt
t.txt
lyj208111545116@ubuntu:~/work$ ls -l t.txt >> t.txt
lyj208111545116@ubuntu:~/work$ cat t.txt
t.txt
-rw-rw-r-- 1 lyj208111545116 lyj208111545116 6 8月 29 16:17 t.txt
  • 管道命令

管道可以使一个命令的输入作为另一个命令的输出 ‘|’

lyj208111545116@ubuntu:~$ ps -ax | grep tty
935 tty1 Ss+ 0:00 /sbin/agetty --noclear tty1 linux
959 tty7 Ssl+ 0:36 /usr/lib/xorg/Xorg -core :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
73365 pts/4 S+ 0:00 grep --color=auto tty
  • 压缩解压命令

    • tar

      • 打包

      • 解包

      • 参数

    -x : extract files

    -v : verbose mod

    -z : to compress or decompress *.gz

    -j : to compress or decompress *.bz2

    -f : specify the file to extract

    -c : to create an archive

    • gzip

      • 压缩

      • 解压缩

    • bzip2
      • 压缩

      • 解压缩

  • 软件安装

    • install

      安装

    • update

      更新软件源

    • delete

      删除
  • 查看ip信息

lyj208111545116@ubuntu:~$ ifconfig
ens33 Link encap:以太网 硬件地址 00:0c:29:de:e1:77
inet 地址:192.168.116.129 广播:192.168.116.255 掩码:255.255.255.0
inet6 地址: fe80::b88e:a830:917e:5d19/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:6575 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:4050 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:3652164 (3.6 MB) 发送字节:354508 (354.5 KB) lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 跃点数:1
接收数据包:320 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:320 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:25855 (25.8 KB) 发送字节:25855 (25.8 KB)
  • 查看内核日志
lyj208111545116@ubuntu:~$ dmesg | more
[ 0.000000] Linux version 4.15.0-142-generic (buildd@lgw01-amd64-039) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)) #146~16.04.1-Ubuntu SMP Tue Apr 13 09:27:15 UTC 2021 (Ubuntu 4.15.0-142.146~16.04.1-generic 4.15.18)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.15.0-142-generic root=UUID=709a5400-bfe1-4787-b168-3eff490adec2 ro find_preseed=/preseed.cfg auto noprompt priority=critical locale=en_US quiet
[ 0.000000] KERNEL supported cpus:
[ 0.000000] Intel GenuineIntel
[ 0.000000] AMD AuthenticAMD
[ 0.000000] Centaur CentaurHauls
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
[ 0.000000] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
[ 0.000000] x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'standard' format.
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009e7ff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009e800-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000bfedffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000bfee0000-0x00000000bfefefff] ACPI data
[ 0.000000] BIOS-e820: [mem 0x00000000bfeff000-0x00000000bfefffff] ACPI NVS
[ 0.000000] BIOS-e820: [mem 0x00000000bff00000-0x00000000bfffffff] usable
[ 0.000000] BIOS-e820: [mem 0x00000000f0000000-0x00000000f7ffffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000fffe0000-0x00000000ffffffff] reserved
[ 0.000000] NX (Execute Disable) protection: active
[ 0.000000] SMBIOS 2.7 present.
[ 0.000000] DMI: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/02/2015
[ 0.000000] Hypervisor detected: VMware
[ 0.000000] vmware: TSC freq read from hypervisor : 2900.000 MHz
[ 0.000000] vmware: Host bus clock speed read from hypervisor : 66000000 Hz
[ 0.000000] vmware: using sched offset of 3092833125 ns
[ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved
[ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[ 0.000000] e820: last_pfn = 0xc0000 max_arch_pfn = 0x400000000
[ 0.000000] MTRR default type: uncachable
[ 0.000000] MTRR fixed ranges enabled:
[ 0.000000] 00000-9FFFF write-back
[ 0.000000] A0000-BFFFF uncachable
[ 0.000000] C0000-CFFFF write-protect
[ 0.000000] D0000-EFFFF uncachable
[ 0.000000] F0000-FFFFF write-protect
[ 0.000000] MTRR variable ranges enabled:
[ 0.000000] 0 base 000C0000000 mask 3FFC0000000 uncachable
[ 0.000000] 1 base 00000000000 mask 3FF00000000 write-back
[ 0.000000] 2 disabled
[ 0.000000] 3 disabled

编写和编译程序

编译c程序

  • 使用vim编写c程序
lyj208111545116@ubuntu:~$ vi main.c

#include<stdio.h>
int main()
{ printf("hello world");
return 0;
}
  • 使用指令编译并运行
lyj208111545116@ubuntu:~$ gcc main.c -o ma
lyj208111545116@ubuntu:~$ ~/ma
hello world

编写c++程序

  • 使用vim编写c++程序
lyj208111545116@ubuntu:~$ vi cpp_test.cpp

#include <iostream>
int main()
{
std::cout << "hello world" << std::endl;
return 0;
}
  • 使用指令编译并运行
lyj208111545116@ubuntu:~$ g++ cpp_test.cpp -o ct
lyj208111545116@ubuntu:~$ ~/ct
hello world

Linux简易入门的更多相关文章

  1. Linux基础入门学习笔记20135227黄晓妍

    学习计时:共24小时 读书:1小时 代码:8小时 作业:3小时 博客:12小时 一.学习目标 1. 能够独立安装Linux操作系统   2. 能够熟练使用Linux系统的基本命令   3. 熟练使用L ...

  2. JNI简易入门

    JNI简介 JNI(Java Native Interface)是JDK的一部分,提供了若干API实现了Java和其他语言的通信(主要是C/C++).JNI主要用于以下场景: 贴近硬件底层的功能,Ja ...

  3. crontab简易入门

    前言 crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比 ...

  4. Linux系统入门简介<1>

    linux系统入门简介 我们为什么要学习Linux? 在介绍Linux的历史前,我想先针对大家如何对Linux的发音说一下.我发现我身边的朋友对Linux的发音大致有这么几种: "里那克斯& ...

  5. IT技术学习指导之Linux系统入门的4个阶段(纯干货带图)

    IT技术学习指导之Linux系统入门的4个阶段(纯干货带图) 全世界60%的人都在使用Linux.几乎没有人没有受到Linux系统的"恩惠",我们享受的大量服务(包括网页服务.聊天 ...

  6. Linux 基础入门(新版)”实验报告一~十二

    实验报告 日期: 2015年9月15日 一.实验的目的与要求 熟练地使用 Linux,本实验介绍 Linux 基本操作,shell 环境下的常用命令. 二.主要内容 1.Linux 基础入门& ...

  7. Linux 基础入门 第二周9.21~9.27

    一.学习内容 本周主要学习内容主要贴合: 在进行<深入理解计算机系统>这门课的实验中没有遇到什么大问题,学习内容与上周实验<linux基础入门>有相似之处.本实验中的内容比较贴 ...

  8. 机器学习简易入门(四)- logistic回归

    摘要:使用logistic回归来预测某个人的入学申请是否会被接受 声明:(本文的内容非原创,但经过本人翻译和总结而来,转载请注明出处) 本文内容来源:https://www.dataquest.io/ ...

  9. 【转载】茶叶蛋干货!《超容易的Linux系统管理入门书》(连载十)进行动态主机配置DHCP

    使用动态主机配置协议DHCP(Dynamic Host Configuration Protocol)则可以避免网络参数变化后一些繁琐的配置,客户端可以从DHCP服务端检索相关信息并完成相关网络配置, ...

  10. 【转载】绝对干货!Linux小白最佳实践:《超容易的Linux系统管理入门书》(连载九)如何通过源代码安装软件

    除了使用Linux的包管理机制进行软件的安装.更新和卸载,从源代码进行软件的安装也是非常常见的,开源软件提供了源代码包,开发者可以方便的通过源代码进行安装.从源码安装软件一般经过软件配置.编译软件.执 ...

随机推荐

  1. visual studio插件开发-Menu

    工欲善其事,必先利其器,作为程序员我们很大部分时间在和ide打交道,好的插件可以大大提高我们的编程效率,我开发过几个vs插件来解决一键生成dbmodels,快速部署到服务器,总结下来最关键的还是对于M ...

  2. nrf9160 做modem—— 连接云(接入方式MQTT)

    今天测试把nrf9160作为modem的例程Serial LTE Modem程序(后面简称slm),何为做modem,通俗来说就是将nrf9160作为无线模块,主控由其余MCU做,主控通过AT命令控制 ...

  3. 一、docker的介绍

    一.虚拟化和容器 虚拟化介绍 操作系统层虚拟化是指通过划分一个宿主操作系统的特定部分,产生一个个隔离的操作执行环境.操作系统层的虚拟化是操作系统内核直接提供的虚拟化,虚拟出的操作系统之间共享底层宿主操 ...

  4. 20_Vue如何监测数组类型数据发生改变的?

    通过上一节,我们知道了vue检测对象数据发生改变的原理 但是还有个api我们没有讲解,Vue.set(): 这个API比较适合在理解了对象检测的原理后进行讲解 案例准备 html <!-- 创建 ...

  5. ES的java端API操作

    首先简单介绍下写这篇博文的背景,最近负责的一个聚合型的新项目要大量使用ES的检索功能,之前对es的了解还只是纯理论最多加个基于postman的索引创建操作,所以这次我得了解在java端如何编码实现:网 ...

  6. TypeScript(基础篇)day01

    一.TS介绍 1.1 简介 ts是2012年由微软开发,在js的基础上添加了类型支持 1.2 优劣势 优势 :任何位置都有代码提示,增加效率:类型系统重构更容易:使用最新的ECMAscript语法 劣 ...

  7. 【HarmonyOS】【ArkUI】在Service中使用Emitter

    ​ 参考资料 1.相关基础知识:触发器Emitter2.启动服务:ServiceAbility开发 开发步骤 第一步:开发界面,界面内容由一个按钮组件+文本组件构成,然后在按钮组件中添加点击事件,开启 ...

  8. 思维分析逻辑 1 DAY

    数据分析原则:坚决不做提数机器. 数据分析工作模块 日报 了解业务现状 提升数据敏感性 数据波动解释 周报 了解数据的短期趋势 版本迭代分析 为结论型报告背书 月报 梳理业务的流程 为决策提供部分建议 ...

  9. Go语言核心36讲16----接口

    你好,我是郝林,今天我们来聊聊接口的相关内容. 前导内容:正确使用接口的基础知识 在Go语言的语境中,当我们在谈论"接口"的时候,一定指的是接口类型.因为接口类型与其他数据类型不同 ...

  10. UWSGI 安装出现 ModuleNotFoundError: No module named '_ctypes'

    原因:Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用C ...