教你玩转Linux(linux指令总写)
本篇文章,在疫情期间经过再三总结,终于有一天不想只是躺在床上了,就坐在床上整理了一下。
大部门指令是有的,可以收藏了,以后需要用时,直接打开Ctrl+F,就行了,不用去百度里面筛选了。
好的,打住。
记录一下:
2020年2月25日15点31分!
——————————————————————————————————————————————————————
一、初识 Linux 命令行
1.命令提示符各字段的含义
[root@localhost ~ ]#
root 表示当前登录的用户名
localhost 表示主机名称
~ 表示当前目录,家目录用波浪号~表示
#表示当前用户的权限级别,管理员用户的级别用#号表示,普通用户的级别用$号表示
2.什么是家目录,和 windows 系统里的 C:\Users\用户名 这个目录是一样的意思,登录到系
统后默认所处的目录就是用户的家目录
3.在命令行里输入 pwd 命令,回车,可以查看当前目录的完整路径
如上图,可见 root 用户的家目录就是/root
普通用户的家目录为 /home/用户名
4.输入命令 who 可以查看当前登录到系统的所有用户,
输入 whoami 可以知道自己是哪个用户(以后说输入某条命令,默认是要按下回车键的)
root tty1 2019-12-10 06:03
用户名 终端 登录时间
5.Linux 下输入命令前几个字母后,如果没有二义性,可以按下 Tab 键自动补全命令,如果
有二义性,按下 Tab 键后会显示出所有匹配的命令
6.可以按键盘上的箭头键的上下键↑ ↓,查看刚刚输入过的命令,当我们需要重复执行某个命
令时,可以按上箭头找到那条命令,再回车就可以了,不必每次都输入一长串命令。
7.在输入命令时如果命令很长,突然决定不执行此命令时,没有必要一个字母一个字母地删
除,可以按下 Ctrl 和 U 键,删除一整行。这叫快捷键,常用的 Linux 命令行快捷键如下表:
8.命令行里的命令本质是什么,或者说 什么是命令?
Linux 下的命令分 2 种,一种是内部命令,一种是外部命令
*外部命令其实就是程序名称,命令的第一个单词是系统里自带有的程序或新安装的程序,
之后的单词是传给这个程序的参数。这些程序可以是二进制程序,也可以是文本程序
(shell 脚本等)
*内部命令就是命令行提供者(shell)自带的,是 shell 这个程序提供给用户的一些功能。
命令行里输入 type 加上目标命令,就可以查看目标命令的类型
比如查看 pwd 这个命令是何种类型的,可以输入命令:type pwd
可见 pwd 是 shell 内嵌的,自带的内部命令。
而 who 命令是外部命令,是一个程序,该程序路径为/bin/who
*Linux 下的命令是区分大小写的
二、Console 字体及屏幕分辨率设置
无论是在虚拟机的 console 控制台还是真实的设备显示器里,命令行的字体太小了,有时还
可能没有完整地使用整个屏幕,即显示的字符没有充满整个屏幕。
1.输入命令 ls /lib/kbd/consolefonts/
可以查看系统自带的所有字体
2.推荐使用 3 种不同大小的字体
lat2-16
sun12x22
latarcyrheb-sun32
3.使用命令 setfont 字体名
可以设置 console 字体,以上三种字体都试一下,选一个适合
自己屏幕分辨率的就行
4.输入 setfont
可以恢复默认的字体
5.重启系统后,字体大小又恢复默认的了,需要在开机时就自动设置字体
这里涉及到 vi 的使用--不会的
使用 vi 编辑/etc/rc.d/rc.local 文件
在文件末尾添加一行:
setfont sun12x22
保存
6.然后给该文件添加可执行权限
命令 chmod +x /etc/rc.d/rc.local
这样字体的设置就永久生效了。
7.设置屏幕分辨率
编辑/boot/grub2/grub.cfg 文件,找到/linux16 /boot/vmlinuz-3.10.0.xxxx...这一行
在该行的末尾添加 vga=0x342
(0x342 表示分辨率为 1152x864)
保存,重启系统即可
其他分辨率设置:
vga=0x367 → 1920x1080
vga=0x342 → 1152x864
vga=0x341 → 1024x768
vga=0x340 → 800x600 (默认的大小)
重启系统后字体变成我们设置的大小了,console 分辨率也变高了。
三、Vi 文本编辑工具
vi 是 Linux 命令行下的一个文本编辑工具
在命令里下输入 vi 回车,进入 vi 工作界面
*命令行下没法用鼠标,所以一切对文本的编辑都是要依靠某些辅助的命令,上图中也有提
示,比如按下 :q (冒号加字母 q,回车)可以退出 vi
我们先退出 vi(按一下 Esc 键,再输入英文的冒号加小写字母 q,回车)
*Vi 的用法有 2 种:
一种是直接输入 vi 回车,然后进行文本的编辑,再保存到文件中。
另一种用法是 vi 接目标文件名,再编辑。目标文件名可以是已经存在的文件,也可以是新
创建的。
*最常用的用法是输入 vi 接目标文件名
比如我们想新建一个文本文件 test.txt,可以输入 vi test.txt
然后就是上图的界面,刚进入 vi 时,所处的模式为普通模式,普通模式下不能输入文本字
符,但可以进行其他的操作,比如移动光标,删除文本,插入文本,复制文本,查看目标字
符串等。
*接下来我们想输入文本字符,可以在普通模式下按入字母 i(小写的 i),不用回车,按下
字母 i 就可以输入文本了,能输入文本的模式称为 插入模式。如何退回普通模式呢,可以
按下 Esc 键。
①从普通模式进入插入模式,除了可以按下小写的 i,也可以按下其他的字母,不同的字母
含义是不同的:
插入模式下可以正常地输入任何字符(除了 Esc 键)
按下 Esc 键退回 普通模式
②普通模式下的光标定位
③普通模式下删除文本
④普通模式下复制文本
⑤普通模式下撤销操作
上面 5 种操作都是只输入字符而不用回车,以下的操作要按下回车才执行
⑥普通模式进入命令模式,以/ : ? 开头就进入命令模式了
四、系统关机重启操作
系统启动前会出现如下界面让我们选择:(默认会选择第 1 个)
有 2 行可以选择,这 2 行表示 2 个启动项,第一行表示进入正常的系统,第 2 行表示进入救
援维护模式,当系统出现故障时,可以进入救援模式进行排错。
五、文件目录操作
# pwd //查看当前所处的目录
特殊目录表示:
~
用户的家目录
.
当前目录,也可用 ./ 表示
..
上一层目录(父目录),也可用 ../ 表示
① ls 命令,用于列出文件及文件夹(目录),默认是列出当前目录下的文件(夹),不显
示隐藏文件。(这里的 l 是字母 L 的小写格式)
ls -选项 目标目录
//ls 的使用格式,目标目录缺省为当前目录
ls -a
//-a 表示列出所有文件,包括隐藏的
ls -l
//-l 表示以列表形式显示文件详细信息
ls -d /目录
//仅列出目录本身,查看目录本身的属性
ls -h
//以方便阅读的单位显示文件的大小
ll
//ll 为 ls -l 的别名
在 console 下列出文件时,不同的颜色表示不同的文件类型:
浅白:一般的文本字符文件
红色:压缩文件
绿色:可执行文件(程序或脚本)
浅蓝:链接文件
蓝色:目录文件
黄色:设备文件
②文件属性(用 ll 命令查看)
以 fstab2 这个文件为例:
文件类型:
-
表示普通文件
d
表示目录
/
表示链接文件
b
表示块设备(磁盘等)
c
表示字符设备(键盘等)
文件的权限后面有讲。
③目录操作
~表示当前所处目录(家目录)
etc 表示当前所处目录(/etc)
*Linux 的文件系统只有一个根目录,即/(斜杠),相当于 windows 里的 C 盘 D 盘等根目录
(windows 是可以有多个盘符的,每个盘符加上:\就是根目录,比如 C:\ D:\)
Linux 的根目录并不代表只有一块磁盘一个分区,/根目录只代表操作系统能够访问到的资
源,根是系统级别的文件系统,一个磁盘分区可以挂载到/目录上,也可以挂载到/目录下的
任何一个子目录。
*我们在安装系统时就创建了 2 个分区,一个(分区 1)挂载到了/boot 目录,另一个分区(分
区 2)挂载到了/目录下,在不添加其他磁盘分区的情况下,我们对根目录/包括其子目录(除
了 boot)做的操作都是在分区 2 上进行的,对根目录下的 boot 目录的操作都是在分区 1 上
进行的。可以用命令 lsblk 查看分区对应的目录(sda 表示磁盘,sda1 为磁盘上的分区 1)
#pwd
//查看当前所处的目录
#cd /etc
//切换到/etc 目录,cd 表示切换目录(change directory)
#cd ..
//切换到上一层目录
#cd -
//切换到上一次所处的目录
#cd ../a
//切换到上一层目录下的 a 目录里
#cd ~
//切换到当前用户的家目录
#mkdir xxx
//在当前目录下创建一个名为 xxx 的目录
#mkdir -p /root/dir1/dir2
//递归创建目录及其子目录,当 dir1 不存在时就创建它
#rmdir xxx
//删除一个空目录
#rmdir dir1/dir2
//删除 dir1 下的 dir2
#rmdir -p dir1/dir2
//递归删除,先删除 dir2,然后如果 dir1 下没有文件和其他
//目录了,就把 dir1 也删除了
#rm -r xxx
//删除非空目录,目录里的文件也会被删除,删除前会有提示,
//输入 y 表示确定删除,n 表示不删除27
#rm -rf xxx
//强制删除 xxx 目录及其包含的所有文件,不提示
#du -sh /root
//显示/root 目录使用的容量(占用的大小),默认以 KB 为单位
//使用 h 参数后表示以方便阅读的单位显示
④文件操作
#touch 文件名
//如果文件已存在,则更新该文件的最后修改时间,
//文件不存在则创建一个新的文件
#cat 文件名
//查看文件的内容
#cat 文件名 | more
//当文件内容太多时,一屏显示不下,可以用 more 进行分页
//查看(没有进度提示)分页查看时,按下空格键可以向后翻一页,按下 P 键退出查看。
#more 文件名
//分页查看文件内容(有进度提示)
#cat 文件名 | grep 'str'
//只查看含有 str 字符串的行
#cat 文件名 | grep -v '#'
//不看含有#字符的行
#grep 'xx' 文件名
//在文件中查找含有 xx 字符的行
#grep -v -'xx' 文件名
//在文件中查找不含有 xx 字符的行
#rm 文件名
//删除文件,有提示
#cp 源文件 目的文件
//复制文件
#cp -r 源目录 目的目录
//递归复制目录及其所有子文件(子目录)
#mv 源文件 目的文件
//移动文件,也可在当前目录下移动,起到重命名的作用
#cat 文件名 | wc -l
//查看文件有多少行
#head -n 5 文件名
//只查看文件的前 5 行
#tail -n 5 文件名
//只查看文件的最后 5 行
⑤查找文件 find
根据文件名查找
#find 文件名
//在当前目录下查找文件
#find 目录名 -name xxx
//在指定目录下查找所有名为 xxx 的文件(区分大小写)
#find 目录名 -iname xxx
//在指定目录下查找所有名为 xxx 的文件(不区分大小写)
#find 目录名 -iname *xxx* //在指定目录下查找所有名为 xxx 的文件,*为模糊匹配
#find 目录名 -user coflee
//在指定目录下查找所有属于 coflee 用户的文件
根据时间查找(+5 表示在指定时间之前,-5 表示在指定时间之内)
#find 目录名 -mtime -3
//在指定目录下查找 3 天之内被修改过的文件
#find 目录名 -ctime +2
//在指定目录下查找 2 天之前创建的文件(包括复制的)
#find 目录名 -mmin -5
//在指定目录下查找 5 分钟之内被修改过的文件
#find 目录名 -mmin +5
//在指定目录下查找 5 分钟之前被修改过的文件
根据文件类型:
-type f
//表示普通文件
-type b
//表示块设备文件
-type c
//表示字符设备文件
-type l
//表示链接文件
-type d
//表示目录
根据文件大小:
-size -50M
//表示 50MB 以内的
-size +20M
//表示大于 20MB 的
-size +10M -size -15M
//可叠加使用表示范围,10~15MB 之内的
以上查找文件的各参数都可以组合使用。
比如:find /dev -mmin -15 -size +1M -type f
//表示在/dev 目录下查找 15 分钟之内被修改过的大于 1MB 的普通文件
休息休息~16点17分
六、Linux 文件权限