Linux命令
Linux优点:
1.一切都是一个文件。| (包括硬件,文本,二进制,源代码)
2.系统中拥有小型,单- -用途的程序。(- 个程序只负责做好自己的本职工作)
3.当遇到复杂任务,通过不同功能用途的程序组合起来完成。
4.避免令人困惑的用户界面就是没有复杂的图形界面。
5.连配置文件都存储在文本中,方便增删改查。
6.不在乎后缀名,有没有都无所谓,不是通过后缀名来定义文件的类型。
Shell:
Linux系统中运行的一种特殊程序
在用户和内核之间充当“翻译官”
用户登录Linux系统时,自动加载一个Shell程序
Bash是Linux系统中默认使用的Shell程序
内部命令与外部命令的区别
内部命令实际上是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。内部命令是写在bashy源码里面的,其执行速度比外部命令快,因为解析内部命令shell不需要创建子进程。比如:exit,history,cd,echo等。
外部命令是linux系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。shell程序管理外部命令执行的路径查找、加载存放,并控制命令的执行。外部命令是在bash之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin......等等。可通过“echo $PATH”命令查看外部命令的存储路径,比如:ls、vi等。
内部命令和外部命令最大的区别之处就是性能。内部命令由于构建在shell中而不必创建多余的进程,要比外部命令执行快得多。因此和执行更大的脚本道理一样,执行包含很多外部命令的脚本会损害脚本的性能。

命令行格式
命令字 空格 [选项] 空格 [参数]
解释命令字选项参数各自的意思及具体使用方法
1.命令字
是整条命令中最关键的一部分
唯一确定
2.选项
短格式选项:使用“-”符号引导通常 一个字母
长格式选项:使用--”符号引导通常完整的单词
3.参数
命令字的处理对象
可以是文件名、目录(路径)名或用户名等内容
个数可以是零到多个
显示目录文件命令:ls
命令所在路径:/bin/ls
功能描述:显示目录文件
(1)语法: Is [选项] [目录或文件]。
(2)功能:查看文件和目录。
(3) 主要选项含义如下。
-a显示指定目录下所有子目录与文件,包括隐藏文件。
-h 人性化显示(hommization)
-t 用文件和目录的更改时间排序;可以用第一个显示的文件判断最近修改的文件
-s以文件容量大小排序
-R递归显示该目录及该目录的子目录下的所有内容
-b: 对文件名中的不可显示字符用八进制显示。
-c:按文件的修改时间排序。
-C:分成多列显示各项。
-d: 如果参数是目录,只显示其名称而不显示其下的各文件。
-f:不排序。该选项将使-1、-t和-s选项失效,并使-a和-U选项有效。
-F:在目录名后面标记“/”,可执行文件后面标记“*”,符号链接后面标记“@”,管道(或FIFO)后面标记“|”,socket文件后面标记“=”。
-i:在输出的第一列显示文件的i节点号。
-l: 以长格式来显示文件的详细信息。
例:用长格式查看/home/zhs目录的内容。
# ls -l /home/ zhs
切换目录命令:cd
(1)语法: cd [directory]。
(2)功能:将当前目录改变至diretory所指定的目录。
例子:切换到指定目录:cd /tmp/vae
回到上一级目录:cd ..
还是在当前目录:cd .
返回上两级目录:cd ../..
返回进入此目录之前所在的目录:cd -
切换文件目录:cd空格
切换到用户的工作目录:cd ~
获取命令帮助的方式:
1.help
2.man
3.info
常用快捷键:
- ctrl+左右键:在单词之间跳转
- ctrl+a:跳到本行的行首
- ctrl+e:跳到页尾
- Ctrl+u:删除当前光标前面的文字 (还有剪切功能)
- ctrl+k:删除当前光标后面的文字(还有剪切功能)
- Ctrl+L:进行清屏操作
- Ctrl+y:粘贴Ctrl+u或ctrl+k剪切的内容
- Ctrl+w:删除光标前面的单词的字符
- Alt – d :由光标位置开始,往右删除单词。往行尾删
- Ctrl +a :移到行首
- Ctrl +e :移到行尾
- Ctrl +c :终止命令
- Ctrl +z :挂起命令
- 反斜杠“\”:强行换行或转义
绝对路径和相对路径
绝对路径指的是从根目录(/)开始写起的文件或目录名称,而相对路径则指的是相对于当前路径的写法。
绝对路径必须以一个正斜线(/),也就是根目录开始,到查找对象(目录或文件)所必须经过的每个目录的名字,它是文件位置的完整路标,因此,在任何情况下都可以使用绝对路径找到所需的文件。
相对路径,就不是以正斜线开始,它是从当前所在目录开始,到查找对象(目录或文件)所必须经过的每一个目录的名字。
pwd命令
(1)语法: pwd。
(2)功能:显示当前工作目目录的绝对路径。
优先级排序:绝对路径>别名>内部>hash>外部
别名:
alias:内置命令(没有路径),设置命令的别名,保护系统,方便
unalias:别名取消
颜色表示的文件类型:
命令: [root@localhost ~]# vim /etc/DIR COLORS
●黑色数据文件普通文件
●绿色可执行文件
●黄色块设备文件硬件设备(硬盘)
●红色压缩包
●蓝色文件夹
●天蓝色连接文件(快捷方式)
通配符
符号 效果
? 匹配-一个字符f?.txt
★ 匹配所有非隐藏的字符无论多长多短,但不匹配"."开头的文件,即隐藏文件
{1..10} 1到10
{a..z} ab...z
{A..Z} A.B.C....Z
[123] 取其中之-有就显示没有也无所谓
[a-z] 范围需要注意
[0-9] 匹配数字范围(0123456789)
\ 转义符,表示原来的意思
[[:lower:]] 小写字母表示a-z
[:upper:]] 大写字母表示A-Z
[^zhou] 匹配列表中的所有字符以外的字符
[:digit:] 任意数字,相当于0-9
access time atime 最近打开文件的时间如果你不打开文件是不会刷新的
change time ctime 属性权限改变()
modify time mtime 内容改变属性(大小)
别名
临时修改
-
-
unalias 别名命令 删除别名
-
\加别名命令 (显示原始命令)
例子: alias that = 'which -a cp'
unalias that
\that
du命令
选项 说明
-a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小
--max-depth=n(-d n) 最大显示到第n层
mkdir命令
通过 mkdir 命令可以实现在指定位置创建以 DirName(指定的文件名)命名的文件夹或目录。要创建文件夹或目录的用户必须对所创建的文件夹的父文件夹具有写权限。并且,所创建的文件夹(目录)不能与其父目录(即父文件夹)中的文件名重名,即同一个目录下不能有同名的(区分大小写)。
-m, --mode=模式,设定权限<模式> (类似 chmod);
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
mkdir dir1 创建一个叫做 'dir1' 的目录'
mkdir dir1 dir2 同时创建两个目录
mkdir -p /tmp/dir1/dir2 创建一个目录树
(1)语法: mkdir [选项] dir- name。
(2)功能:用来创建一个以dir- name为名称的目录。要求创建目录的用户在当前目录中(dir name的父目录中)具有写权限,并且dir- name不能是当前目录中已有的目录或文件名。
(3)主要选项含义如下。
-m:对新建目录设置存取权限。如果在创建目录时不设置权限,以后可以用chmod命令来设置文件或目录的权限。
-P:可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。
例:在当前目录 下创建一个新的目录abcd。
# mkdir abcd
mkdir [选项] 目录...
删除命令
rm [选项] 文件…
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
rm -f file1 删除一个叫做 'file1' 的文件'
rmdir dir1 删除一个叫做 'dir1' 的目录'
rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
rm -rf dir1 dir2 同时删除两个目录及它们的内容
例:删除当前目录下的abcd子目录。
# rm -i abcd
移动或者改名
mv [选项] ..源文件或目录...目标文件或目录单个文件
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖;
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项) ;
-n:如果目标文件已经存在,则不会覆盖移动,而且不询问用户;
-V:显示文件或目录的移动过程;
例:将当前目录下的ab. png更名为xyz. png。
# mv ab.png xyz.png
cp命令
(1)语法: cp [选项] 源文件或目录 目标文件或目录。
(2)功能:把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令复制文件后,这个文件就会被新文件覆盖,因此,建议用户在使用cp命令复制文件时,最好使用-i选项。
(3) 主要选项含义如下。
-a:该选项通常在复制目录时使用。它保留链接、文件属性,并递归地复制目录,其作用等于-dpR选项的组合。
-d:复制时保留链接。
-f:覆盖已经存在的目标文件而不提示。
-i:和-f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式复制。
-P:除复制源文件的内容外,还将把修改时间和访问权限也复制到新文件中。
-T: 若给出的源文件是一目录文件,将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
-1:不做复制,只是链接文件。
例:将当前目录下的ab. png文件复制到/home/zhs子目录中。
# cp ab.png /home/ zhs
cp [选项]... [-T] 源 目的
或:cp [选项]... 源... 目录
或:cp [选项]... -t 目录 源...
将源文件复制至目标文件,或将多个源文件复制至目标目录。
cp [选项]...源文件 目标 相当改名复制
cp [选项]...源文件..文件夹 多个源文件只能复制到文件夹
选项 说明
-f 覆盖目标同名文件或目录时不进行提醒,直接强制复制
-i 覆盖目标同名文件或目录时提醒用户确认(交互)
-P 复制时保持源文件的权限、属主及时间标记等属性不变
-r 复制目录时必须使用此选项,表示递归复制所有文件及子目录
-a 完整保留所有的信息
-V 可视化
-U 相当于增备,差异备份
-b 先备份(只保留最近)
cat命令
cat命令用于将文件内容在标准输出设备(如显示器)上显示。除此之外,还可用来连接两个或多个文件。
(1) cat命令用于显示文件时的使用方法。
①语法: cat [选项]文件。
②功能:它依次读取文件的内容并将其输出到标准输出设备(显示器)上。
③命令的主要选项含义如下。
-b:跳过空白行编号
-n:显示行号包括空行
-s:将所有的连续的多个空行替换为一个空行(压缩成一个空行)
-A:显示隐藏字符
-T:将TAB显示为“^I”。该选项需要与-v选项一起使用。
-v:用一种特殊形式显示控制字符,LFD与TAB除外。 加了此选项后-T和-E选项才能起作用
-E:在每行的末尾显示一个“$”符,该选项需要与-v选项一起使用。
-u:输出不经过缓冲区,
A:等于-vET。
T:等于-vT。
E:等于-vE。
例:查看文本文件1234.txt的内容。
# cat 1234. txt
#cat -b 1234.txt (1234.txt中的空行没有编号 )
#cat -n 1234.txt (为1234.txt中的内容添加行号,包括空行)
#cat -s 1234.txt (压缩1234.txt中连续的空行)
#cat -bs 1234.txt (将1234.txt中的连续空行压缩,并对非空行编号)
#cat -ns 1234.txt (将1234.txt中的连续空行压缩,对所有内容编号)
(2) cat命令用于连接两个或多个文件时的使用方法。
①语法:cat文件1 文件2 ... 文件N > 文件M。
②功能:此命令是将“文件1”“文件2”.“文件N”的内容合并起来,存放在“文件M”中。此时在屏幕上并不能直接看到“文件M"的内容。若想查看连接后的文件内容,可用命令“cat文件M”。
例:请将文本文件33. txt和44. txt两文件的内容合并到aa. txt文件中。
#cat 33.txt 44.txt > aa. txt
执行完成后,可用cat命令查看文件aa. txt的内容。
head -n 文件名 (不加默认开头十行)
tail -n 文件名 (不加默认结尾十行)
[root@localhost test]# head -n -3 3.txt
#-3 不显示最后3行
1
2
3
4
5
[root@localhost ky15]# tail -n -3 3.txt
#-3 只显示最后三行
6
7
8
[root@localhost ky15]# head -n +3 3.txt
#就只显示前三行
1
2
3
[root@localhost ky15]# tail -n +3 3.txt #
#从第三行开始
3
4
5
6
7
find命令

查找类型 关键字 说明
按名称查找 -name 根据目标文件的名称进行查找,允许使用“*“及"?通配符
按文件大小查找 -size 根据目标文件的大小进行查找0一般使用”+"、“.”号设置超过或小于指定的大小作为查找条件0常用的容量单位包括kB
按文件属主查找 -user 根据文件是否属于目标用户进行查找
按文件类型查找 -type 根据文件的类型进行查找0文件类型包括普通文件(f) 、目录(d) 、块设备文件(b)、字符设备文件(C)等
按inode号 -inum 根据文件inode号查找
按权限查找 -perm 按文件权限查找
最大搜索目录 深度 -maxdepth level 将你的文件已分级的形式查找
最小搜索目录 深度 -mindepth level 将你的文件已分级的形式查找
七大文件类型
| f | 普通文件 |
| d | 目录文件 |
| l | 符号链接文件 |
| b | 块设备文件 |
| c | 字符设备文件 |
| p | 管道文件 |
| s | 套接字文件 |
有关硬链接的总结
- 具有相同inode节点号的多个文件互为硬链接文件;
- 删除硬链接文件或者删除源文件任意之一,文件实体并未被删除;
- 只有删除了源文件和所有对应的硬链接文件,文件实体才会被删除;
- 硬链接文件是文件的另一个入口;
- 可以通过给文件设置硬链接文件来防止重要文件被误删;
- 创建硬链接命令 ln 源文件 硬链接文件;
- 硬链接文件是普通文件,可以用rm删除;
- 对于静态文件(没有进程正在调用),当硬链接数为0时文件就被删除。注意:如果有进程正在调用,则无法删除或者即使文件名被删除但空间不会释放。
有关软链接的总结
- 软链接类似windows系统的快捷方式;
- 软链接里面存放的是源文件的路径,指向源文件;
- 删除源文件,软链接依然存在,但无法访问源文件内容;
- 软链接失效时一般是白字红底闪烁;
- 创建软链接命令 ln -s 源文件 软链接文件;
- 软链接和源文件是不同的文件,文件类型也不同,inode号也不同;
- 软链接的文件类型是“l”,可以用rm删除。
硬链接和软链接的区别

(1)语法: tar [选项] [文件目录列表]。
(2)功能:对文件目录进行打包归档。
(3)选项含义如下。
-c:建立新的归档文件。
-r:向归档文件末尾追加文件。
-x:从归档文件中解出文件。
-O:将文件解开到标准输出。
-v:处理过程中输出相关信息。
-f:对普通文件操作。
-z:调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩。
-Z:调用compress来压缩归档文件,与-x联用时调用compress完成解压缩。
# tar zxvf qt-xll-opensource src-4.3.2. tar. gz
grep命令
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-o : 只显示匹配项
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!
例子:
#cat 111.txt|grep -v "^$"(清除111.txt中的空行)
#cat 111.txt|grep -i "^a"(显示111.txt中以a为开头的内容)
seq常见命令参数
用法:seq [选项]... 尾数 或:seq [选项]... 首数 尾数 或:seq [选项]... 首数 增量 尾数以指定增量从首数开始打印数字到尾数。 -f, --format=格式 使用printf 样式的浮点格式 -s, --separator=字符串 使用指定字符串分隔数字(默认使用:\n) -w, --equal-width 在列前添加0 使得宽度相同【自动补位】 --help 显示此帮助信息并退出 --version 显示版本信息并退出基本功能转换
格式
tr [选项]... SET1 [SET2](SET是一组字符串,按字面意思理解即可)
-d 删除
例子:
#tr -d sha面试题生成随机密码
[root@localhost ~]cat /dev/urandom |tr -dc '[:alnum:]' |head -c12
浙公网安备 33010602011771号