[Linux专题] Linux使用入门

Linux基本概念

  • Linux的核心为内核,主要包括内存管理,软件程序管理,硬件设备管理以及文件系统管理.常用的shell:bash shell zsh tcsh ash等.常用的桌面环境kde gnome等.

  • Linux的一般的文件系统,文件系统从/根目录开始,常用的目录如下:

    /          虚拟目录的根目录
    /bin:      二进制目录,主要存放GNU用户级别工具,如常用的linux工具命令ls sed mkdir
    /sbin:     二进制目录,主要存放GNU系统级别工具,如常用的ifconfig fdisk等
    /boot:     启动目录,存放启动文件.
    /dev:      设备目录 在此目录下创建设备节点
    /etc:      系统配置文件目录
    /home:     自定义用户的根目录.如创建yjf用户,则会在此创建yjf目录
    /lib64或者/lib:   库文件
    /mnt:             挂载点目录.如挂载cd-rom或者u盘等
    /opt:             存放用户可选的软件包
    /tmp:             临时目录
    /usr:             用户安装软件目录
    /var:             存放变化文件,如日志等
    /root:            root用户跟目录
    //3 绝对路径:从/开始的路径为绝对路径.相对路径:不从/开始 从文件夹开始.其中.代表当前目录. ..代表当前目录的上级目录
    

常用命令

  • 命令的通用帮助信息,使用man 命令或者命令 --help命令显示帮助信息.如具体的ls命令可使用man ls/ls --help

文件和目录相关命令

  • ls 基本列表功能,显示当前文件夹下的文件或者目录信息,支持以下选项.对于单字母参数,可使用-连接多个参数.如-sail

    通用格式: ls [options] [args] 
    options支持以下常用的选项, -a 显示所有(包括隐藏) -l(按长列表输出) -s(显示文件大小) -R(递归显示目录中的内容,大目录慎用)
    
    yjf@vbox:~$ ls -sail 
    total 36
    532501 4 drwxr-xr-x 4 yjf  yjf  4096 Aug 23 15:37 .
    524290 4 drwxr-xr-x 3 root root 4096 Aug 23 15:05 ..
    529833 4 -rw------- 1 yjf  yjf   819 Aug 24 10:49 .bash_history
    532504 4 -rw-r--r-- 1 yjf  yjf   220 Apr  5  2018 .bash_logout
    
    //对于文件显示,各选项代表意义如下:
    532501-索引 drwxr-xr-x d代表目录 -代表文件 l 软连接. 后面跟着的9个字符,3个分一组表示当前用户 组内的其他用户和其他用户对该文件的读写执行权限.
    按读写执行顺序排序.rwx表示有读写执行权限 没有相应的权限使用-代替. yjf yjf表示该文件所属的用户和组
    
    //args 参数 不带参数表示对当前文件夹显示. 可以跟具体的文件或者目录. 支持通配符过滤显示 支持?(单个字符) *(0个或者多个字符通配符)
    yjf@vbox:~$ ls -sail .bash* 列出当前文件夹下以.bash开头的文件.
    
  • cd,mkdir,rm,mv,cp等命令使用

    //1 cd 进入目录 可以是绝对目录或者相对目录 cd ~ 进入家目录. .表示当前目录 ..表示上级目录
    yjf@vbox:~/.ssh$ cd ~
    yjf@vbox:~$ cd /etc
    
    //2 mkdir用于建立文件夹 -p参数可递归的建立多个文件夹
    yjf@vbox:~$ mkdir dir1
    yjf@vbox:~$ mkdir -p d1/d2/d3
    
    //3 rm可用于删除文件 -f参数表示强制删除  rm删除文件夹必须带-r参数.
    yjf@vbox:~$ rm -rf d1
    
    //4 mv用户移动文件,文件夹或者重命名 
    yjf@vbox:~$ mv gcc.c gcc.java     //移动到当前目录下就相当于重命名 
    yjf@vbox:~$ mv gcc.java ./dest1/  //移动文件 支持多个文件
    yjf@vbox:~/dest1$ mv d1 ~/        //移动d1目录下的文件或者目录(包括子目录)到家目录下.
    
    //5 cp命令用于拷贝文件或者目录
    yjf@vbox:~$ cp .sudo_as_admin_successful d1       //单个文件拷贝 源->目的
    yjf@vbox:~$ cp -r d1 dest1                        //递归拷贝d1下的文件(包括子目录)必须使用-r参数.
    
  • touch,stat,file 用于创建文件和修改文件时间戳,查看相关的文件信息.

    //1 创建文件 touch filename  另一个功能对于已经存在的文件更改时间戳
    yjf@vbox:~$ touch document.log
     
    //2 stat file   //查看文件的统计信息 包括最近访问 最近更改等信息 可包括目录
    //3 file file   //查看文件的类型:包括文件夹 文本文件 可执行文件等类型
    
  • cat,more,less,head,tail相关命令查看文件内容.

    //常用于文件内容查看的相关命令
    //more应用于大文件,分页查看,使用q退出. less命令为more的高级版本.
    yjf@vbox:~$ more file1
    
    //1 cat命令用于查看文件 不适用于大文件 因为前面的内容会一闪而过. -n参数加行号 -b参数忽略空白行加行号.
    yjf@vbox-ubuntu:~$ cat -nb .viminfo  
    
    //2 head和tail用户查看指定文件的前或者后n行,部分查看功能.
    yjf@vbox:~$ tail -n20 .viminfo 
    yjf@vbox:~$ head -n20 .viminfo
    yjf@vbox:~$ tail +20 .viminfo  //显示从20行到末尾.
    
    //3 cat 显示文件内容到标准输出  支持以下选项
    yjf@vbox:~$ cat -n file1  //每行前面加行号
    yjf@vbox:~$ cat -b file1  //空白行不编号
    yjf@vbox:~$ cat file1 file > total  //合并file1/file文件至total文件
    
  • find, which, locate文件查找相关的操作

    //1 which主要在配置的环境变量$PATH指定的目录中查找,主要用于定位可执行程序的具体位置
    yjf@vbox:~$ which ps
    /bin/ps
    
    
    //2 find 以及locate命令
    //2.1 find命令就是给定的目录下查找符合特定条件的文件, locate就是find的-name参数版本.
    /**
     * find命令的标准格式: find [查找路径] [查找条件] [处理动作] 
     * 1 查找路径:配置需要查找的目录, 未指定的情况下,默认在当前目录.
     * 2 查找条件: 指定的查找标准,可以是文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件.查找条件可按以下指定的参数进行:
     * 2.1 -name 按名称查找.支持通配符?代表1个字符 *代表任意个字符. -i参数表示不区分大小写. -regex 基于正则表达式查找 正则匹配整个路径(包括文件夹以及文件)
     * 2.2 -user -group分别表示按照用户和用户组查找.
     * 2.3 -type 按照文件类型查找  f文件 d文件夹 l软连接 s套接字 b块文件 
     * 2.4 -size 按照文件大小进行查找.5M表示[4M,5M) -5M表示[0,5M] +5M表示[5,+Q) 
     * 3 处理动作: 对符合条件的文件进行的处理动作.默认为-print打印出来.
     * 3.1 -print  默认 -ls列出 -delete删除 exec COMMAND {} \;(执行具体的命令 {}代表查找到的文件)
     */
    yjf@vbox:~$ find -name file* 
    yjf@vbox:~$ find -iname file*     //不区分大小写查找file开头的文件夹或者文件
    
    yjf@vbox:~$ find -user yuanjianfeng -name file* -ls  
    yjf@vbox:~$ find -iname file* -type d -ls
    

grep命令详解

  • grep命令为基于正则表达式的文本全文搜索工具,可针对标准的文本文件,其他方式的文本输入进行搜索 以行为单位进行标准输出.

  • 通用命令格式:grep [options] PATTERN [file1 file2...] 支持在多个文件中搜索.常用的选项如下所示:

    //常用的选项如下:
    yjf@vbox:~/linux$ grep "test" greptest     //文件greptest中寻找 只要行内存在test的就打印出来
    yjf@vbox:~/linux$ grep -n "test" greptest  //-n选项除打印出该行的文本外前面加行号
    yjf@vbox:~/linux$ grep -in "test" greptest //-i选项表示不区分大小写
    yjf@vbox:~/linux$ grep -wi "test" greptest //-w单词匹配 如寻找的test包含在某个单词中 则算不匹配
    yjf@vbox:~/linux$ grep -v "test" greptest  //-v表示不符合条件的行打印出来
    yjf@vbox:~/linux$ grep -in -A1 -B2 age:18 greptest  //-An -Bn -Cn 表示显示匹配到的行After后n行 Before前n行 C表示前/后n行
    yjf@vbox:~/linux$ grep -qi "age:18" greptest        //-q表示静默模式,不输出任何匹配的信息 用在shell脚本中 使用$?输出匹配情况 0表示有匹配 1表示无匹配
    yjf@vbox:~/linux$ echo $?
    0
    yjf@vbox:~/linux$ grep -ic "test" greptest         //-c表示匹配的行数 不打印出匹配到的行文本
    

系统相关操作命令

  • 用户和组操作,包括用户的新增,删除,修改密码以及更改用户组等情况.默认的用户信息存放在/etc/passwd文件下.命令如下:

    //1 新增用户 useradd username 可以包括以下参数:
    -m 指定建立家目录 
    -g 指定所属的组 默认不加该参数表示租号与用户名一致
    -G 指定用户所属的附加组
    
    
    //2 修改指定用户的密码,按提示输入两次密码即可.
    yjf@vbox:~$ passwd yuanjianfeng
    
    //3 删除用户 userdel -r jack  -r参数可以指定同时删除用户目录.
    yjf@vbox:~$ userdel -r yuanjianfeng
    
    //4 修改用户所属的组 usermod -g指定主组 -G指定附加组
    yjf@vbox:~$ usermod yuanjianfeng -g yuanjianfeng -G mysql  
    
    //4 groups username 显示username用户所属的组
    yjf@vbox:~$ groups yuanjianfeng
    
    //5 群组相关的操作 groupadd groupdel组的增加的删除
    
  • 文件改变属组或者权限命令.

    /**
     * 使用ls命令查看文件信息,将提示如下信息:
     * -文件 d目录 r读 w写 x执行 rwx都有对应的二进制为111 八进制为7
     * 第一组rwx代表文件的属组(yjf)拥有rwx权限
     * 第二组rwx代表同属于yjf组的其他用户所拥有的权限
     * 第三组rwx代表其他用户所拥有的权限
     */
    yjf@vbox:~$ ll
    total 64
    -rw------- 1 yjf  yjf   820 Apr 11 14:09 .bash_history
    
    //1 权限修改使用chmod命令 
    //一种是数字表示法 另一种为符号模式(u代表用户 g代表组 o代表其他 a代表所有 +增加 -减少 =赋值) 支持参数-R表示递归处理所属的文件夹以及子文件夹.
    
    yjf@vbox:~$ chmod 777 d1 -R          //递归处理d1以及下述文件的权限为777.即所有用户具有wrx权限. 数字表示法4代表r 2代表w 1代表x
    yjf@vbox:~$ chmod a=x dest1/ -R      //=赋值会先清空所有权限 再赋值    
    yjf@vbox:~$ chmod o-rw dest1/        //其他用户减少rw权限
    
    //2 chown 改变文件所属的用户和组 -R可以递归对文件夹以及子文件夹
    yjf@vbox:~$ chown yuanjianfeng:yuanjianfeng 
    
    

Vim文本编辑

  • 安装使用centos的命令yum install vim和ubuntu命令sudo apt install vim

  • Vim使用的三种模式:命令模式(进入Vim的默认模式) 编辑模式(进行文本编辑) 底线命令模式(可以进行保存等工作) 三种命令模式可进行切换如下图:

  • 命令模式下的操作(一般模式可用的光标移动、复制粘贴、搜索替换等)

    • ggG:跳转到行首,行尾
    • nG,n:跳转到指定的第n行(配合:set nu显示行号)以及跳转到当前行下的第n行.
    • ctrl+fctrl+b:向下和向上翻页.
    • h,j,k,l:光标向左,下,上,右移动一个字符.前面可以带数字n表示进行移动n个字符.
    • 0,$:移动到光标所在行的行首和行尾.
    • u,.:撤销上次操作和重复上次操作.
    • x,X,nx,nX:删除光标所在字符,光标前的字符.带n表示可以删除向后或者向前n个字符.
    • dd,ndd:删除光标所在行以及光标所在往下的n行.
    • dgg,dG,d0,d$:分别删除光标所在到行首的行,到行尾的行,到该行行首的字符和到该行行尾的字符.
    • yy,nyy:复制光标所在行以及光标所在往下的n行.
    • ygg,yG,y0,$:复制光标所在到行首的行,到行尾的行,到该行行首的字符和到该行行尾的字符.
    • p,P:在光标所在行下方/上方粘贴拷贝的内容.
  • 命令模式切换到底线指令行模式

    • :w,:w!:改动写入文档/强制写入
    • :q,:q!:离开(未改动),强制离开(修改的将被丢弃)
    • :wq:保存并退出
    • :w filename:另存为filename文件
    • :n1,n2 w filename:文档的n1行到n2行另存为filename文件.
    • :set nu,:set nonu:显示行号以及关闭行号.
    • :! command:暂时离开vi执行命令.
  • 命令模式到插入模式

    • i,I:光标所在处输入和行首输入
    • a,A:光标所在下一个字符数开始输入和行尾输入
    • o,O:光标所在行以及下一行输入.
    • r,R:光标所在字符替换和一直替换
    • Esc:返回到命令模式
  • 底线模式下的查找替换/ ?

    • /word1:光标所在行向下搜索.回车后按n则继续往下搜索
    • ?word1:光标所在行向上搜索.回车后按n则继续往下搜索
    • :n1,n2s/word1/word2/g:n1-n2行内的word1替换为word2
    • :s/word1/word2/g:s/word1/word2/gc:全文word1替换为word2 带c表示确认

你可能感兴趣的:([Linux专题] Linux使用入门)