- 日期类命令
- 重要的热键
- 求助命令
- 其他命令
- 正确的关机方法
- Linux文件属性
- 修改文件属性和权限
- 目录和文件的权限意义
- 文件和目录管理
- 执行文件的路径遍历
- 复制、删除与移动
- 查看文件内容
- 修改文件时间或创建新文件
- 文件与目录的默认权限与隐藏属性
- 文件的查找
- 参考
date date +%Y/%m/%d date +%H:%M cal cal 2015 cal 10 2015
- date 结果为Sun Jan 2 13:01:52 CST 2022
- date +%Y/%m/%d 结果为2022/01/02
- date +%H:%M #结果为13:02
- cal 结果为打印今年的现在的一个月的日历
- cal 2015 结果为打印2015年12个月的日历
- cal 10 2015 结果为打印2015年10月的日历
ca vi ca date -- find /
- ca 按两下tab键会自动显示有该前缀的命令列表
- vi ca 按一下tab键会自动补全文件名,当然必须在该目录下有该前缀开头的文件
- date – 按一下tab键会自动显示有该前缀的参数
- find / 命令可能运行很久,可以按Ctrl+c按键提前终止该命令的运行
- Ctrl+d按键表示键盘输入结束,可以用来取代exit的输入
- shift+Page Up 或 shift+Page Down 按键表示翻页命令行界面
date --help man date info date
- –help 命令参数可以显示该命令的执行语法,以及其他命令参数
- man date 会把date的命令执行语法和命令参数显示在只读文本查看器里面,并且非常详细,比–help要详细
- info date 也可以获取命令的信息,也会提供一个只读文本查看器
| man只读文本查看器快捷键 | 作用 |
|---|---|
| 空格 | 向下翻一页 |
| Page Down | 向下翻一页 |
| Page Up | 向上翻一页 |
| Home | 去到第一页 |
| End | 渠道最后一页 |
| / 字符串 | 向下查找这个字符串,并高亮显示 |
| ?字符串 | 向上查找这个字符串,并高亮显示 |
| l利用/或?来进行查找时,按下n键表示继续下一个查找,N键反向查找 | |
| q | 结束此次man page,也就是退出只读文本查看器 |
| info只读文本查看器快捷键 | 作用 |
|---|---|
| 空格 | 向下翻一页 |
| Page Down | 向下翻一页 |
| Page Up | 向上翻一页 |
| Tab | 在节点之间移动,有节点的地方,通常以*显式 |
| Enter | 光标在该节点上面时,按下Enter可以进入该节点 |
| b | 移动光标到该info 界面的最开始 |
| e | 移动光标到该info 界面的最后 |
| n | 前往下一个节点处 |
| p | 前往上一个节点处 |
| u | 向上移动一层,也就是退出Enter键进入的节点 |
| s | 在info page当中使用正则表达式查找 |
| h或? | 两个键都可以显式帮助选择 |
| q | 结束此次info page,也就是退出只读文本查看器 |
exit bc nano text.txt
- exit 可以退出终端terminal,如果在root用户状态,可以退出root用户
- bc 进入一个命令行计算器,输入1+2+3+4回车可以看到就算结果
- nano text.txt 是一个文本编辑器,存在文件则编辑,不存在则创建,进入后显式的^其实都是要按Ctrl键位的意思,如 ^G就是按Ctrl + G后显式帮助
| nano文本编辑器按键 | 作用 |
|---|---|
| Ctrl + G | 获取联机帮助 |
| Ctrl + X | 离开nano,若有修改过文件会提示是否需要报错 |
| Ctrl + O | 保存文件,需要有权限 |
| Ctrl + R | 从其他文件读入数据,放入该文件中 |
| Ctrl + W | 查找字符串 |
| Ctrl + C | 显式光标所在行和列数信息 |
| Ctrl + _ | 可以直接输入行号,让光标快速移动到该行,注意这里是要按shifit的减号,不然会缩小终端界面,也可以Ctrl加+号重新放大回来 |
| Alt + Y | 语法校验功能的开启或关闭 |
| Alt + M | 开启鼠标移动光标的功能 |
sync shutdown reboot halt poweroff
- sync 关机之前必须调用的方法,将数据同步写入磁盘,shutdown、reboot、halt都在关机直接会默认调用sync
- shutdown 命令进行关机
- reboot 命令进行重启
- halt 命令让系统停止运行,但屏幕仍然保留了系统停止的信息
- poweroff 命令让系统停止运行,并且屏幕也关闭,像断电了一样
shutdown shutdown -c shutdown -h now shutdown -h 20:25 shutdown -h +10 shutdown -r +now shutdown -r +30 "The system will reboot" shutdown -k now "This system will reboot"
- shutdown 默认一分钟之后关机
- shutdown -c 可以在关机之前取消关机命令
- shutdown -h now 立即关机
- shutdown -h 20:25 在今天20:25关机,若在今天20:25之后执行,则明天20:25才关机
- shutdown -h +10 系统十分钟后关机
- shutdown -r +now 系统立即重启
- shutdown -r +30 “The system will reboot” 系统三十分钟后重启,并将The system will reboot发送给在线的其他用户
- shutdown -k now “This system will reboot” 并不会真正关机,只是发出警告邮件
systemctl reboot
上面的shutdown、halt、reboot、poweroff实际上都是调用systemctl命令
Linux文件属性ll dr-xr-xr-x. 5 root root 4096 Dec 23 22:31 boot lrwxrwxrwx. 1 root root 7 Jul 21 19:49 lib -> usr/lib -rw-r--r--. 1 root root 19348 Dec 23 22:26 hs_err_pid19240.log 类型和权限 链接数 拥有者 文件所属用户组 文件容量 修改日期 文件名
- 输入ll命令后出现后面的结果,截取了一些片段
- dr-xr-xr-x表明的是文件类型和权限,第一个字符如果是,d是目录,-是文件,l是链接文件,b是可供储存的周边设备如硬盘,c是串行端口设备如键盘
- r-xr-xr-x是三个一组,完整的rwxrwxrwx,第一组的rwx表示的是文件拥有者的权限,r是可读,w是可写,x是可执行,第二组rwx表示在用户组内的用户对该文件的权限,第三组表示非文件拥有者并且没用加入拥有该文件用户组的其他账号的权限,如r-xr-xr-x就是不管是文件拥有者还是同组用户还是其他用户,都只有读取和执行权限没用写入权限,但是root用户除外,root用户rwx权限都有
chgrp users test.txt chown user test.txt chown root:user test.txt cp test.txt t.txt chmod 777 t.txt chmod u=rwx,go=rx t.txt chmod a+x t.txt chmod a-x t.txt
- chgrp users test.txt 修改文件 test.txt 的用户组为users,前提必须存在users用户组
- chown user test.txt 修改文件 test.txt 的拥有者为user,前提必须存在user用户
- chown root:user test.txt 修改文件test.txt 的拥有者为root,文件所属用户组为user
- cp test.txt t.txt 复制了test.txt 并将新复制的文件改名为t.txt,同时会复制文件的属性,也就是文件的权限,文件的拥有者和所属用户组都没变
- chmod 777 t.txt 修改文件t.txt的权限,将其权限变为rwxrwxrwx,第一个7表示第一个rwx,r是4,w是2,x是1,这样用三个数字就可以表示对拥有者权限,对用户组权限,对其他用户的权限修改
- chmod u=rwx,go=rx t.txt 是修改拥有者user权限为rwx,修改用户组group权限为rx,修改其他用户other的权限为rx
- chmod a+x t.txt 让t.txt的三组权限全部具有x(可执行权限)
- chmod a-x t.txt 让t.txt的三组权限全部去掉x
- 从上面可以看到+、-、=都可以用于权限赋值,并且上面讲的全是文件的权限,文件的权限和文件夹的权限意义有很大不懂,但修改方式和上面一样
文件权限意义:
- r(Read): 可以读取文件的实际内容
- w(write):可以编辑、新增或者修改文件内容(但不包含删除文件)
- x(execute):该文件具有被系统执行的权限
目录权限意义:
- r(Read): 可以读取目录结构和目录下的文件名和文件信息
- w(write):可以建立新的文件和目录,可以删除已经存在的文件和目录,可以将已经存在的文件或目录进行更名,可以移动该目录内的文件、目录位置
- x(execute):可以cd进入该目录
cd .. pwd mkdir directory rmdir directory
- cd … 回到上层目录,cd是切换目录
- pwd 显示当前目录的绝对路径,如/opt,以/开头的就是绝对路径,以./开头的就是相对路径,.(点)表示当前目录
- mkdir directory 创建一个名为directory的目录
- rmdir directory 删除一个名为directory的目录
echo $PATH /usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:
echo $PATH打印处环境变量,环境变量最前面的/usr/local/bin表示,执行的命令最开始都会去这个目录下后,找不到才去后面执行,用冒号:分割多个路径
复制、删除与移动cp text.txt /tmp/text.txt cp -r /etc/ /tmp cp -r /etc /tmp cp -a /etc /tmp
- cp text.txt /tmp/text.txt 将文件text.txt复制到/tmp目录下命名为text.txt文件
- cp -r /etc/ /tmp 将etc目录复制到tmp目录下,默认不支持复制目录,必须加上-r参数,并且复制目录的时候要/etc/ 使用两个斜杠包裹,如果使用/etc,则是将etc目录下所有文件复制到/tmp目录下
- cp -r /etc /tmp 将etc目录下所有文件复制到/tmp目录下
- cp -a /etc /tmp 效果和cp -r /etc /tmp 一样,都是将etc目录下所有文件复制到/tmp目录下
rm -i text.txt rm -r directory rm -rf directory
- rm -i text.txt 删除text.txt文件,-i表示主动询问是否确认删除,防止误删
- rm -r directory 递归删除目录directory,但是每个文件夹或目录都会询问,子目录和子目录的目录都会询问
- rm -rf directory 递归删除目录directory,并且无须询问,适合删库跑路
mv text.txt t.txt mv text.txt /tmp/t.txt
- mv text.txt t.txt 只修改文件text.txt文件名为t.txt
- mv text.txt /tmp/t.txt 移动文件text.txt到tmp目录下并且修改文件名为t.txt
touch text.txt basename /etc/sysconfig/network dirname /etc/sysconfig/network
- touch text.txt 创建文件text.txt
- basename /etc/sysconfig/network 获取文件的文件名即network
- dirname /etc/sysconfig/network 获取文件所处的目录的路径即/etc/sysconfig
cat text.txt tac text.txt nl text.txt more text.txt less text.txt head text.txt tail text.txt od text.txt
- cat text.txt 打印文件内容在命令行上,从第一行开始打印
- tac text.txt 打印文件内容在命令行上,从最后一行开始打印
- nl text.txt 打印文件内容在命令行上,从第一行开始打印,并显示行号
- more text.txt 一页一页显示文件内容,从第一行所处的页开始,空格用于往下翻页,无法使用PgUp,PgDn上下翻页,基本上只能使用空格,q离开查看
- less text.txt 一页一页显示文件内容,可以上下翻页,可以使用PgUp,PgDn上下翻页,空格向下翻页,上下键位可以一行一行翻页,q离开查看
- head text.txt 只看前面几行
- tail text.txt 只看后面几行
- od text.txt 以二进制的方式读取文件内容,实际显示的是8进制
touch text.txt touch -d "2 days ago" text.txt
- touch text.txt 创建文件text.txt
- touch -d “2 days ago” text.txt 改变文件的修改时间为两天以前
umask umask -S umask 002
- umask 以数字形式显示默认权限,默认是0022,后三个数字表示拿掉的权限,文件拥有者被拿掉的权限是0,而用户组和其他用户权限被拿掉了2,这里是表示被拿掉的权限,为什么直接表示权限呢,因为目录和文件的默认权限是不一样的,文件的默认权限是-rw-rw-rw-,第一个-表示文件,剩下9个三个一组,然后再看拿掉的权限,拿掉2表示去掉w,因为r=4,w=2,x=1,则此时权限是-rw-r–r--,目录的默认权限是drwxrwxrwx,第一个d表示目录,再考虑拿掉的权限,则最后权限是drwxr-xr-x
- umask -S 以rwx和u g o 的字符显示默认权限
- umask 002 修改umask的值为002,只修改后面三位数字,第一位不改
chattr +i text.txt rm text.txt chattr -i text.txt lsattr text.txt
- chattr +i text.txt 给文件text.txt添加一个隐藏属性 i
- 尝试删除rm text.txt,无法成功,因为其有隐藏属性
- chattr -i text.txt 取消文件text.txt隐藏属性 i,然后调用rm就可以删除了
- lsattr text.txt 显示文件text.txt 的隐藏属性
- i 属性是让文件无法被修改
file text.txt
file text.txt 观察文件 text.txt 的类型
文件的查找which ifconfig whereis ifconfig locate -l 5 passwd find /var -mtime +4 find /var -mtime -4 find /var -mtime 4 find /home -user root find / -nouser find / -name passwd find / -name ”*passwd*“
- which 是用于专门查找脚本文件,从$PATH环境变量里面的顺序开始查找,不是用于查找普通文件的
- whereis ifconfig 可以查找文件或目录,而且只在特定目录下查找,只查找/bin/sbin和/usr/share/man文件,find全系统找
- locate -l 5 passwd 查找文件,由于locate是自己建立了一个名字数据库,所以比较快,不用全系统找
- find /var -mtime +4 查找var文件夹下更新时间大于等于5天前的文件
- find /var -mtime -4 查找var文件夹下更新时间小于等于4天前的文件
- find /var -mtime 4 查找var文件夹下更新时间在4-5天前之间的文件
- find /home -user root 查找home文件夹下用户为root的文件和目录
- find / -nouser 查找/根目录下不属于任何用户的文件
- find / -name passwd 查找/根目录下名字为passwd的文件
- find / -name ”passwd“ 查找/根目录下名字包含passwd的文件
《 鸟哥的 Linux 私房菜 》



