Linux基础

一.Linux诞生

1.虚拟机本身只是一个机遇操作系统的软件,可以模拟其他操作系统环境。
2.Linux是Linus(人名)作为创始人开发的,包括内核版本和发行版本,内核版本只有一个版本,而发行版用作推广,有很多版本,Fedora Core,Debian,Mandrake,Ubuntu等十多种不止。
3.服务器端操作系统包含Linux,Windows Server等;客户端操作系统包括,Windows,MacOS等。Linux是最常用的服务器操作系统,是多用户的,不同于客户端系统(同一时间只能有一个用户操作系统为单用户)。
4.MacOS安装Linux虚拟机

安装VMware Fusion(官网有),使用VMware下载Ubuntu。

二.Linux命令

基础格式:command [Option] [Parameter]
‘[]’代表可选

1.基础操作命令
  • cd -切换目录
    .表示当前目录 ..表示上一级目录
    cd or cd~ 回到用户根目录
    cd - 最近两次目录来回切换
  • pwd - 显示当前目录
  • ls - 显示当前文件
    ls -a 显示所有文件 包括隐藏文件(.开头的)
    ls -l 列表显示
    ls -l -h 列表显示,且包含文件大小
    ls 通配符 查看满足通配符的文件 *代表任意多个字符 ?代表任意一个字符
2.文件相关
  • touch -创建文件
  • mkdir File -创建文件夹
    mkdir -p a/b/c/d 连续创建多目录
  • rm File -删除文件
    rm -r 删除文件夹内容
    rm -f 忽略不存在的文件,强制删除
    rm 也可以使用通配符
  • tree 显示目录树状结构
    tree ~ 根目录的结构
    tree -d 只显示目录,不显示文件
  • cp SourceFile DirectionFile -复制文件
    linux同一个目录下不能有同名的文件及文件夹
    cp -i 是否提示覆盖
    cp -r 复制文件或目录
  • mv SourceFile DirectionFile -移动文件
    mv -i 是否提示覆盖
  • cat File 查看文件内容(全部)
    cat -b 显示编号,不包含空行
    cat -n 显示编号,包含空行
  • more File 查看文件内容(分屏显示)
    用于看多内容文件
  • grep Keyword File -查找Keyword
    -n 显示行号
    -i 忽略大小写
    -v 取反
  • 重定向> File -把内容输出到文件中
    eg:ls -l >a.txt 把文件目录输出到a.txt
  • 重定向>> File -把内容追加输出到文件中
    eg:tree >>a.txt 把文件结构输出到a.txt
  • 管道 | -一个命令的输入作为另一个命令的输入
    eg:ls -a | grep d 查看目录中包含d的文本
  • man 命令 or 命令 --help 查看命令帮助
    skill:Tab可以自动补全文件名称
3.远程管理相关
  • ifconfig -查看当前计算机网卡和ip相关信息
  • ping IP地址|域名 - 检测目标主机是否连接正常
    ping 127.0.0.1 检测本机网卡是否正常连接
  • ssh [-p port] user@ip
    使用ssh协议进行客户端到服务器端的通讯,传输数据进行压缩和加密。
    通过ssh,让Mac(模拟客户端)连接到Linux-Ubuntu(模拟服务器)系统。
    1.查看Ubuntu主机的ip地址
    ifconfig | grep inet
    2.在Mac终端输入ssh连接指令
    ssh -p 22 [email protected]
    3.确认yes并输入用户密码即可连接
    4.退出连接
    exit
    tips:ps -e | grep ssh 查看ssh服务是否启动,如果没有信息,通过sudo apt-get install openssh-server 命令安装即可。
  • scp -复制远程文件到客户端
    复制Linux-Ubuntu桌面a文件夹到Mac当前目录demo下
    scp -P 22 -r [email protected]:Desktop/a demo
4.用户相关

先介绍ls-l 显示的文件信息相关概念
第一个参数 drwxrwxrwx-代表是否是目录,用户读写执行权限,用户组读写执行权限,其他用户读写执行权限
第二个参数 表示硬链接数(能访问到该文件/文件夹的方式数目),比如cd 绝对路径;cd .;子目录cd ..等,所以如果硬链接数多,间接可以反映出文件子文件/目录的个数多,因为子文件才可以使用cd ..方式到达该文件。
第三,四个参数 表示用户和用户组

Linux基础_第1张图片
ls-l.jpeg

  • chmod -修改文件/目录权限
    -R 递归修改文件权限
    chmod -rwx File -删除读写执行权限
    chmod +rwx File -添加读写执行权限
    如果文件拥有执行权限,会作为可执行文件处理;如果文件夹没有拥有执行权限,不能访问到该文件目录(cd 无权限)。
    快捷修改用户,用户组,其他用户权限
    rwx-对应421 三个数字对应三种权限设置之和
    chmod 777 -修改权限为rwxrwxrwx
    chmod 000 -修改权限为---------
    sudo -默认用root权限执行命令(超级管理员)
    用户组的作用就是方便权限的统一管理
  • groupadd groupName -添加组
    需要使用 sudo groupadd root权限添加
  • groupdel groupName -删除组
    需要使用 sudo groupdel root权限删除
  • cat /etc/group - 查看组
  • chgrp -R 用户组 目录 -修改目录所属组
    需要sudo chgrp root权限修改
  • chown 用户名 目录 -修改目录所属用户
    需要sudo chown 权限
    用户管理
    一个用户可以配置多个用户组权限,包括一个主组,多个附加组
  • useradd -创建用户
    -m 自动创建home目录
    -g 指定用户组
    eg:sudo useradd -m -g dev zhousiyang
  • passwd -指定用户密码
    eg:sudo passwd zhousiyang
  • userdel -删除用户
    -r 自定删除home目录
    eg:sudo userdel -r zhousiyang
  • id userName -查看用户uid和用户组gid信息
    cat /etc/passwd 存放用户uid相关
    cat /etc/group 存放用户组gid相关
  • whoami - 查看当前登录用户名称
  • who - 查看登录当前系统的所有用户和来源
  • usermod -给用户配置用户组权限/指定用户的shell
    -g 指定主组
    -G 指定附加组
    eg:sudo usermod -G sudo zhousiyang,给zhousiyang添加附加组sudo权限
    sudo usermod -s /bin/bash zhousiyang ,给zhousiyang指定使用bash shell
  • which command -查看命令所在位置
    /etc/passwd 用户保存用户信息的文件
    /usr/bin/passwd 用于修改用户密码的程序
    在linux中,绝大部分命令保存在/bin,/sbin,/usr/bin,/usr/sbin目录下

    /bin 二进制执行目录,主要用于具体应用
    /sbin 系统管理员应用的二进制执行目录,主要用于系统管理
    /usr/bin 后期安装的一些软件
    /usr/sbin 超级用户的一些管理程序

  • su username -切换用户
    su zhousiyang 切换到zhousiyang用户,但不改变当前位置
    su - zhousiyang 切换到zhousiyang用户,且到该用户home目录
    su - 直接切换到root用户
    exit 退出当前切换的用户,回到上一个用户
5.系统信息相关
  • date -查看系统时间
  • cal -查看日历
  • df -h -查看磁盘使用情况
  • du -h 目录 -显示目录下文件大小
  • ps -查看进程信息
    a -显示终端上所有进程,包括其他用户的进程
    u -显示进程详细信息
    x -显示不是终端打开的进程
  • top -动态显示运行中的进程并且排序,使用q退出显示
  • kill Pid -杀掉对应进程
6.其他命令
  • find [路径] 类型 "通配符"
    eg:find . -name "a" -查找当前目录下名称包含a的文件/目录

  • ln 被链接文件绝对路径 链接文件名 -创建链接
    -s -创建软链接;不加-s则创建硬链接
    如果被链接的源文件删除,软链接的文件则打不开,硬链接的文件还可以使用
    之所以要使用绝对路径,是因为如果使用相对路径,当软链接目录发生移动就找不到了

  • tar -打包/解包
    tar -cvf t.tar a.txt b.txt c.txt 把a.txt,b.txt,c.txt打包成t.tar(不压缩)
    tar -xvf t.tar 把t.tar文件解包
    tar -zcvf t.tar.gz a.txt b.txt c.txt 把a.txt,b.txt,c.txt打包成t.tar.gz(使用gzip压缩)
    tar -zxvf t.tar.gz -C 指定目录 把t.tar.gz文件gzip解压缩解包
    tar -jcvf t.tar.bz2 a.txt b.txt c.txt 把a.txt,b.txt,c.txt打包成t.tar.bz2(使用bzip2压缩)
    tar -jxvf t.tar.bz2 -C 指定目录 把t.tar.bz2文件bzip2解压缩解包

  • apt -安装/卸载/升级软件
    sudo apt install 软件包 -安装
    sudo apt remove 软件包 -卸载
    sodo apt upgrade 软件包 -升级

7.vi编辑命令

vi有三种状态模式,命令模式,编辑模式,末行模式

1.命令模式进行查看,编辑模式进行编辑,末行模式进行保存退出
2.打开文件时,默认进入命令模式,点击i进入编辑模式,点击ESC退出编辑模式,进入命令模式;在命令模式下,点击:进入末行模式(w-保存 q-退出 wq/x-保存并退出 q!-强制退出不保存),点击ESC进入命令模式。

  • vi 文件名 -打开文件
    +Line -直接定位到指定行,如果不加行号,定位到文件末尾
    如果该文件存在,那么直接打开并进入编辑,如果不存在就新建文件

命令模式下移动光标操作

1.上下左右: h j k l
2.行内移动:w-向后移动一个单词 b-向前移动一个单词 0-行首 $(Shift+4)-行尾 ^(Shift+6)-非空白行首
3.行数移动:数字gg -移动到对应行数
4.屏幕移动:Ctrl+b-向上翻页 Ctrl+f-向下翻页 H-屏幕顶部 M-屏幕中部 L-屏幕下部
5.段落移动:{ -上一段(Shift+[) } -下一段(Shift+]) %(Shift+5) -匹配()
6.标记:mx-标记 'x-跳到标记位置 (x可以使a-Z任意字母)

命令模式下选中操作

  • v -正常按照光标移动选中
  • V -光标移动整行选中
  • ctrl+v -光标移动垂直选中

命令模式下删除操作

  • x -删除光标选中字符
  • d(移动命令) -删除移动命令对应的内容,比如d0删除行尾到光标位置,dw删除光标位置至单词末尾,d]删除下一个段落。
  • dd -删除光标所在行,可以+行号删除多行
  • D -从光标处删除至行尾

命令模式下撤销操作

  • u - 撤销上次命令
  • ctrl+r -恢复撤销的命令

命令模式下复制粘贴

  • y(移动命令) -复制移动命令的内容,选中文本点击y相当于复制选中文本
  • yy -复制整行
  • p -粘贴

命令d,x类似于ctrl+x
命令y 类似于ctrl+c
命令p 类似于ctrl+v
在其他软件中复制的内容,需要在编辑模式下才能粘贴。

命令模式下复制粘贴

  • r -替换当前字符

命令模式下缩进重复

  • >> -向后缩进
  • << -向前缩进
  • . -重复上一步操作

末行模式下查找

  • /keyword -查找keyword,n向下N向上
  • :%s/旧文本/新文本/g -全局查找替换 (:进入末行模式下)
  • :s/旧文本/新文本/g -选中区域查找替换 (先使用v选中区域)
  • :%s/旧文本/新文本/gc -确认是否替换(y-逐个检查替换 n-逐个检查不替换 a-全部替换 q-退出)

命令模式下插入文本

  • i -当前字符前插入文本
  • I -当前行首插入文本
  • a -当前字符后插入文本
  • A -当前行尾插入文本
  • o -当前行之前插入一个空行
  • O -当前行之后插入一个空行

命令模式下分屏

  • :sp -横向分屏
  • :vsp -纵向分屏
    ctrl+w进行分屏管理,w切换分屏

你可能感兴趣的:(Linux基础)