当前位置: 首页 > news >正文

2021-03-26 Linux基础

Linux基础

文章目录

  • Linux基础
    • 基本设置
    • 远程连接
      • 工具
      • 要素
      • 主机名与IP地址映射
    • 基本操作
    • 常用Shell命令
      • grep
      • 进程
    • 用户和组
      • 用户
    • Linux系统下文件类型
    • 文件
      • 文件信息
      • 文件权限
      • 文件基本命令
    • 目录
      • 重要的目录
      • 目录基本命令
    • 连接
    • 打包、解压缩
      • 打包
      • 压缩
    • VI文本编辑
      • VI的三种模式
      • VI编辑文件
      • 命令行模式操作
      • 底行模式操作

基本设置

  • [root@haddop-senior Desktop] #

    用户名 主机名 所在目录

    #表示当前用户属于root用户,超级管理员用户;$表示普通用户

  • ipconfig 查看IP地址

    ifconfig 显示或设置网络设备。

    P.S. 手动设置IP地址后,虚拟机无法连接到互联网

远程连接

工具

  • SecureCRT:远程命令行
  • FileZilla:FTP(File Transfer Protocal)
  • 远程编辑:UltraEditor、NotePad++
  • 远程图形界面:Xmanager

要素

  • IP地址→映射到主机名
  • 用户名+密码
  • 协议 ssh

主机名与IP地址映射

IP hostname

查看与修改文件地址:

Linux:/etc/hosts

Windows:C:WindowsSystem32driversetchosts

基本操作

clear
halt # 关机 只关系统不关闭电源-p 关闭电源
reboot # or init6 重启
shutdown #关机 now 立即关机 -r 重启
logout # 注销当前用户

uname -a # 展示电脑的基本信息,通常包括电脑名称,Linux内核版本,发行版名称等
cat /proc/version #展示当前运行的Linux发行版的详细信息
hostname # 显示主机名

whoami # 显示用户名 类似的还有logname命令
who # 单独执行who指令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个显示器 
w # 执行这项指令可得知目前登入系统的用户有那些人,以及他们正在执行的程序
last # 列出目前与过去登入系统的用户相关信息
id # 显示用户的ID,以及所属群组的ID

date # 显示当前日期
free # 显示内存状况

Tab键自动命令补全

常用Shell命令

基本语法:command -option file

|:命令管道,串联多个命令

可使用通配符

echo $SHELL # 查看shell类型
man command # 查找命令含义及

grep

grep能使用正则表达式搜索文本,并把匹配的行打印出

grep foo /etc/passwd
# 返回在password文件中所有的含有foo的行
# grep -i "foo" /etc/passwd
# -i选项是忽略大小写,这就意味着若某一行含有FOO或FOo也会被搜索到
grep -r "foo" /etc/passwd
# 这条命令将会搜索/etc/passwd目录及其子目录下所有的包含“foo”的行
ls -la | grep foo*
# 列出当前目录下任何以foo开头的文件或目录,例如如下文件将被匹配:foo,foobar,foolish.txt

进程

ps # 显示哪些程序正在运行
ps -ef | grep firefox # 查找firefox进程
kill id # 杀掉某个进程

用户和组

Linux创建用户时,默认创建一个组,组名与用户名一致

用户

# 建立账号
useradd usrname
passwd usrname # 保存在/etc/passwd文本文件中

# 删除账号
userdel usrname
# 仅删除用户账号不删除相关文件
# -r 删除用户home目录

# 修改用户
usermod usrname
:<<! 常用参数
-d 指定用户主目录
-g 指定用户所属主群组
-G 指定用户的附属群组,多个逗号隔开
-L 锁定用户密码
-U 解锁用户
-s 修改用户指定的shell
-u 修改用户的uid
!

用户主目录可以用~表示

hostname # 查看或设置hostname P.S.重启后设置名称不保存
su # 切换用户;后面为空代表切换到root用户
su usr # 不切换环境变量,仍使用之前用户的环境变量
su -usr # 切换环境变量到新用户的环境变量
sudo # 临时获取root权限
  • 提升用户权限

    $ su root
    chmod 777 /etc/sudoers
    vi /etc/sudoers
    # 编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root  ALL=(ALL) ALL,在该行下添加提升权限的用户信息
    # root    ALL=(ALL)       ALL
    # david  ALL=(ALL)       ALL
    

groupadd # 创建群组。
groupdel # 删除群组。
# 倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组

groupmod # 修改群组id或群组名
# -g <群组识别码>  设置欲使用的群组识别码
# -n <新群组名称>  设置欲使用的群组名称

Linux系统下文件类型

  • 文件 -
  • 目录 d
  • 链接 l(类似于快捷方式)

文件

文件信息

在这里插入图片描述

第一部分:drwxr-xr-x 共有10个位置

  • 第一个字符指定了文件类型,如果第一个字符是横线,表示是个非目录的文件;如果是d,表示是个目录
  • 后面九个字符,分为三组,表示此文件针对不同用户的权限关系

第二部分:hansun hansun-group

  • 第一个字符串表示文件的拥有者
  • 第二个字符串表示文件所属组

最后:文件大小 & 创建日期 & 名称

文件权限

文件权限

  • r( 2 2 2^2 22)代表只读
  • w( 2 1 2^1 21)代表写
  • x( 2 0 2^0 20)代表可执行
  • -代表空许可,没有任何权限

可用对应数字表示权限

文件针对不同用户的权限关系

文件的归属:

文件基本命令

  • 查看文件信息

    ls #(—list)# 查看当前目录下文件
    ls -l(ll)# 查看文件详细信息
    ls -t # 按时间显示
    ls -a # 显示隐藏文件
    
  • 创建文件

    touch filename
    vi filename # or vim filename
    # 若文件不存在会创建文件
    
  • 追加文件内容

    $ echo "content" >> filename
    
  • 读取文件

    cat /path/filename 
    cat file1 file2     # 依顺序显示file1,file2的内容
    cat file1 file2 > file3      
    # 把file1,file2的内容结合起来,再“重定向(>)”到file3文件中
    
    # 如果一个文本文件太长了超过一个屏幕的画面,可以使用more和less:
    more filename # 使超过一页的文件临时停留在屏幕,等到按任何的一个键以后,才继续显示
    less filename # 除了有more的功能以外,还可以用方向键往上或往下的滚动文件
    
    tail filename # 末尾内容
    # 通常与-f连用,适合于查看服务实时日志动态信息
    head filename # 开头内容
    # 适合查看文件格式,内容模板样式
    
  • 文件复制

    cp fred.txt ethel.txt 
    # 把fred.txt中的内容复制到当前文件夹中名为ethel.txt中
    cp *.txt  /home/sjvn/docs/
    # 复制当前目录下所有以.txt结尾的文件到指定的目录下
    cp fred.txt /home/sjvn/docs/fred.txt
    # 把fred.txt复制到指定文件中
    cp -r /home/sjvn/docs/ /home/sjvn/backup
    # 复制当前目录下所有文件到指定目录下
    
  • 文件移动或重命名

    mv src dest
    # src和dest在同一目录下为重命名
    # src和dest在同一目录下为移动
    
  • 文件删除

    注意:路径最好为绝对路径防止误删!

    rm dir # 删除空目录或文件
    rm -r dir # 递归删除
    rm -rf dir # 递归强制删除(慎重使用)
    
  • 文件搜索

    $ find ~/ -name file
    $ find ~/ -name read* # 包含此开头
    

目录

Linux的文件系统只有一个文件树,整个文件系统以"/"为起点,所有的文件和外部设备都以文件的形式挂接在这个文件树上

重要的目录

  • /bin /sbin

    存放使用和维护Linux系统的大部分程序

    P.S. /sbin只有root用户可以访问

  • /etc

    这个目录一般用来存放系统级别的配置文件,其中的一些重要文件如: passwd、shadow、fstab、hosts、profile、shells、services等等。

  • /lost+found
    这个目录专门用来放那些在系统非正常关机后重新启动系统时,不知道该放哪里恢复使用的“流浪”文件

  • /boot
    这个目录下面存放着和系统启动有关的各种文件,包括系统的引导程序和系统核心部分

  • /root
    这是系统管理员(root)的主目录

  • /home
    系统中所有用户的主目录都存放在/home中

  • /mnt
    按照约定,像CD-ROM、软盘、U盘,或者磁带这样的可以移动的介质都应该安装在/mnt目录下

  • /tmp /var
    这两个目录用来存放临时文件和经常变动的文件

    其中/var经常作为www主目录存放网站代码

  • /usr
    按照约定,这个目录用来存放与用户相关的程序或文件,这里面也有一个bin和一个sbin子目录

目录基本命令

连接

ln:为某一个文件在另外一个位置建立一个不同的链接

ln –s file/dir link_name

软链接,它只会在选定的位置上生成一个文件的镜像,不会占用磁盘空间

ln file/dir link_name

硬链接,没有参数-s, 它会在选定的位置上生成一个和源文件大小相同的文件

无论是软链接还是硬链接,文件都保持同步变化

打包、解压缩

打包

在压缩文件之前,一般都需要进行打包

# 打包文件
tar -cvf name.tar *.txt  
# -c create 打包模式
# -f file 指明打包文件名
# 多个文件以空格隔开或者采用通配符

# 解包文件:
tar -xvf name.tar
# -x extract 解包模式

# 一步压缩/解压文件
tar zcvf  * name.tar.gz dir
tar zxvf file.tar.gz -C dir

压缩

打包之后,可以对文件进行压缩;Linux下常用的压缩程序为gzip,也支持普通的zip/unzip

# 压缩文件
gzip file.tar
# 原来的文件会消失  

# 解压文件
gzip -d file.tar.gz
# 原来的文件会消失

# zip压缩文件
zip -r name.zip  要压缩的文件或者目录
# unzip解压文件:
unzip name.zip -d 解压缩的目录位置

VI文本编辑

VI的三种模式

  • 命令行模式(command mode)

    控制屏幕光标的移动,字符、字或行的删除,按i进入到插入模式

  • 插入模式(Insert mode)

    只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式,按:回到底行模式

  • 底行模式(last line mode)

    将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等

VI编辑文件

  • vi /path/filename 编辑文件

  • 基本操作

    i:进入insert(编辑)模式

    Esc:退出编辑

    :+ wq 保存

    !+ q! 不保存

  • 快捷键

    dd:删除光标所在的行的内容,删除从光标开始的3行 3dd

    ZZ:保存文件内容

    x:删除光标所在处字符,如果是删除光标后的3个字符,则是3x;大写的X是删除光标前的字符

    o:在光标的下一行进行插入

    移至上下左右 kjhi

    移至行首和行尾 ^和$

    移至段落开头和结尾 { }

    向前和向后翻屏 Ctrl+f 和 Ctrl+b

    在光标前或者后插入字符 i或a

    复制整行 yy

    复制从光标所在的3行 3yy

    粘贴 p

    取消操作 u

命令行模式操作

底行模式操作

  • w filename 保存当前编辑到filename文件名
  • wq filename 保存到指定文件并退出
  • wq 保存并退出
  • q! 放弃所有修改,直接退出vi

相关文章:

  • Efficient Elements for presentations – Add-in for PowerPoint
  • R语言ggplot2可视化:ggplot2可视化水平半小提琴图(Horizontal Half Violin Plots)
  • 如何在terminal中使用Joplin并像vim一样移动?
  • 下一个排列问题next_permutation
  • SSM传染病监测防控管理系统毕业设计-附源码061525
  • 开题报告:基于java房产中介预约看房网站系统 毕业设计论文开题报告模板
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • 【小程序】中的事件处理详解
  • SSM大学生心理健康服务平台毕业设计-附源码071131
  • springboot绿色食品商城毕业设计-附源码061109
  • 猿创征文|技术成长之路-【Java编程系列】之文件OSS存储实践:Amazon S3实现文件上传下载
  • Docker10:DockerFile的介绍与指令说明
  • Java求数组所有子数组的两种方法
  • j2cache入门使用
  • dockerkubernets篇(二十七)
  • 345-反转字符串中的元音字母
  • Angular数据绑定机制
  • Mysql优化
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 如何在 Tornado 中实现 Middleware
  • 译米田引理
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • 浅谈sql中的in与not in,exists与not exists的区别
  • ​渐进式Web应用PWA的未来
  • # 数据结构
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (C++17) std算法之执行策略 execution
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (七)理解angular中的module和injector,即依赖注入
  • (十)T检验-第一部分
  • (一)spring cloud微服务分布式云架构 - Spring Cloud简介
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • (转)Mysql的优化设置
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • @WebService和@WebMethod注解的用法
  • [ C++ ] STL---string类的模拟实现
  • [20190416]完善shared latch测试脚本2.txt
  • [23] GaussianAvatars: Photorealistic Head Avatars with Rigged 3D Gaussians
  • [C#]winform部署yolov9的onnx模型
  • [CISCN2019 华北赛区 Day1 Web2]ikun
  • [element-ui] el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案
  • [Gamma]阶段测试报告
  • [Java] IDEA Scala环境搭建
  • [Linux] PXE批量装机
  • [Linux]文件基础-如何管理文件
  • [Markdown] 02 简单应用 第二弹
  • [Oh My C++ Diary]善用三目运算符(a?b:c)
  • [SE]软件项目需求分析为什么困难
  • [spark] DataFrame 的 checkpoint
  • [Spring Cloud 项目] Spring cloud 实现房源查询功能
  • [SpringBoot]接口的多实现:选择性注入SpringBoot接口的实现类
  • [svc]ftp协议数据连接的2种模式