一:shell及内外部命令
内核安装在硬件上,shell是核外应用,用户通过终端输入指令。
shell与内核的关系,shell用于解释用户的指令传给内核使用。(充当翻译官角色,将自然语言转换为机器语言)。
内部命令是指shell自带的命令,在系统中没有相应的二进制执行文件(但是话是这样说,还是能找到的。)。(如cd,pwd等无需安装就存在的命令。)
外部命令是指安装特定软件,在系统中生成二进制执行文件才能运行的命令(如mysql,未安装mysql无法使用,安装后更改系统路径让shell知道可执行文件在哪才能使用。)
官方一点讲内部命令和外部命令的区别
内部命令是shell程序的一部分,这些命令在系统启动时就被加载到内存中,并常驻内存。由于内部命令不需要创建子进程来执行,因此其执行速度比外部命令快。例如cd、echo、exit等都是内部命令。
内部命令的执行速度较快,因为shell在解析这些命令时不需要创建子进程。可用type命令来判断一个命令是否为内部命令。
例如:type cd
# 输出:cd is a shell builtin (cd是一个shell内置)
外部命令是linux系统中实用程序的一部分,这些命令通常位于/bin、/usr/bin、/sbin、/usr/sbin等目录中。外部命令在需要时才从硬盘中加载到内存中,并由shell程序控制其执行过程。
执行外部命令时,linux系统会创建一个子进程,这种操作称为衍生(fork)。由于需要创建子进程并设置其环境,执行外部命令的开销较大。例如:ls、vi等都是外部命令。可用type命令判断一个命令是否为外部命令
例如:type ls
# 输出:ls is /bin/ls (ls是/bin/ls)
二:linux常识
命令语法:命令字 [选项] [参数] (中括号内的表示可选项,可写可不写)
命令:执行操作的核心部分,每个命令在linux系统中都对应一个文件。
选项:用于对命令的行为进行调整或扩展。
参数:命令作用的对象,通常是一个文件、目录或字符串。
选项分为短选项(-)和长选项(--)
短选项一般用于单个或两个字母组成的参数。(也有例外,比如name就得用短选项。)
短选项可以合并。例如:ls -l -a 可写为 ls -la
长选项用于完整英文单词组成的参数。
长选项不能合并使用。
参数:ls /home /home就是ls /home的参数
相对路径:相对于当前工作目录的文件路径。
绝对路径:从根开始的完整文件路径。
例如:当前工作目录是在/root下,目标文件sooo.txt位于ooos/文件夹下。
那么相对路径就是/ooos/sooo.txt
绝对路径就是/root/ooos/sooo.txt
相对路径:当前在/root下,要去/usr/share。相对路径写法:cd ../usr/share
绝对路径:当前在/root下,要去/usr/share。绝对路径写法:cd /usr/share
如果命令忘了怎么用可用help 命令名 或 命令名 --help 来查看使用方法。还可进入/usr/share/man下进入zh_CN下查看帮助手册或者直接使用man 命令来查看。
touch创建文件时,如果文件不存在则创建,文件已存在会更新其时间戳。
使用ls -i 可查看文件的inode号。indoe号是文件在该分区的唯一标识符,不可重复。
ln的软连接和硬链接
软连接创建成功后会指向链接文件,如果链接文件被删除,软连接会失效。
例如:
-rw-r--r--. 1 0 0 0 3月 1日 10:26 111
lrwxrwxrwx. 1 0 0 3 3月 1日 10:27 222 -> 111(222是111的软连接)
软连接可跨区创建。查看软连接的inode号时会发现软连接是一个独立的文件,它的inode与链接文件不同,因此可以跨区创建。
例如:
4980745 -rw-r--r--. 1 root root 0 3月 1日 10:26 111
4980748 lrwxrwxrwx. 1 root root 3 3月 1日 10:27 222 -> 111
硬链接
硬链接不可跨区创建,它只是同一文件的不同名称(别名),使用与源文件相同的inode号。源文件被删除不会影响硬链接的使用
例如:
4980745 -rw-r--r--. 2 root root 0 3月 1日 10:26 111
4980748 lrwxrwxrwx. 1 root root 3 3月 1日 10:27 222 -> 111
4980745 -rw-r--r--. 2 root root 0 3月 1日 10:26 333(333是111的硬链接)
注意:创建软连接时一定要用指明源文件的路径,否则无效软连接。
vim的使用
vim的三种模式
:末行模式
aio后插入模式
默认是命令模式
a:在当前光标的后面进入输入模式。
i:在当前光标所在位置进入输入模式。
o:在当前光标的下面另起一行进入输入模式 。
A:在当前光标行的行尾进入输入模式。
I:在当前光标行的行首进入输入模式,如果行首有空格,则在空格后输入。
O:在当前光标行的上面一行进入输入模式。
数字+G:到指定行 66+G 到66行。
gg:删除当前行。
G:到最后一行
:30 到第30行。(:为末行模式)
:set nu 显示行号(:为末行模式)
dd:到文件第一行。
dG:从当前位置删除到末尾。
u:撤销上一步操作。
wq:保存退出。
q:退出。
q!:强制退出。
ZZ:保存当前文件并退出编辑器。
替换 %代表所有行 3,5 第三行到第五行
% s /aaa/bbb/g g:满足条件的都执行替换 全文所有行aaa换为bbb,每行中只要满足条件的都执行替换。
shell通过PATH内的值来搜索二进制文件位置。
用户家目录下有 ./bashrc 这里面是该用户的用户变量。 /etc/profile是全局变量。
linux根下各个目录的作用:
/bin:存放系统启动和运行所必须的基本命令和程序,管理员和普通用户都可以使用。
/boot:启动linux系统所需的文件,如内核文件(通常命名为vmlinuz)和启动菜单配置文件
/dev:所有的设备文件,如硬盘、usb。
/etc:系统的配置文件。
/home:用户的家目录。
/lib:系统启动或运行时所需的共享库和内核模块,32位。
/lib64:系统启动或运行时所需的共享库和内核模块,64位。
/media:可移除媒体设备,cd-rom,usb驱动器等通常被挂载到这里。
/mnt:临时挂载文件系统的目录。
/opt:第三方应用程序的安装位置。
/proc:虚拟文件系统,包含当前运行的进程和系统信息,如cpu、内存等。
/root:root的家目录。
/sbin:系统管理员使用的系统管理程序。
/tmp:存放临时文件。
/srv:服务启动后需要访问的数据目录。
/sys:虚拟文件系统,记录核心相关信息。
三、linux常用命令
pwd(print working directory,打印工作目录。):打印当前工作目录。
cd(change directory,更改目录。):切换目录。
ls(list files,列出文件。):列出文件。
-l:长格式输出
-h:人性化显示大小,以K,M,G为单位,提高消息的可读性。
-a:所有。
-rw-r--r--. 2 root root 0 3月 1日 10:26 111 第一个-代表文件属性,-代表是普通文件。
-:普通文件。
l:链接文件。
d:目录。
c:字符文件。
b:块设备文件。
du(disk usage,磁盘使用情况。):显示指定目录或文件所占用的磁盘空间。
-h:以K,M,G为单位,提高消息的可读性。
-a:显示目录中个别文件的大小。
-s:仅显示指定目录或文件的总大小,而不显示其子目录的大小。
mkdir(make directory):创建目录。
-p:递归创建。
cp(copy,复制。):复制文件或目录。
-f:强制复制,覆盖目标文件而不提示。
-r:递归复制目录及其内容(用于复制目录)。
-i:交互模式,覆盖前提示用户确认。(默认情况下,用户变量里规定cp是cp -i的别名,即使用cp就等于使用cp -i,此时使用cp -r是不生效的,可修改用户变量关闭这条规定使其生效。
rm(remove,删除。):删除文件或目录。
-r:将目录及以下之档案亦逐一删除。
-f:强制删除,不询问是否删除。
mv(move,移动。):为文件或目录改名,或将文件或目录移入其他位置。
which:查找文件
find:在指定目录下查找文件或目录。
-name:按文件名查找
-type:按文件类型查找,可以是f(普通文件)、d(目录)、l(符号链接)等。
df(disk free):显示目前在linux系统上的文件系统磁盘使用情况统计。
cat:(concatenate,连接):连接文件并打印到标准输出设备上,查看和连接文件,将所有内容打印出来。
less:与more类似,可随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。
more:类似cat,不过会以一页一页形式显示,按空格会到下一页,按b会往回一页显示,还有搜寻字符串的功能。
head:查看文件的开头部分的内容,常用参数-n来显示行数,默认为10。
-n:指定显示行数。
tail:查看文件内容,默认显示10行。
-f:不断刷新查看的文件内容(动态查看)
wc:计算字节数,字数,行数。
-l:只显示行数
-w:只显示字数
-c:只显示字节数
grep(global regular expression,全局正则表达式。):查找文件里符合条件的字符串或正则表达式。
grep、awk、sed是文本处理三蛇,搭配正则表达式非常强大。
-v:反向查找,只打印不匹配的行。
gzip:压缩文件,文件后缀为.gz。
-d:解压缩.gz文件(等同于gunzip)
-1 到 -9:指定压缩比,-1是最快的压缩,压缩率最低;-9是最慢的压缩,压缩率最高,默认是-6.
bzip2:压缩文件,文件后缀为.bz2。
-d:解压缩.bz2文件(等同于bunzip2)
-1 到 -9:指定压缩比,-1是最快的压缩,压缩率最低;-9是最慢的压缩,压缩率最高,默认是-9.
tar(tape archive,磁带归档。):归档文件和目录,多用于备份文件。
-c:创建一个新的归档文件。
-x:解压归档文件。
-z:使用gzip压缩归档文件。
-j:使用bzip2压缩归档文件。
-v(verbose,详细):显示详细操作过程。
-f:指定归档文件的名称(必须放在选项列表的最后)。
#################################终于打完了!!!##############################