【Linux】基础操作指令

时间:2021-08-03 08:11:16

1、date:日期时间

  • date : 显示当前日期和时间
  • “+”进行格式化输出
  • date +%Y%m%d //显示当前日期
  • %Y 年份
  • %m 月份
  • %d 月中的第几天
  • %F 等于 %Y-%m-%d
  • date +%H%M%S //显示当前时间
  • %H 小时
  • %M 分钟
  • %S 秒钟
  • %T=%H:%M:%S
  • +”%F %T” 有空格需要用双引号
  • date : Sun May 27 22:09:52 PDT 2018
  • date +%Y/%m/%d : 2018/05/27
  • date +%H:%M:%S :22:04:26
    date -s :设置时间
  • date +%s 时间 -> 时间戳
  • date -d @时间戳 +%格式化 时间戳-> 时间
    【Linux】基础操作指令

2、cal : 万年历

  • cal 当前月日历
  • cal 2018 : 2018年日历
  • cal 12 2018 :2018年12月日历
  • cal -3 :上一个月 本月 下一个月

3、bc:计算器

  • bc : bc 1.06.95····(计算器版本信息,进入计算器工作环境)
  • bc环境下输入scale=3,bc默认仅输出整数,当输入scale=3时,默认输出小数点后3位小数的数
  • quit : 离开bc环境

4、ls 查看目录下内容:

  • ls -l 列出详细信息
  • ls -d 显示目录本身,而不是目录里的内容
  • ls -a 显示所有文件,包括隐藏文件
  • pwd 打印当前路径

5、cd 改变当前路径:

  • cd ~ 返回根目录(~代表家目录)
  • cd . 当前目录
  • cd .. 返回上一级目录
  • cd - 回到刚才那个目录
  • cd /usr/share/doc 绝对路径的写法,去此完整路径
  • cd ../man 相对路径的写法,去上一级目录下的man目录
    【Linux】基础操作指令

6、创建删除目录:

  • mv add.c/add1.c 将add.c文件移动到add1.c中

  • cp add1.c/add.c 将add1.c中的内容复制到add.c中

  • touch 如果文件不存在就创建,存在就更新时间

  • rm y删除 直接回车默认不删
  • rm hello* 通配符*代表任意多个字符,此命令表示删除hello开头的所有文件
  • rm -r(rm recursive) 递归删除,可删除非空目录
  • rm-rf 删除时不提示 !!!禁用
  • mkdir 创建目录
  • mkdir -p /test/test1/test2/test3 可自行创建多层目录
  • rmdir 只能删除空目录
  • mkdir -p 连同上层的”空”目录一起删除

特殊小例(●’◡’●):

  • rm -aaa- 删除文件-aaa-,但系统会误判,将 - 视为命令参数,从而报错
  • rm . /-aaa- 加上 ./删除-开头的文件

7、查看文件内容

  • cat 由第一行开始显示文件内容
  • cat -n 显示文件内容时连同行号一起显示
  • nl 显示文件内容并打印行号,nl相对于cat -n可对行号进行位数,自动补零等操作
  • more 分屏看文件,一页一页的显示文件内容 空格:翻下一屏 b:翻上一屏
  • less 分屏看且可以查找 /查找内容 q退出
  • head 缺省显示文件的前十行
  • head -n k 显示文件的前k行
  • tail 显示文件的尾十行
  • tail -n k 显示文件的尾部的k行
  • tail -f 追加输出,按ctrl+c退出追加,追加输出的内容不保存
  • tac 反向列示,从文件最后一行到第一行反向显示在屏幕上

8、cut:选取命令

  • cut -d ‘分隔字符’ 分列的标志符,5’ 取出第4、 5列 取4、 5列 取5* cut -c ‘字符范围12-15’ 取出第12到15个字符
  • 离散的列 start-end
  • sort 缺省按ASCII排序
  • sort candy.c > a.log 将candy.c按数值排序后输出重定向到a.log
  • uniq 显示取出相邻重复行后的文件
  • wc 统计行数、单词数、字符数
  • wc-l统计行
  • echo ”回显“
  • “>” 对标准输出重定向
  • ”>>“ 追加输出
      小练习(●’◡’●):一个文件有100行,取出中间三行

       ①把candy.c的前51行输出重定向到tmp中,candy.c中内容未变
           head -n 51 candy.c > tmp
       ② 输出tmp的尾三行
           tail -n 3 tmp

9、find:查找文件

  • find 目录 -name “*.h”
    • find /usr/include -name “*.h” -exec ls -l {} \;
    • 目录:在哪个目录下查找
    •  -name: 按照文件名查找
    • -exec 接着执行exec后的命令(exec+命令+{}\)
      【Linux】基础操作指令

10、grep:查找文件内容

  • grep “root”  /etc/passwd  在文件中查找root
  • grep -n “root” /etc/passwd-n 显示行号
    【Linux】基础操作指令

11、管道

  • 本质:内核中的一块缓存
  • 特点:一个进程可以往里面写,另一个进程可以从里面读,读写必须同时进行

    小练习(●’◡’●):如何在一个工程目录中查找想要的函数名?

    • find . -name “*.c” | xargs grep “main”
        利用管道查找所有”.c“文件中含有“main”的文件

12、关机

  • shutdown -> 广播消息
       |
      V
  • init 0 -> 关闭服务
       |
      V
  • halt -> 关机
  • init :必须是超级用户 root 才能使用
  • su - root:普通用户切换到超级用户
    • exit :再切回上一个用户

13、文件的压缩与解压

  • 压缩:
  • tar -cvf day01.tar day01 压缩成zip
  • tar -czvf day01.tar.gz day01 压缩成gzip
  • tar -cjvf day01.tar.bz2 day01 压缩成bzip2
  • 解压:
  • tar -xvf day01.tar
  • tar -xzvf day01.tar.gz
  • tar -xjvf day01.tar.bz2
  • tar -xvf day01 -C+目录   指定解压到哪里

14、man手册

  • 解释命令,相当于cmdn
  • man 章节 命令 在固定章节查找该命令
代号 代表内容
1 用户在shell环境中可以操作的命令或可执行文件
2 系统内核可调用的函数与工具
3 一些常用的函数和函数库,大部分为C的函数库
4 设备文件的说明,大部分在/dev下的文件
5 配置文件或者某些文件的格式
6 游戏
7 惯例与协议等,例如Linux系统文件、网络协议、ASCII code等说明
8 系统管理员可用的管理命令
9 跟kernel有关的文件

15、/passwd含义

  • cat /etc/passwd可以看到root : x : 0 : 0 : root : /root : /bin/bash
  • 每一位的含义如下:
  • name:password:uid:gid:comment:home:shell
说明
name 用户登录名
passwd 用户口令。此域中的口令是加密的。当用户登录系统时系统对输入的口令采取相同的算法,与此域中的内容进行比较,若此域为空,则该用户登录时不需要口令
uid 指定用户的UID。用户登录进系统后,系统通过该值,而不是用户名来识别用户
gid GID。如果系统要一群人赋予相同的权利,则使用该值
comment 用来保存用户的真实姓名和个人细节
home 指定用户的主目录的绝对路径
shell 如果用户登录成功,则要执行的命令的绝对路径放在这一区域,他可以是任何命令

16、/(root,根目录 ):

  • 含义:所有的目录都是由根目录衍生出来的,根目录还与开机、还原、系统修复等操作相关

    • /bin :放置的是二进制可执行文件,单用户维护模式下还能够被操作的指令,如cat、chmod、chown、date、mv、mkdir、cp、bash等 。
    • /boot :主要放置开机会使用的文件,包括Linux内核文件以及开机菜单与开机所需要的配置文件等。
    • /dev:任何设备与接口设备都是以文件的形式存在于该目录下,访问该目录下的某个文件,就相当于访问某个设备。
    • /etc:存放系统主要的配置文件,例如人员的账号密码文件、各种服务的起始文件等,一般用户可查阅,只有root有权限修改。
    • /home:系统默认的用户主文件夹,创建一个一般用户时,默认的用户主文件夹均会规范到该文件夹。
    • /lib:放置开机时会使用到的函数库,以及在/bin或/sbin下的命令会调用的函数库。
    • /lost+found:当文件系统发生错误时,将一些丢失的片段放置到这个目录下。
    • /media:放置的是可删除设备,包括软盘、光盘、DVD等设备。
    • /mnt:用于暂时挂载某些额外的设备。
    • /opt:第三方软件放置的目录。
    • /proc:虚拟文件系统,放置的数据都是在内存中,如系统内核、进程、外部设备的状态及网络状态等、数据都在内存中,所以本身不占任何磁盘空间
    • /root:系统管理员root的主文件夹
    • /sbin:放置开机过程所需要的的开机、修复、还原系统所需要的指令。
    • /srv:网络服务启动后,服务所需要取用的数据目录。
    • /sys:虚拟文件系统,记录与内核相关的信息,该目录不占任何磁盘空间

    • /tmp:一般用户或者正在执行的程序暂时放置文件的地方,任何人都可以改动

    • /usr:unix操作系统软件资源,所有系统默认的软件均会放置在该目录下,系统安装完毕后,该目录占用硬盘容量最多。
    • /var:主要针对常态性变动文件,包括缓存、登陆文件以及软件运行时产生的文件,包括程序文件、或者例如MySQL数据库文件等。

小技巧(●’◡’●):

  • ctrl + d 离开键盘输入界面,相当于End Of File(EOF),也相当于”exit”
  • ctrl + c 中断目前程序
  • ctrl + l 清屏 <==> clear
  • 查看曾经用的命令 :history
  • whereis 命令 : 找到命令在哪里放着(详细)
  • which 命令 : 找到命令在哪里放着 (简洁)
  • whatis 命令 : 简单介绍该命令
  • whoami : 查看当前用户是谁
  • uname : 查看系统的信息
    【Linux】基础操作指令
  • TAB按键:命令补全、文件补齐
    tab按键,接在一串命令的第一个命令后面时,为“命令补全”
    tab按键,接在一串命令的第二个命令后面时,为“文件补全”

  • ` : 命令替换 touch mydate +%Y%m%d`.log
    ①执行 date +%Y%m%d,将执行结果放入这个位置
    ②执行touch
    ③生成my20180613.log的文件【Linux】基础操作指令