Linux知识及常用命令总结(一)

Linux的基础知识与命令:

tty终端: 
登录tty终端的快捷键: Ctrl+Alt+F1: 回到图形界面(CentOS图形界面);
	               Ctrl+Alt+F2: terminal1(:0, 大致等于tty1)
	               Ctrl+Alt+F3: terminal2(tty2)
	               Ctrl+Alt+F4: terminal3(tty3)
	               Ctrl+Alt+F5: terminal4(tty4)
	               Ctrl+Alt+F6: terminal5(tty5)
注: Ctrl+Alt+F2-F6是五个真正的全屏幕的tty终端。  exit: 退出tty终端;  
打开图形模式的终端方式: Ctrl+Alt+T (强烈推荐!自行设置) (Application --> System tools --> Settings --> Devices)

[localhost-tl@shuaig-tl ~]$ --> (命令行提示符, 需要在后面输入命令)
localhost-tl: 当前用户的名字(username), Linux是多用户的操作系统;
shuaig-tl: Hostname, 主机名(所在的域);
~: 当前所在的目录名, 会随着进入不同的目录而改变;
$ :指示你所具有的权限;
~: 表示当前用户的家目录: /home/xxxx, 类似于Windows系统下“我的文档”;

命令行提示符中表示权限的字符: $ 和 #;
$ :表示普通用户, 有权限的限制;
# :表示超级用户root, 拥有所有的权限, 想干什么就干什么;
普通用户切换至root用户: sudo su
退出root用户身份, 可以用Ctrl+D 或 使用exit命令;
获取当前用户的名字: whoami命令;
获取当前主机的名字: hostname命令;
1. 基础快捷键:
command: 命令   parameter: 参数
命令可以单独使用, 也可以带参数使用; 参数好比选项, 可以改变命令的行为; 
命令的参数: 参数是写在命令之后的一些补充选项, 命令与参数之间有空格;
		  参数选项可以包含多个参数(可以包含数字、字母等), 由空格隔开;
短参数: 由一个短横线开始, 加一个字母,  eg: ls -l (可简写为ll); 此外可以一次加多个参数, 
	   eg: command -p -a -T -c, 也可以将这几个参数合并: command -paTc;
长参数: 以两个多横线开始, 加多个字母; eg: command --parameter1;若有多个长参数, 不能像多参数那样合并, 只能以空格隔开;
       eg: command --parameter1 --parameter2
注: 参数字母区分大小写! 此外允许组合使用短参数和长参数! eg: command -paTc --parameter1 --parameter2
有时候, 同一个意义的参数有短参数和长参数两种形式: eg: ls -a等效于ls --all, 表示列出当前目录下的所有文件, 包括隐藏文件;
当对参数进行赋值时, 短参数和长参数的赋值方式是不同的:
短参数赋值: eg: command -p 10
长参数赋值: eg: command --parameter=10
date命令: 显示当前时间;    
ls命令: list, 列出当前目录下的文件和目录;
如何找到一个命令: Tab键 (按两次能列出所有可能的选项, 也可补全文件名、路径名);
eg: 输入ha, 按2次Tab键, 就能列举出来所有以ha开头的命令/ 输入da, 按2次Tab键, 就能列举出来date的命令 (因为只有这一个命令)。

Ctrl+R: 查找使用过的命令(再输入命令中的几个字母即可), 也可以用↑ ↓来查找。
history命令: 列出之前使用的所有命令, 并给命令加上编号。(可以使用! + 编号的格式来重新运行列出的某一命令)
Ctrl+L: 等效于clear命令, 清理终端的内容(清屏);之前的内容到屏幕上方了。
Ctrl+D: 给终端传递EOF(End Of File, 文件结束符); 有的程序需要接收到EOF输入时才结束, 比如说退出root用户时, 或者是关闭终端时;
Shift+PgUp: 用于向上滚屏, 与鼠标滚轮向上滚屏一样;
Shift+PgDn: 用于向下滚屏, 与鼠标滚轮向下滚屏一样;

当在编辑一条非常长的命令时, 以下的快捷键很有用处:
eg: 输入命令: Linux is awesome. I love Linux. (假定是真的命令)
Ctrl+A: 等效于Home键, 光标跳到一行命令的开头;
Ctrl+E: 等效于End键, 光标跳到一行命令的结尾;
Ctrl+U: 删除所有在光标左侧的命令字符;
Ctrl+K: 删除所有在光标右侧的命令字符;
Ctrl+W: 删除在光标左侧的一个单词;
一个单词: 表示用空格隔开的一个字符串, 例如-a就算一个单词。
Ctrl+U、Ctrl+K、Ctrl+W类似于剪切, 相当于剪切了内容(并将内容存入了缓存区), 此时可用Ctrl+Y来粘贴!
2. 文件和目录组织命令:
Linux的文件和目录都是由根目录"/"开始自顶向下呈乔木状分散的!
Windows系统中会区分文件 & 非文件, 而Linux系统中一切皆是文件!
Linux的目录组织: Linux中有两种类型的文件: 普通文件&特殊文件;
普通文件: 文本类型的文件(.txt、.odt等); 声音文件(.wav、.ogg等)、程序等; 普通文件Windows系统中也有。
特殊文件: 其他一些文件是特殊的, 因为它们表示一些东西, eg:光盘驱动等;
根目录: 包含了其他的目录和文件!Linux中有且只有一个根目录(/)!
Linux中用"/"来表明目录间的层级关系与包含关系。 eg: /usr/bin, 表示bin是usr目录的子目录, usr是/根目录的子目录。
注: 一般在Linux下命名目录时尽量不使用空格或者是其它的特殊符号!尽量都使用小写的英文字母来表示。
3. Linux跟目录下的直属子目录:
1.bin目录: 存放会被所有用户使用的可执行程序 (二进制文件);
2.boot目录: 包含与Linux启动密切相关的文件;
3.dev目录: device, 设备, 包含外设, 它里面的每一个子目录对应一个外设。eg: 代表光盘驱动器的文件就在这个目录下面。
4.etc目录: 存放系统的配置文件;
5.home目录: 用户的私人目录, 在该目录下可以存放私人的文件, 类似于Windows系统中的Documents文件夹, 即“我的文档”;
            Linux中每个用户都在home目录下有一个私人目录(/home/xxxx, 除了root用户)。
6.lib目录: 包含被程序所调用的库文件, 例如.so结尾的文件; (Windows系统下这样的库文件则是以.dll结尾的。)
7.media目录: 可移动的外设(USB盘、SD卡、DVD、光盘等)插入电脑时, Linux可以让我们通过media的子目录来访问这些外设中的内容;
8.mnt目录: mount, 挂载, 类似于media目录, 但一般用于临时挂载一些装置;
9.opt目录: 可选的应用软件包, 用于安装多数第三方的软件和插件;
10.root目录: 超级用户root的家目录。一般的用户的家目录位于/home下;
11.sbin目录: 包含系统级的重要的可执行程序;
12.srv目录: service, 服务, 包含一些网络服务启动之后所需要用到的数据;
13.tmp目录: temporary, 临时的, 普通用户和程序存放临时文件的地方;
14.usr目录: 最庞大的目录之一, 安装了大部分用户要调用的程序。类似于Windows中C:\Windows和C:\Program Files文件夹的集合;
15.var目录: variable, 动态的, 可变的, 通常包含程序的数据, 如log文件; (log文件: 日志文件, 用于记录电脑中发生了什么事。)
4. 基础命令:
pwd命令: 显示当前目录的路径;
which命令: 获取某一命令的可执行文件的位置(平时用的不多), 显示一个命令的对应的可执行程序的位置, 即该程序位于哪个目录下。
Linux中每一条命令其实是对应了一个可执行程序, 在终端中输入命令, 回车时就相当于执行了对应的那个程序。
比如: pwd命令对应的pwd程序就是存在于Linux中的!一个命令只不过是一个我们随时可以调用的程序罢了。

which命令接收一个参数, 是你想知道其可执行程序位于哪里的那个命令!
eg: [localhost-tl@shuaig-tl ~]$ which pwd   ——>   /usr/bin/pwd, 表明pwd命令对应的pwd可执行程序位于/usr/bin目录中。
此外, which命令对应的可执行程序也在/usr/bin目录中。
注: Linux中的可执行程序也不是都位于某一相同目录的。
注: Windows中可执行程序以.exe结尾, 而在Linux中执行程序一般是没有后缀名的!
5. 目录的相关命令:
ls命令: 列出文件和目录 (配合参数使用, 能以不同的方式显示目录内容)
注: CentOS的终端默认是有颜色标注的: (系统默认界面, 白底黑字时)
不同颜色代表的含义: 蓝色-目录  绿色-可执行文件  红色-压缩文件  浅蓝色-链接文件  灰色-其他文件;
可以加上参数--color=auto来开启颜色的标注: ls --color=auto(系统默认的);
可以加上参数--color=none来关闭颜色的标注: ls --color=none(关闭了)
注: 为了避免每次都输入额外参数, 可以在一个配置文件中修改, 使得永久的显示颜色or不显示颜色。

ls -a: 显示所有文件和目录, 包括隐藏的文件 和 目录。
Linux中以·开头的是隐藏文件, 但是不包括开头的 .(当前目录)和..(上一级目录) !
	cd .. :  切换到上一层目录;
	cd . : 进入到当前目录;
	cd ../.. : 切换到当前目录的上一层目录的上一层目录;
	cd - : 切换到(操作中的)上一个所在目录;
ls -A: 作用同上, 但是此时不会列出.和..这两个文件了!
ls -l: 列出显示文件和目录的详细信息列表, 每一个文件或目录都对应一行信息。

eg: drwxr-xr-x. 2 localhost-tl localhost-tl 6 Jun  1 18:38 Documents
[localhost-tl@shuaig-tl ~]$ cd Documents/
[localhost-tl@shuaig-tl Documents]$ ll
total 0

属性解释: 
drwxr-xr-x: 文件的权限;
2: 链接的数目,表示拥有相同inode号的文件数(文件指向同一内容);对于普通文件, 此处都为1, 因为大部分文件内容都不相同;对于目录, 此处标为目录内所含文件的数目, 但也不一定。
localhost-tl: 目录或文件的所有者名称;
localhost-tl: 文件所在的群组;
6: 文件的大小, 单位: 字节
Jun 1 18:38: 最近一次的修改时间;
Documents: 文件或目录的名称;
total 0: 单位: 千字节, 表示指向当前目录所有文件的总大小。

ls -lh: 列出文件or目录的详细列表, 并以K0、M0、G0的形式显示文件的大小;
ls -lt: 列出文件or目录的详细列表并按照文件 or 目录最近一次修改时间降序排序;
注: ls命令的常用的参数在合并一起使用时, 效果是叠加的; eg: ls -lath

相对路径: 相对于当前目录的一种路径表示法;
绝对路径: 绝对的, 不因当前目录而改变的一种路径表示法(总以"/"开头); 不管当前位于哪个目录下, 绝对路径的用法都是一样的。
cd ~ : 切换到当前用户的主目录下(家目录), 可以直接输入cd;

du命令: 显示目录包含文件的大小(相比ls -l, 真正地统计文件的大小); 能知道文件or目录所占空间的大小(根据参数决定);
        它会深入遍历每个目录的子目录, 一次性统计完所有文件的大小; du: disk usage, 磁盘使用/占用;

	参数: -h : 以K0、M0、G0的形式显示文件的大小, 似ls -h; eg: 没用-h之前, 文件总大小83948字节, 用了-h之后为82M;
		 -a : 显示目录or文件的大小, 默认情况下du命令只显示目录的大小;
		 -s : 只显示总计大小, 只看当前目录的总大小;

cat & less命令: 显示文件内容(只能读不能改);
cat: concatenate, 连接; 用于一次性显示文件的所有内容; 用法: cat+想要显示的文件的路径, 该命令更适合于处理内容少的小文件;
     加上-n(number)可得文件一共有多少行; eg: cat -n Xorg.9.log  Xorg.10.log
注:cat命令后可以加多个文件, 它们的内容合并后一同输出!

less命令: 会将文件内容分页展示;用法: less + 文件名(路径)
实用快捷键: 
	PgUp & PgDn: 可进行上下翻页;
	空格键: 显示下一页的内容;
	回车键: 显示下一行的内容;
	上下键:可以一行一行的查看;
	u:后退半页的内容;
	d:前进半页的内容;
	b:后退一页;
	y:后退一行;
	q:停止读取文件, 终止less命令;
	=:显示此时阅读的位置实在文件中的什么位置上(显示当前页面的内容, 是文件中的第几行到第几行 & 
	  整个文件的所有行数 & 所给字符数 & 整个文件的所有字符数)
	h:显示帮助文档; (按q键退出)
	/:进入搜索模式, 输入你想找的字符串, 他就会把所有符合的结果都标识出来。按n键跳到下一个符合的结果, 
	  按Shift + n跳到上一个符合的结果上。另外, 正则表达式也可以用于搜索内容。

more命令: 一般会用于要显示的内容超过一个画面长度的情况。
	空格: 显示下一个画面;
	回车: 显示下一行内容;
	q/Ctrl+C: 退出;
more命令的缺点: 只能向后翻页, 不能向前看内容;

head命令与tail命令: 显示文件的开头 与 结尾的内容;
head: 显示文件的开头几行的内容, 默认情况下显示文件的头10行内容;
	eg: head -n 5 Xorg.9.org
	-n: 指定参数;
	5: 显示文件中的头5行的内容;
tail: 显示文件结尾几行的内容, 默认情况下显示文件的尾10行;
       eg: tail -n 5 Xorg.9.org
	-n: 指定参数;
	5: 显示文件中的尾部5行的内容;

tail命令还可以配合-f参数来实现实时追踪文件的更新。eg: tail -f 文件路径名
注: 对于那种随时间一直改变的文件非常有用, 例如日志文件;
注: Ctrl+C组合可以终止大部分终端的命令和正在执行的程序, 类似于Windows系统中的Alt+F4。
tail命令可以使用-s参数指定间隔检查的秒数, tail -f默认为1秒, 即每过一秒就会检查文件是否有新的内容。
eg: tail -f -s 4 文件的路径名

touch命令: 创建一个空白的文件, 也可以同时创建多个文件。
注: 如果创建的文件的文件名有空格, 那么在创建时应当用双引号把文件名称给括起来。
eg: touch “new File” , 不过尽量不要创建这样的文件!

mkdir命令: 创建一个目录, 也可以同时创建多个目录。
mkdir + 需要创建目录的路径; eg: mkdir ../new_folder
另外, 可以使用-p参数来递归创建目录结构;eg: mkdir -p one/two/three
6. 文件的复制、移动、删除和链接:
cp命令: 拷贝文件或目录, 可以拷贝多个文件(似复制+粘贴);
格式: cp 被拷贝的文件 要创建的文件(是被拷贝文件的副本, 可以随意起名称) 
eg: cp new_file new_file_copy
可以把文件拷贝到其他目录中: 只需要把cp命令的第二个参数换成目录名即可; 指定拷贝后文件的名称: cp a.txt test/b.txt
拷贝目录时, 在cp命令后加上-r 或 -R参数; (recursive, 递归的) 拷贝时, 会拷贝目录中的所有内容(子目录和文件都会被拷贝)。
eg: cp -r one one_copy --> one: 被拷贝的目录; one_copy: 要创建的目录, one目录的副本(可以自定义目录名称)

可用通配符*: 常用的正则表达式符号, 表示“百搭”, 可以替代任何字符串。
eg: cp *.txt folder, 表明把当前目录下的所有txt文件拷贝到folder目录中。
eg: cp ha* folder, 表明把当前目录下以ha开头的文件都拷贝到folder目录中。

mv命令: 移动文件(or目录)&重命名文件(or目录), 该命令与cp命令相似, 但它不会创建副本, 只是单纯的移动文件, 它类似于剪切+粘贴。
eg: mv new_file(文件) renamed_file(重命名后的文件) [将文件名为new_file的文件重命名为renamed_file]
eg: mv new_file(文件) one(目录) [将new_file文件移动到one目录下]
eg: mv new_folder(目录) one(目录) [将new_folder目录移动到one目录下]
注: mv命令也可以配合通配符*来使用。

rm命令: 删除文件或目录, 可以删除一个文件/多个文件/目录;
eg: rm new_file, 删除当前目录下的new_file文件;
当删除多个文件时, 用空格隔开每个文件即可。
参数: -i: 向用户确认是否删除;(inform, 输入y或n, 回车)
      -f: 不会询问用户是否删除, 会强制删除!
      -r: 可以用rm命令删除目录(递归地删除其包含的子目录和文件), 递归删除!
rmdir命令: 只能删除空的目录。

注: 不管什么情况, 都不要运行rm -rf /* 或 rm -rf /这两个命令!
    (CentOS对该命令没有防护措施: 先cd /, 然后sudo rm -rf *)

ln命令: link, 创建链接(不常用但是有用), 在文件之间创建链接。
Linux下有两种链接类型: 
Physical link: 物理链接or硬链接;
Symbolic link: 符号链接or软链接;(像Windows下的快捷方式)
在Linux系统中, 文件在硬盘上是如何存放的?
文件在硬盘上存储时, 简单说, 每个文件分为文件名 和 文件内容两个部分。(其实有三部分: 文件名、权限、文件内容)
文件名的列表是存储在硬盘的其它地方的, 文件名称与文件内容是分开存放的, 这便于Linux来管理它们。
每个文件的文件内容被分配到一个标识号码, 就是inode; 因此每个文件名称都绑定到他的文件内容(用inode标识)!

在这里插入图片描述

一、创建硬链接: 用ln命令, 不加任何的参数。 
eg: ln file1(文件) file2(文件), 表示创建了file1的硬链接file2。
硬链接的原理: 使链接的两个文件共享同样的文件内容, 即指向同一个inode; 一旦文件1与文件2之间建立了硬链接, 
那么若修改文件1或文件2, 修改的则是同一块内容, 只不过我们可以用两个文件名来取到文件的内容。

在这里插入图片描述

如上图所示, 当file1与file2建立硬链接后, 当用rm file2/(file1)删除file2/(file1)文件时, 那么对file1/(file2)是没有什么影响的; 
所以对于硬链接来说, 删除任意一方的文件, 它们共同指向的内容并不会从硬盘上被删除。只有把它们全部删除, 它们共同指向的文件的内容才会消失, 即inode被删除了。
硬链接的缺陷: 只能创建指向文件的硬链接, 不能创建指向目录的硬链接!(通过一些参数的修改, 也可以创建指向目录的硬链接, 但是很复杂)

而软链接可以指向文件或目录, 对于目录, 一般都使用软链接。可用-i参数来显示文件的inode值!eg: ls -i (显示目录下文件的inode)
二、创建软链接: 加-s参数(symbolic); eg: ln -s file1 file2, 创建了file1的软链接file2。

在这里插入图片描述

eg: lrwxrwxrwx. 1 root root 5 Mar 1 13:47 file2 -> file1
当用ll查看文件信息时, 发现file2的文件信息: file2 → file1, 其中文件file2前面的权限第一个字母变成了l(link)。之前在创建硬链接的时候是没有l(link)的, 硬链接看起来就和普通文件类似。
此时拥有相同的inode文件数为1(第二列数字), 不再是2了, 因为它们并没有指向同一块文件内容, 所以它们的inode号不同。

file2这个软链接只是file1的一个快捷方式(file2指向file1, 所以显示的是file1的内容), 但此时file2与file1的inode号是不一样的!inode号不同, 因此它们的文件内容也不相同。
如果删除了file2, file1不会受到影响; 如果删除了file1, 那么file2就会变成 “死链接”, 因为它指向的文件不见了。
未完待续…
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值