1~14主要是linux基础命令(略)、根文件系统、文件管理命令、用户及权限、用户管理命令
1.bash特性讲解
定义:在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。
#1.1bash
//在shell中可以继续打开shell,称为子shell,用exit退出。父子shell间无继承关系,在父shell运行的在子无效,反之也无效。
1.2#Csh
//shell可嵌套可交互,比如在在csh里亦可执行ksh,本质上只是每层shell都觉得自己仅仅运行了命令。Bash支持的项:
1.3shell的变量功能:
变量简单说就是让某一个特定字符串代表不固定的内容。
设置变量(变量名的规则:用“=”连接;等号两边不能有空格符;只能使用数字和字母,且不能用数字开头;):
myname=hibiscus
取消变量:unset 变量名称
优点:
命令与文件补全功能
命令别名设置功能
命令记忆功能
通配符等等
1.4shell中的通配符
bash中常用的通配符有”*“,”?“,”[]“
*表示匹配任意一个或多个字符
?表示匹配任意单一字符
[]匹配任何包含在方括号内的单字符
shell中的引用:在bash中有很多特殊字符,这些特殊字符就具有特殊含义。引用就是通知shell将这些特殊字符当作普通字符来处理。
转义字符“\”:如果将\放到特殊字符前面,shell就忽略这些特殊字符的原有含义,把它们当作普通字符对待。
单引号:如果将字符串放到一对单引号之间,那么字符串中所有字符的特殊含义被忽略。
ll -d 1'*'
双引号:双引号的引用与单引号基本相同,包含在双引号内的大部分特殊字符可以当作普通字符处理,但是仍然有一些特殊字符保留自己的特殊含义,比如”$“和“\”以及“ ` ”
2.命令行编辑:
2.1光标跳转:
Ctrl+a:跳到命令行首
Ctrl+d输入已结束。在shell下相当于exit
Ctrl+c键盘中断请求,终止当前的命令
Ctrl+e:跳到命令行尾
Ctrl+u:删除光标至命令行首的内容
Ctrl+k:删除光标至命令行尾的内容
Ctrl+左右箭头:图形界面下可跳到前一个单词前
Ctrl+l:clear,清屏
ctrl+s ctrl+q 暂停/恢复屏幕输出
Esc 松开 再. :和!$一个作用
Alt和.同时:和!$一个作用,不支持远程使用
2.2文本操作
文本编辑:vim
命令模式:按esc回到命令模式
yy 复制当前行
2+yy 复制当前行和下一行
p粘贴
dd 删除当前行
2dd删除当前行和下一行
dw按单词删除
u 撤销当前操作
w,b 按单词移动光标
gg 跳转到文档首部行首
G 跳转到文档尾部行首
/字符串 查找字符串
插入模式:
i 在光标前插入=I
a 在光标后插入
A 在光标所在行末尾插入
s 删除光标所在位置字符并插入
S 删除光标所在行并插入
o 在光标所在行下一行插入
O 在光标所在行上一行插入
末行模式:
:wq 保存退出
:q!强制退出,不保存
:wq!强制保存退出
:set nu 显示行号
:set nonu 取消显示行号
:3,5 d 删除第3-5行
:r 文件名 读出文件的内容到当前文件中
:%s/字符串2/字符串3 用字符串3替换字符串2
:%s/字符串2/字符串3/g 用字符串3替换字符串2,全局修改
:w 文件名1 另存为文件名1
文本查看命令:
cat连接并显示文件内容到标准输出
cat -n 显示文件内容并显示行号
逆序显示文件:tac
从头开始逐行查看文件内容:more(在没有翻到最后一屏时支持向后翻)
支持前后翻查看文件内容:less(man手册查看命令用法默认用less打开)
默认查看文件前10行:head
指定查看前n行:head -n
默认查看文件后10行:tail
指定查看后n行:tail -n
文本切割显示:
cut -d 指定分隔符 -f 指定第几列(被切割文件
指定分隔符的时候空格需要用引号‘’引起来)
文本排序显示:
排序显示(默认根据字符在ASCII码中的升序排序):sort 文件名
按照数字大小排序:sort -n 文件名
排序并去掉重复的:sort -u 文件名
逆序排序:sort -r 文件名
按照用户uid数字大小排序显示:
sort -t 指定分隔符 -k 指定第几列 -n /etc/passwd
-f 排序时忽略字符大小写
去掉重复的行,重复的行必须相邻:uniq 文件名
-d 只显示重复的行
-D 显示所有重复的行
-c 显示重复行重复的次数
文本统计:wc——word count
显示文件行数、单词数、字节数和文件名:wc 文件名
###在UTF-8编码格式里面,显示时一个字符占一个字节,一个中文字占用3个字节
只显示单词数:wc -w 文件名
只显示字节数:wc -c 文件名
只显示行数:wc -l 文件名
只显示字符数:wc -m 文件名
显示最长的一行的字符数:wc -L 文件名
管道符:管道符左边命令的输出作为管道符右边命令的输入。
tee命令:在输出到文件的同时输出到屏幕,既想把输出保存到文件中,又想在屏幕上看到输出内容。
文本过滤:grep可以根据指定的字符串,对文件的每一行进行搜索,如果找到了这个字符串,就输出该行的内容
查找文件里有字符h的字符串:grep h 文件名
如果要明确搜索子目录:grep -r h ./*
忽略子目录:grep -d skip h ./*
匹配整个单词:grep -w 单词 文件名
匹配以q开始的行:grep ^[q] 文件名
匹配以q结束的行:grep q$ 文件名
匹配以数字开头的行:grep ^[0-9] 文件名
匹配以q或者f开头的行:grep ^[qf] 文件名
文件搜索:
查找文件路径:
find 路径 -name 文件名:find / -name passwd
3.Linux系统
-rw-------. 1 root root 1792 Aug 21 20:57 anaconda-ks.cfg
依次表示:
-文件类型 rw-所属用户的权限 —所属组的权限 —其他用户的权限 .acl 1硬链接次数 root所属者 root所属组 1792文件大小 文件的最后一次修改时间 文件
3.1 文件
3.1.1文件类型:
-普通文件
d 目录文件
c 字符设备文件
b 块设备文件
-p 管道文件,进程间的通信
s 套接字文件,用于网络上的通信。可以启动一个程序来监听客户端的要求,客户端可以通过套接字来进行数据通信
l 链接文件
硬链接
- ln 原文件 新文件
软链接 - ln -s 原文件 链接文件
3.1.2文件操作
创建文件:
文件命名规则:
(1)不能使用/来当文件名,/是用来做根的,也是用来做路径分隔符
(2)文件名不能超过255个字符
(3)区分大小写
创建普通文件:touch
touch {文件1,文件2,文件3} 创建多个文件
删除普通文件:rm
-f 强制删除
创建目录:mkdir
mkdir -p 目录1/目录2/目录3 递归创建多个目录
-v 显示创建目录的详细信息
删除目录:rm -r
-f 强制删除
复制文件:cp
复制普通文件:
cp 文件1 目录1 将文件1复制到目录1
cp 文件1 目录1/文件2 将文件1复制到目录1并重命名
复制目录文件:cp -r
移动文件:mv
mv 文件1 文件2 将文件1重命名为文件2
mv 文件1 目录1 将文件1移动到目录1下
mv 文件1 目录1/文件2 将文件1移动到目录1并重命名
文件的压缩和解压:
gzip 文件 压缩文件
gzip -c 原文件 > 原文件.gz 保留原文件并压缩
gzip -d 文件.gz 解压文件
gzip -cd 文件.gz > 文件 保留原文件并解压
gunzip 文件.gz 解压文件
zcat 文件.gz 查看压缩文件内容
bzip2 文件 压缩文件
bzip2 -c 原文件 > 原文件.bz2 保留原文件并压缩
bzip2 -d 文件.bz2 解压文件
bzip2 -cd 文件.bz2 > 文件 保留原文件并解压
bunzip2 文件.bz2 解压文件
bzcat 文件.bz2 查看压缩文件内容
tar:打包即归档文件,[主选项+辅选项]
主选项:
c create,创建一个归档文件
x 从归档文件中提取文件出来
t 列出归档文件中的文件
辅选项:
z,以gzip的格式压缩或解压
j,以bzip2的格式压缩或解压
v,显示打包过程的信息
C,将文件解压到指定目录
f 输出结果到文件,必须写该选项
两种压缩方式:zcvf jcvf
解压:xvf
3.2权限
用户:拥有哪些权限
用户组:权限的集合,方便指派权限
权限:可以进行什么操作:R,w,x:可读可写可执行
一般文件不设置执行权限,目录要有,没有x权限用户就无法进入该目录。
特殊权限:
强制位suid,set UID,使进程的属主属于程序文件本身u+s
强制位sgid,set gid,使进程的属组为程序文件本身;在目录下创建的文件的属组为该目录的属组g+s
冒险位:只有该用户可以删除自己在该目录下创建的文件,其他人无法删除(root除外)o+t
umask查看权限掩码:0022
4,suid;2,sgid;1,冒险位
普通文件本身的权限:666 rw-rw-rw-
目录文件本身的权限:777 rwxrwxrwx
将二进制权限的有无转化为八进制。为什么用八进制,因为三位一读,便于快速赋权限。(便于记忆,可视r w x分别等值4 2 1)
u 所属者
g 所属组
o其他人
chmod u/g/o =/+/- 修改文件的权限所属者,所属组和其他人的权限
chmod 000/777/755/644....
修改文件的权限所属者,所属组和其他人的权限
chown 所属者:所属组 修改文件的所属用户和所属组
chown 所属者.所属组 修改文件的所属用户和所属组
chgrp 所属组 修改文件的所属组
用户
3.3 目录
/ 根目录,通常不在这里存储文件
/bin 可执行文件,ls,cd
/sbin 可执行文件
/boot 开机启动的文件,包括linux内核以及开机菜单与开机所需配置文件等
/dev 设备文件,任何设备与接口设备都是以文件形式存在与这个目录的
/root root用户的主目录
/home 普通用户的主目录
/mnt 挂载点目录
光盘必须和/下的某个目录节点建立联系才能使用。
把光盘和指定的挂载点目录建立联系的过程叫做挂载。
mount /dev/sr0 /mnt
/media 媒体目录,也是挂载点目录
/opt 可选目录。存放第三方软件包和数据文件
/var 可变目录,用以存放经常变化的文件,如日志文件
/etc 配置文件
/lib 系统的函数库
/proc 该目录是一个虚拟文件系统,它放置的数据都在内存当中
/run 系统运行时所需文件
/usr 放置的数据为可分享的与不可变动的,unix操作系统软件资源所放置的目录,而不是用户数据
/srv service的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录
/tmp 让一般用户或者是正在执行的程序暂时放置文件的地方
/sys 这个目录其实跟/proc非常类似,也是一个虚拟的文件系统,主要是记录与内核相关的信息
3.4acl
acl 访问控制列表
setfacl -m u/g:用户名/组名:rwx 文件名
getfacl 文件名
setfacl -b 文件名