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 @时间戳 +%格式化 时间戳-> 时间
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目录
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+命令+{}\)
10、grep:查找文件内容
- grep “root” /etc/passwd 在文件中查找root
- grep -n “root” /etc/passwd-n 显示行号
11、管道
- 本质:内核中的一块缓存
-
特点:一个进程可以往里面写,另一个进程可以从里面读,读写必须同时进行
小练习(●’◡’●):如何在一个工程目录中查找想要的函数名?
- find . -name “*.c” | xargs grep “main”
利用管道查找所有”.c“文件中含有“main”的文件
- find . -name “*.c” | xargs grep “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 : 查看系统的信息
TAB按键:命令补全、文件补齐
tab按键,接在一串命令的第一个命令后面时,为“命令补全”
tab按键,接在一串命令的第二个命令后面时,为“文件补全”` : 命令替换 touch my
date +%Y%m%d`.log
①执行 date +%Y%m%d,将执行结果放入这个位置
②执行touch
③生成my20180613.log的文件