-
mkdir -p a/b/c 递归式去创建一些嵌套目录
-
more 分页查看文件内容
常用参数 : +n 从第n行开始显示; -n 定义屏幕大小为n行;
常用操作 : = 输出当前行的行号; q 退出more;
空格键 向下滚动一屏; b 返回上一屏; -
less 可控分页查看文件内容
常用参数 : - i 忽略搜索时的大小写; - m 显示类似more命令的百分比;
n 显示每行的行号;
常用操作 : / 字符串 向下搜索; ?字符串 向上搜索; -
grep 根据字符匹配来查看文件部分内容
用法: grep 字符 文件名
功能: 从文本文件或管道数据流中筛选匹配的行及数据
常用参数: -i 不区分大小写; -n 显示匹配内容的行号;
-c 计算搜索的字符串有多少行; -v 反向选择,,即没有‘搜素字符串’内容的行;
-E 扩展grep,即egrep,可以使用扩展正则表达式
-l 列出文件内容符合指定的范本样式的文件名称
正则:“ .* ” 匹配一个或多个任意字符 -
vi 命令模式下
删除操作:
3dd 当前行开始向下删除3行;
撤销操作:
u 取消最近的一次操作,并恢复操作结果; U 取消当前行进行的所有操作;
Ctrl + R 撤销命令u的取消操作;
复制粘贴操作:
4yy 复制当前行及后续共4行的文本内容到vi缓冲区;
7yw 复制当前光标开始的7个单词到vi缓冲区;
:28,48y 复制第28行到48行的内容到vi缓冲区;
p 粘贴缓冲区内容到当前光标处,不覆盖文件已有内容;
替换操作:
:3,9s/old/new/g 替换3-9行内所有‘old’字符串为‘new’;
:%s/old/new/g 替换全文内所有‘old’字符串为‘new’; -
RPM包管理
rpm -ivh 包名 安装显示详细信息; rpm -Uvh rpm包名 升级包,可安装;
rpm -e rpm包名 卸载; rpm -e --nodeps rpm包名 强制卸载;
rpm -qa 显示系统所装的rpm软件包; rpm -qi rpm包 显示软件包的详细信息; -
drwxrwxrwx (rwx421)
第一个字母(文件类型):d目录,-文件,l链接,b 可随机存取装置,c一次性读取装置。
接下来三个为一组(u,g,o):属主权限,属组权限,其他用户权限。 -
Linux 系统目录结构
/bin: bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc: etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home: 用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/lib: lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found: 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media: linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt: 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt: opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc: proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root: 该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin: s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/selinux: 这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv: 该目录存放一些服务启动之后需要提取的数据。
/sys: 这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp: tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
/usr: usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin: 系统用户使用的应用程序。
/usr/sbin: 超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src: 内核源代码默认的放置目录。
/var: var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run: 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。 -
cp -r:递归持续复制,用于目录的复制
-
mkdir -p 帮助你直接将所需要的目录(包含上一级目录)递归创建起来
-
Linux 链接概念
Linux 链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln 命令产生硬链接。
硬连接
硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
软连接
另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。 -
EOF的用法
1 后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。
< :输入重定向
> :输出重定向
>> :输出重定向,进行追加,不会覆盖之前内容
<< :标准输入来自命令行的一对分隔号的中间内容.
例 向文件test.sh里输入内容。
[root@slave-server opt]# cat << EOF >test.sh
> 123123123
> 3452354345
> asdfasdfs
> EOF
[root@slave-server opt]# cat test.sh
123123123
3452354345
asdfasdfs
2 用来注释整段脚本代码。 : 是shell中的空语句。
例
: << COMMENTBLOCK
shell脚本代码段
COMMENTBLOCK -
/dev/null
一个character special files类型文件。
所有人都有读写权限,没有执行权限。不能使用管道符 | 来接 /dev/null ,只能使用文件重定向(>, >> 或 <, <<)。
如果你只关心正常输出,可以在命令后面这样重定向: 2> /dev/null
如果你只关心报错内容,可以在命令后面这样重定向: > /dev/null
不输出内容: > /dev/null 2>&1 或 &> /dev/null 或 >& /dev/null
0:表示标准输入流(stdin),
1:表示标准输出(stdout)。
2:表示标准错误输出(stderr)
2>&1:表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。 -
awk命令
awk -F “:” ‘{print $1,$2,$5}’ /etc/passwd | head -5
-F “:” : awk选项,指定输入分割符为:,
‘{print}’ : 固定语法
$1,$2,$5 :输出第一个,第二个,第五个字段
, : 是输出分隔符,如果不加默认是没有分隔符的。
-
批量杀进程
ps -ef|grep CBOSS_SERVER|grep -v grep|awk ‘{print $2}’|xargs kill -9 -
创建软链
ln -s 源目标 软链接文件 -
linux系统端口的5种状态及含义
1.listening 监听状态 说明该端口是开放的,正在等待连接,但是还没有被连接;
2.established 正在建立连接 标识两台机器正在通信中;
3.time_wait 结束连接 说明该端口有过访问,但是访问已经结束;
4.syn_sent 请求连接 当你要访问其它计算机的服务时,首先要发一个同步信号给该端口,此时状态为syn_sent,如果连接成功了就变成了established,这种syn_sent状态一般是非常短暂的;
5.closing 关闭连接 端口人为或者防火墙使其关闭,也许服务被卸载。 -
sed命令
sed ‘s/原字符串/新字符串/g’ 文件 #g表示全部替换
八股文 --- Linux命令笔记总结(更新中)
于 2022-11-01 11:03:33 首次发布