参考文章
1.前置知识
(1)通配符
* | 任意个数个任意字符 |
? | 任意一个字符 |
[] | 匹配字符组中的任意一个字符 |
(2)目录
~ | 主用户目录 |
. | 当前目录 |
.. | 上一级目录 |
(3)绝对路径和相对路径
绝对路径:输入时以/或者*开头,表示从根目录开始的具体目录位置
相对路径:输入时不以/或者*开头,表示相对当前目录所在位置
2.目录操作
(1)切换目录 cd(change directory)
cd / | 切换到根目录 |
cd | 切换到当前用户的主目录 |
cd ~ | 切换到当前用户的主目录 |
cd . | 保持在当前目录 |
cd .. | 切换到上一级目录 |
cd /usr | 切换到根目录下的usr目录 |
cd - | 切换到上次访问的目录 |
(2)查看目录 ls(list)
【以.开头的文件是隐藏文件,用-a参数才可以显示】
ls | 查看当前目录下的所有文件和目录 |
ls -a | 查看当前目录下的所有文件和目录(包括隐藏文件) |
ls -l | 列表查看当前目录下所有文件和目录的详细信息 |
ll | 列表查看当前目录下所有文件和目录的详细信息 |
ls -hl | 以人性化的方式显示文件大小 |
ls /dir | 查看指定目录下的所有文件和目录 |
详细信息【类型+各权限 所属者 所属组 大小 时间】
①chmod
chmod的用法
使用权限 : 所有使用者
使用方式 : chmod [-cfvR] [--help] [--version] mode file…
【Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。】
mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]…][...]
参数:u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
例子:将档案 file1.txt 设为所有人皆可读取 :chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取 :chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行 :chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 :chmod -R a+r *
此外chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
例子:chmod a=rwx file和chmod 777 file效果相同。
②chown(change owner)
用途:更改文件的所有者或组。命令由单词change owner组合而成。
使用示例:
更改文件的所有者:chown jim program.c
文件 program.c 的所有者更改为 jim。作为所有者,jim 可以使用 chmod 命令允许或拒绝其他用户访问 program.c。
更改目录的所有者:chown -r john:build /tmp/src
将目录 /tmp/src 中所有文件的所有者和组更改为用户 john 和组 build
- r 递归式地改变指定目录及其下的所有子目录和文件的拥有者。
- v 显示chown命令所做的工作。
(3)创建目录 mkdir(make directory)
【目录名不能已有目录名和文件名相同】
mkdir 目录名 | 在当前目录下创建一个该名字的目录 |
mkdir /dir/目录名 | 在指定的dir下创建一个该目录名的目录 |
mkdir -p 目录名/目录名/目录名 | 使用参数-p递归创建目录 |
(4)删除目录或者文件 rm(remove)
【使用rm删除之后不能恢复】
rm -f 文件位置/文件名 | 使用-f参数,强制删除文件,无需提示 |
rm -r 文件位置/文件名 | 使用-r参数,递归的删除该目录下的内容 |
rm 文件 | 删除当前目录下的文件 |
rm -f 文件 | 强制删除当前目录下的文件 |
rm -r dir | 递归删除当前目录下的目录 |
(5)修改目录 mv和cp(move和copy)
tree 目录名 | 以树状图列出文件目录结构 |
cp 源文件 目标文件 | 复制目标文件或者目录 |
mv 文件或者目录当前名字 新名字 | 文件或者目录重命名 |
mv 文件或者目录名称 新位置 | 文件或者目录剪切移动 |
(6)搜索目录 find
find 目录 参数 文件名 | 查找目标目录下的目标文件 |
例:find /usr/tmp -name 'a*' | 查找/usr/tmp目录下所有以a开头的文件或者目录 |
3.文件操作
(1)新建文件 touch
touch文件名 | 创建文件或者修改文件时间 |
(2)删除文件 rm(remove)
同目录
(3)修改文件内容 vi或vim
vim使用
(4)查看文件 cat、more或grep
cat(concatenate)
查看文件内容、创建文件、追加文件内容等,一次显示所有内容,适用于查看内容比较少的文本文件。
命令:cat 文件名
参数:-b对非空输出行编号;-n对所有输出行编号
more
命令:more 文件名
grep
grep "literal_string" filename | 在单个文件中查询指定字符串 |
grep "string" FILE_PATTERN | 在多个文件中查找指定字符串,FILE_PATTERN 表示文件通配符表示。比如当前目录下的所有文件 ./* |
grep -i "string" FILE | 查找的过程中忽略大小写 |
grep "REGEX" filename | 使用正则表达式来查找字符串。 |
grep -iw "is" demo_file # 只会完整的匹配is这个单词 | 匹配完整的单词,而不是子串。 |
grep -A 3 -i "example" demo_text # After 连着打印“example” 单词后的2行,共3行 grep -B 3 -i "example" demo_text # Before 连着打印“example” 单词前的2行,共3行 grep -C 3 -i "example" demo_text # Both 连着打印“example” 单词前后的2行,共5行 | 现在匹配字符串前面/后面/前后两边的字符串。(After/Before/Around)。 |
grep -n "go" demo_text | 使用 -n 显示匹配的字符串在文件中的行数。 |
4.其他命令
PS(Process Status):查看系统中的进程状态,可以显示系统中当前运行的进程的状态。
a | 显示所有进程(包括其他用户的进程) |
u | 以用户为主的格式来显示进程情况 |
x | 显示没有控制终端的进程 |
e | 显示环境变量 |
l | 长格式显示 |
r | 只显示正在运行的进程 |
p | 按照进程ID列出进程 |