(每天都会更新记录自己的学习)
下面是我在学习Linux过程中的笔记,学习的资料是鸟哥的Linux私房菜第四版
笔记中只列出命令的使用方法,其他内容尽量不写出,因为写这个笔记的初衷是方便自己查找命令
关于某命令的-*参数,笔记中只记录书中划下划线和我在学习过程中反复使用到的参数,因此不是很详细,具体可以查看鸟哥的书或者上网查找
一些我认为用不到的命令我就不列出了
大家在学习的过程中可以多使用下面第一条中的帮助命令,自己查找命令的用法
这篇笔记写于2024.09
0.快捷键
(1)Tab:命令补全与文件补齐;按两次tab会显示所有以你已经输入的字符开头的命令或者是参数补齐
(2)Ctrl + c:立刻停止当前程序
(3)Ctrl + d:表示键盘输入结束,也可以取代exit。例如可以用这个快捷键离开命令行模式
(4)Shift + ↑/↓:命令行中翻页
1.帮助命令
(0)查找命令的一般步骤:
首先,如果知道某个命令,但忘记了相关选项和参数,用--help
其次,当有任何不知道的命令或文件格式,用man或info来查询
最后,如果想架设一些其他的服务,或利用一整组软件来完成某项功能时,先到/usr/share/doc下查查有没有改服务的说明文件
(1)*** --help:选项、参数说明
(2)man ***:操作说明;man -k man只要有man这个关键词就列出来
(3)info ***:和man功能类似
2.好用的小程序
(1)bc 计算器
语法就省略了,按quit退出;默认输出整数,如果要输出小数就要执行scale=number,其中number是想要的小数位数
3.有关日期、时间的命令
(1)cal 显示日历
语法:cal 月 年
例子:cal 10 2015 显示2015年10月的日历
(2)date 显示日期与时间的命令
语法:date + ...
例子:date +%Y/%m/%d,%H:%M 显示的时间:2024/09/08,16:59
4.文本编辑工具
(1)nano
语法:nano 文件名称
例子:nano text.txt
5.和关机有关的命令(这些命令都调用了systemctl命令)
(1)sync 数据同步写入磁盘,直接使用即可
(2)shutdown 关机命令
语法:shutdown -* 时间 警告信息
参数:
-k:不要真的关机,只是发出警告
-r:在将系统的服务停掉之后就重新启动
-h:将系统的服务停掉后,立刻关机
-c:取消在进行的shutdown命令
例子:
shutdown -h 20:25
shutdown -h +10
shutdown -h now
shutdown -h +30 '系统将要关机'
(3)reboot、halt、poweroff 重新启动,关机命令
6.init 切换运行级别
0:停机或者关机(切勿将initdefault设置为0)
1:单用户模式,只root用户进行维护
2:多用户模式,不能使用NFS(Net File System)
3:完全多用户模式(标准的运行级别)
4:安全模式
5:图形化(即图形界面)
6:重启(切勿将initdefault设置为6)
7.su 切换身份
语法: su 用户名
8.修改文件属性与权限
(1)chgrp 修改所属用户组
语法:chgrp -R 用户组 文件(R为递归修改)
例子:chgrp users text.txt
(2)chown 修改文件拥有者
语法:chown -R 账号名称(:用户组名称) 文件或目录
例子:chown root:root text.txt
(3)chmod 修改权限
权限说明:
r:4
w:2
x:1
语法:chmod -R xyz文件或目录(其中,xyz为权限数字,例如770表示rwxrwx---)
例子:chmod 777 .bashrc
另外一种语法:3种身份u g o和a全部身份
例子:
chmod u=rwx,go=rx .bashrc
chmod a+w .bashrc
9.处理目录的命令
(1)cd 切换目录
语法:cd + 路径
例子:
cd ~dmtsai 代表进入dmtsai这个使用者的家目录
cd 回到自己家目录
cd - 回到刚刚的目录
(2)pwd 显示目前所在的目录
语法:pwd -P (P为显示出真正的路径,不使用链接路径)
(3)mkdir 建立新目录
语法:mkdir -mp 目录名称(m为设置文件的权限,不使用默认权限;p为递归创建)
例子:mkdir -mp 711 test1/test2
如果没加上m,系统会使用默认属性
(4)rmdir 删除空目录(只能是空目录)
语法:rmdir -p 目录名称(p表示递归删除)
例子:rmdir -p test1/test2
10.ls 文件与目录的查看
语法:ls -adhl 文件名或目录名(a为显示隐藏文件,d为不列出目录内的文件数据,h为显示GB、KB,l为显示详细信息,可以直接用ll)
例子:ls -al ~将家目录下的所有文件列出
11.复制、删除与移动
(1)cp 复制
语法:cp -aipr 源文件 目标文件(a相当于-dr --preserve=all复制所有属性,i为覆盖文件时询问,p为连同文件的属性一起复制,r为递归复制)
例子:
cp ~/.bashrc /tmp/bashrc 将家目录下的.bashrc复制到/tmp下并改名为bashrc
cp -r /etc/ /tmp 复制/etc/这个目录下的所有内容到/tmp下面
cp -s bashrc bashrc_slink 软连接 快捷方式
cp -l bashrc bashrc_hlink 硬链接
cp -u ~/.bashrc /tmp/bashrc 目标文件与源文件有差异时才会复制,常用与备份
(2)rm 删除非空目录(权限较大,谨慎使用)
语法:rm -rfi 目录名称(r为递归删除,f为不询问;默认会询问是否删除,i为交换模式)
例子:
rm -rf test
rm -i bashrc* 用调配符*将所在目录下以bashrc开头的文件删除
(3)mv 移动文件与目录,或重命名
语法:mv -fiu 复制文件 目标文件(f不询问,i询问,u为不覆盖)
例子:
mv bashrc mvtest 将某个文件移动到某个目录
mv mvtest mvtest2 重命名
12.直接查看文件内容
(1)cat 直接查看文件内容
语法:cat -nA 文件名(n为打印出行号,连同空白行也有行号;A可以列出一些特殊字符而不是空白)
例子:
cat -n /etc/issue
cat -A /etc/man_db.conf 其中,tab会以^T表示,换行则是$
(2)tac 由最后一行到第一行反向在屏幕上显示
(3)nl 添加行号打印
语法:nl -bnw 文件(-b a类似于cat -n,-b t 不列出空行的行号;-n列出行号的表示方法,有ln、rn、和rz;-w行号栏位的占用字符数)
例子:nl -b a -n rz -w 3 /etc/issue
13.可翻页查看
(1)more 一页一页翻动
语法:more 文件
按键:
空格:向下翻一页
回车:向下翻一行
/字符串:在显示内容中,向下查找字符串这个关键词
:f:显示出文件名和面前显示的行数
q:代表立刻离开more,不再显示文件内容,对管道无效
b:往回翻页
(2)less 比more更加强大,man就是调用的less
按键:(more有的就省略了)
可以用pagedown和pageup翻页
?字符串:在显示内容中,向上查找字符串这个关键词
n:重复前一个查找
N:反向的重复前一个查找
g:前进到这个数据的第一行
G:前进到最后一行
14.数据截取
(1)head 取出前几行
语法:head -n number 文件(number为行号,默认是10行)
例子:head -n 20 /etc/man_db
(2)tail 出去后几行
同head
与head不同的是,tail可以-f持续监测文件内容
用head和tail截取11到20行:head -n 20/etc/man_db.conf | tail -n 10
15.od 非纯文本文件的显示
语法:od -t TYPE 文件(TYPE有:a默认字符;c用ASCII字符;d用十进制输出;f用浮点数输出;o用八进制输出;x用十六进制输出)
例子:
od -t c /usr/bin/password 用ASCII显示
echo password | od -t oCc 查询password这几个字的ASCII
16.touch 修改文件或创建新文件
语法:touch 文件
17.umask 文件默认权限
语法:
umask 显示数字类型的权限设置值 如0022:第一位的0是特殊权限,后面三位是ugo的权限,其中的数字是需要减掉的权限,如2就是要减掉w权限
umask -S 显示的是u=***,g=***,o=***
umask 数字 数字是3位表示权限的,可以修改默认权限
18.文件隐藏属性
(1)chattr 配置文件隐藏属性
语法:chattr +-=ai 文件或目录名称(a为文件只能增加,不能删改,root除外;i为文件完全不能动,root除外)
例子:chattr +i attrtest
(2)lsattr 显示文件隐藏属性
语法:lsattr 文件或目录
19.file 观察文件类型
20.which 脚本文件的查找
语法:which -a 命令(a将所有由PATH目录中可以找到的命令列出,而不止第一个被找到的命令)
例子:which ls
21.文件的查找
(1)whereis 由一些特定的目录中查找文件,针对/bin/sbin和/usr/share/man下的man page文件
语法:whereis 文件或目录名
例子:whereis passwd
(2)locate 用数据库查找,需要用updatedb更新数据库
(3)find 全盘查找(具体见鸟哥书的203页,太多了就不一一列出)
参数:(mtime修改时间,ctime状态时间,atime读取时间)
-mtime n:在n天之前的一天内被修改过的文件
-mtime +n:列出在n天之前(不含n天本身)被修改过内容的文件
-mtime -n:列出在n天之前(含n天本身)被修改过内容的文件
-newer file:file为一个存在的文件,列出比file新的文件
例子:
find / -mtime 0 将过去系统上面24小时内有修改的文件列出
find /etc -newer /etc/passwd 如果比/etc/passwd新就列出
22.磁盘与目录的容量
(1)df 列出文件系统的整体磁盘使用量
语法:df -hi 目录或文件名(h是以GB、MB这样的格式显示;i为不用磁盘容量,以inode的数量来显示)
例子:
df /home
df -ih
df -aT 将系统内的所有特殊文件格式及名称都列出来
(2)du 查看文件系统的磁盘使用量
语法:du -s 文件或目录名称(s仅列出总量,不列出每个各别的目录占用容量)
例子