linux--基本命令

shell简介

概念;Shell是一种特殊的程序
作用:是内核与用户的一种接口
shell命令解释器查看:cat /etc/shells
shell一种解释型的语言(内部命令/外部命令)
    内部命令:系统自带的,随系统内核一起启动(56) cd(改变路径)
    外部命令:就是一些额外的软件或者程序    ls(列出文件或者目录)
sh(Borurne Shell)   csh   ksh
BASH 是rhel中默认的一种

shell命令

通用命令格式

命令字 【选项】 【参数】
    选项:
        作用:用于调节命令的具体功能
        "-"引导短格式选项(单个字符) EX:“-l”
        "--"引导长格式选项(多个字符) EX: "--color"
        多个短格式选项可以写在一起
            -a -l -z -x   -->  -alzx
    参数:
        命令操作的对象,有文件,目录等
        [root@localhost ~]# ls -l /home

BASH快捷方式

CTRL + c  中断当前操作
CTRL + l(aile)   = clear     #清屏
'\'    #换行
CTRL + A   #光标跳到行首
CTRL + E   #光标跳到行尾
CTRL + U   #清空光标所在位置的前面所有内容
CTRL + K   #清空光标所在位置的后面所有内容

CTRL + SHIFT + "+"  #放大字体
CTRL + "-" #缩小字体

命令解析

[root@localhost Desktop]#
    root:代表当前登录用户
    localhost:代表当前系统的主机名称
    Desktop:代表当前所在的位置
    #:这个#代表当前登录用户是管理员用户  
        root:管理员  administractor
    $:代表当前登录用户为普通用户
        ex:[student@localhost ~]$

[root@localhost ~]# su - student
    su [-] username  切换当前登录
        有 -  :代表切换bash
        无 -  :代表不切换bash环境
    由root用户到普通用户不需要密码
    由普通用户到root用户需要密码
    exit  退出

常用命令

系统命令

#准确的shell命令规范
    命令字 【选项】 【参数】
    
#查看系统当前主机名   hostname
    [root@localhost Desktop]# hostname
    localhost.localdomain
    
#修改主机名并让他生效   hostnamectl set-hostname hostname
[root@localhost Desktop]# hostnamectl set-hostname BJTLXY
[root@localhost Desktop]# hostname
bjtlxy
[root@localhost Desktop]# su -
Last login: Fri Jun 29 08:07:42 EDT 2018 on pts/0

#关机操作
    poweroff   
    init 0
    shutdown -h now
    halt
    
#重启命令
    reboot
    shutdown -r now     #现在重启
    shutdown -r +15    #15min后重启    

#查看当前系统时间 date
[root@bjtlxy ~]# date
Fri Jun 29 08:18:33 EDT 2018

#查看日历  cal
[root@bjtlxy ~]# cal
      June 2018     
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

[root@bjtlxy ~]# cal 2018    #查看全年日历
[root@bjtlxy ~]# cal 09 2018    #查看某年某月的日历

#查看历史
[root@bjtlxy ~]# history   #查看历史命令,默认保留1000行
!n   #调用历史命令  ex:!22
[root@bjtlxy ~]# history -c    #清除历史命令

#获得命令帮助:
    help(内部命令)cd,kill  56条
        EX:help cd
    --help(适用于大多数外部命令查找)  ls
        EX:ls --help
    使用man手册
        man cd
        输入 /   ,可以查找
    info 也可进行命令帮助查找(使用与man接近)
        info cd
    pinfo 命令名称  以浏览器的形式查看详细的GUN信息
        pinfo cd
    /usr/share/doc  #所有已安装软件的说明文件
        firefox file:///usr/share/doc

目录操作

#cd切换工作目录
    cd 【目录位置】
        绝对路径:cd /home/student
        相对路径:
            cd   什么都不跟,代表切换当前用户家目录
            cd .  当前目录
            cd ..  代表上级目录
            cd -  返回上一次所在的工作路径
            cd /   返回到根目录
            cd ~   返回到用户的家目录
            cd ../../  返回上一级目录的上一级目录

#ls:列出当前目录下的文件或者目录
    格式: ls [选项] [目录或文件名]
    选项:
        -l   以长格式显示
        -a   显示所有文件目录信息,包括隐藏文件
        -d   显示目录本身的属性
        -h   显示详细信息,变换了统计单位
        --color   以颜色区分不同类型的文件
    注:在Linux中,以.开头的文件是隐藏文件
        ll == ls -l
#mkdir 创建一个新目录
    格式:mkdir 【选项-p】[路径]目录名
        -p  递归创建多级目录
        mkdir -p b/c/e/f/g
#rmdir  删除一个空目录
    [root@tlxy ~]# rmdir adir/

文件操作

#touch  创建一个空文件,更新文件时间标记
    格式:touch 文件名
    注:在Linux中,不以后缀区分文件
#echo打印
    [root@tlxy ~]# echo "hello world"
    hello world
    #重定向覆盖写
    echo "hello world" > a.txt
    #重定向追加写
    echo "hello world" >> a.txt
#cp 复制文件或者目录
    格式:cp [选项]  源文件/目录   目标文件/目录
        -r  递归复制整个目录树
    [root@tlxy bb]# cp /root/aa/a.txt   /root/bb/
    [root@tlxy bb]# cp ../aa/a.txt   .
#rm  删除文件或目录
    格式:rm [选项] 文件或者目录 
    -r  递归删除整个目录树
    -f  强制删除不给任何提示
    [root@tlxy bb]#rm -rf /  从删库到跑路(心有多大就跑多远)
#mv  移动/重命名文件或者目录
格式:mv [选项] 源文件/目录   目标文件/目录
    ex:
    [root@localhost text]# ls
    a.txt  b.text
    [root@localhost text]# mv b.text /root/text-2/

    注:若移动目标位置与源位置相同(当前下操作),则此操作相当于重命名(改名)
    ex:  [root@localhost ~]# mv text  text-1
#find  用于查找文件或者目录
    格式:find [查找范围] [查找条件]
    查找条件:
        -name  按文件名查找
            [root@localhost ~]# find / -name  initial-setup-ks.cfg
            /root/initial-setup-ks.cfg
            [root@localhost ~]# find / -name  initial-*
            /root/initial-setup-ks.cfg
            [root@localhost ~]# find / -name  initial-*-*
            /root/initial-setup-ks.cfg
            [root@localhost ~]# sudo find / -name *conda*
            /home/yuxiang/anaconda3
            find: ‘/run/user/1000/gvfs’: 权限不够
            yuxiang@yx-pro:~$ 

        -type  按文件类型查找   
                f  普通文件
                    [root@localhost ~]# find / -name text -type f
                d  目录
                    [root@localhost ~]# find / -name text -type d
                b  块设备文件
                c  字符设备文件

        -user   按文件属主查找(这个文件是谁的)
            [root@localhost ~]# find / -user yuxiang  -name initial-setup-ks.cfg -type f
            find / -user yuxiang -type f -name yx.initial-setup-ks.cfg
        -size   按文件大小进行查找
            [root@localhost ~]# find /var/ -size +1k  -size -10k  -type f # 查找大于1k,小于10k的文件

        -a  逻辑与
        -o  逻辑或
        !  逻辑非
            [root@localhost ~]# find / ! -name temp -type f
            find / -name anaconda-ks.cfg  -o -name initial-setup-ks.cfg

文件内容操作

#cat 文件内容查看,显示出文件的全部内容
    格式:cat filename
#less(more) 全屏方式分页显示文件内容
    格式:less/more  filename
        按回车Enter逐行滚动
        按空格键向下翻页
        按b键向上翻页
        按q键退出
        more用法与less一致,只是多了一个百分比显示
#head(头部)显示文件头部若干行,默认十行
    格式:head [选项] filename
        head -n 5 initial-setup-ks.cfg 
#tail(尾部)显示文件尾部若干行,默认十行
    格式:tail [选项] filename
        [root@localhost ~]# tail -n +5 initial-setup-ks.cfg
    注释:注意符号的使用  + - 代表意思不同
#wc 统计文件内容的,默认情况下统计结果为: 行数  词数  字节数
    格式:wc [选项] filename
    选项:
        -w 统计字数  一个字被定义为由空白,跳格,换行以这些为分割字符串
        -l 行数
        -c 字节数
        -m 字符数 -m -c 不能一起使用
        -L 打印最长行的长度
            man wc
            wc --help
            wc --version
            wc -l -c -w -L initial-setup-ks.cfg
#grep 在文件中查找并显示包含指定字符串的行
    格式:grep [选项]  查找条件  目标文件
    选项:
        -c 显示匹配行的数量
        -i 查找时不区分大小写
        -v 反转查找
            [root@localhost ~]# grep -c  'boot' initial-setup-ks.cfg 
            7
            [root@localhost ~]# grep -c -v  'boot' initial-setup-ks.cfg 
            42
            [root@localhost ~]# grep -i "agent"  initial-setup-ks.cfg
        查找条件设置:
            1.查找条件用引号引起来
            2.“^………………”表示以什么什么开头
            3.“………………$”表示以什么什么结尾
            4.“^$” 匹配空行

            [root@localhost ~]# grep -cv  '^$' anaconda-ks.cfg
            [root@localhost ~]# grep "^#" anaconda-ks.cfg
            [root@localhost ~]# grep "ation$" anaconda-ks.cfg

归档/压缩

tar 压缩与解压缩  制作归档文件和释放归档文件
    格式:
        制作归档文件:
            tar [选项] [目录]/归档文件名  源文件或者目录
        释放归档文件:
            tar [选项] 归档文件  [-C 目标文件]
    命令:
        压缩:
            tar -czvf [存放路径]归档文件名.tar.gz  源文件或者目录
                tar -cjvf [存放路径]归档文件名.tar.bz2  源文件或者目录
            -c 压缩
            -z  压缩为.gz格式
            -vf 显示详细信息
        解压缩:
            tar  -xzvf [存放路径]归档文件名.tar.gz  [-C 解压目录]
            tar  -xjvf [存放路径]归档文件名.tar.bz2  [-C 解压目录]
            -x  解压

alias 别名:为使用频率较高的命令设置简短的调用名称
    查看当前用户所有别名
        alias  [别名]
    设置别名
        alias  别名=“实际执行的命令”  
            [root@localhost ~]# alias aa="grep -c  'boot' initial-setup-ks.cfg"
            [root@localhost ~]# alias aa
            alias aa='grep -c  '\''boot'\'' initial-setup-ks.cfg'
            [root@localhost ~]# aa
            7
    取消别名
            [root@localhost ~]# unalias aa
            [root@localhost ~]# unalias -a   #取消所有别名
    让别名永久生效
        将别名设置在~/.bashrc文件中
        .bashrc文件内容追加
            alias rm='rm -i'
            alias cp='cp -i'
            alias mv='mv -i'
            alias aa="grep -c  'boot' initial-setup-ks.cfg"

#ln创建链接
    软连接 ln -s  源文件   目标文件
        ln -s a.text a.text.soft
    硬连接 ln  源文件   目标文件     #相当于cp -p +同步跟新
        ln a.text a.text.hard

重定向与管道符

作用:将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上
    0    标准输入  键盘   stdin   仅读取    
    1    标准输出  终端   stdout  仅写入
    2    标准错误  终端   stderr  仅写入
    3+ filename   其他文件  读/写
    >:覆盖写
    >>:追加写
    1>:标准覆盖写
    2>:错误覆盖写
    &>:标准输出和错误输出均写入文件
    | :管道传送符,将管道前面的结果作为后面的输出

    [root@localhost ~]# echo "hello world" >a.txt 
    [root@localhost ~]# cat a.txt 
    hello world
    
    [root@localhost ~]# echo "hello world world" >>a.txt 
    [root@localhost ~]# cat a.txt 
    hello world
    hello world world
    
    [root@localhost ~]# cat a.txt | head -n 1 >1.txt 
    [root@localhost ~]# cat 1.txt 
    hello world

VIM

vim特点

vim特点:可拓展性比较高,支持多种语言的脚本,支持文件类型的插件,支持文本的各种骚气操作

vim3种模式

正常模式:可以使用快捷键命令,或按:输入命令行。
插入模式:可以输入文本,在正常模式下,按i、a、o等都可以进入插入模式。
可视模式:正常模式下按v可以进入可视模式, 在可视模式下,移动光标可以选择文本。按V进入可视行模式, 总是整行整行的选中。ctrl+v进入可视块模式。
替换模式:正常模式下,按R进入。

常用快捷键

yy:复制一行
P/p:粘贴粘贴板的内容到当前行的上/下面
dd:删除光标所在行
/ + 'str' +  enter:向后查找
? + 'str' +  enter:向前查找
w:将缓冲区写入文件,即保存修改
wq=x:保存修改并退出
q:退出,如果对缓冲区进行过修改,则会提示
q!:强制退出,放弃修改
o:在当前行之下新加一行,并进入插入模式
u:撤销
Ctrl+u:替换粘贴
shift+insert:粘贴

其他命令

elinks
    常用纯文本浏览器
    elinks【选项】【网址】
        ex:elinks www.baidu.com
du
    计算文件或目录容量
    du 【选项】【文件/目录】
        -h  显示详细信息
            ex:du -h initial-setup-ks.cfg 
发布了108 篇原创文章 · 获赞 7 · 访问量 5181

猜你喜欢

转载自blog.csdn.net/qq_25672165/article/details/104921412