一、Linux目录结构
在linux中没有盘符的概念 , 有的只是 文件夹和文件。 / 是操作系统的最顶层目录 , 即跟目录 , 所有的路径都是以/开始 , 所有的内容都在/下 。 Linux目录结构如下:
- /bin: (binaries) 存放系统命令的目录,所有用户都可以执行。
- /sbin : (super user binaries) 保存和系统环境设置相关的命令,只有超级用户可以使用这些命令,有些命令可以允许普通用户查看。
- /usr/bin:存放系统命令的目录,所有用户可以执行。这些命令和系统启动无关,单用户模式下不能执行
- /usr/sbin:存放根文件系统不必要的系统管理命令,超级用户可执行
- /root: 存放root用户的相关文件,root用户的家目录。宿主目录 超级用户
- /home:用户缺省宿主目录 eg:/home/spark 普通用户的家目录
- /tmp:(temporary)存放临时文件
- /etc:(etcetera)系统配置文件
- /usr:(unix software resource)系统软件共享资源目录,存放所有命令、库、手册页等
- /proc:虚拟文件系统,数据保存在内存中,存放当前进程信息
- /boot:系统启动目录 reboot halt关机
- /dev:(devices)存放设备文件 网卡 声卡 显示 CD 打印机
- /sys :虚拟文件系统,数据保存在内存中,主要保存于内存相关信息
- /lib:存放系统程序运行所需的共享库
- /lost+found:数据备份目录。
- /var:(variable) 动态数据保存位置,包含经常发生变动的文件,如邮件、日志文件、计划任务等
- /mnt:(mount)挂载目录。临时文件系统的安装点,默认挂载光驱和软驱的目录
- /media:挂载目录。 挂载媒体设备,如软盘和光盘
- /misc:挂载目录。 挂载NFS服务
- /opt: 第三方安装的软件保存位置。 习惯放在/usr/local/目录下
- /srv : 服务数据目录
二、Linux基础命令
1. cd:切换目录
英文:change directory
命令路径:内部命令
执行权限:所有用户
作用:切换目录
语法:cd [目录]
- cd / 切换到根目录
- cd … 回到上一级目录
- cd - 显示并打开到上一次操作的目录
- cd ~ 打开当前用户的宿主目录(eg:# cd ~用户名 进入某个用户的家目录)
2. pwd:显示当前工作目录
英文:print working directory
命令路径:/bin/pwd
执行权限:所有用户
作用:显示当前工作目录
语法:pwd
3. ls:显示目录下的文件
英文:list
命令路径:/bin/ls
执行权限:所有用户
作用:显示目录下的文件
语法:ls [-alrRd] [文件或目录]
- ls -a (all) 显示所有文件,注意隐藏文件,特殊目录.和…
- ls -l (long) 显示详细信息
- ls -R(recursive) 递归显示当前目录下所有目录
- ls -r (reverse) 逆序排序
- ls -t (time) 按修改时间排序(降序)
- ll 相当于 ls –l
4. mkdir:创建新目录(创建新文件夹)
英文:make directories
命令路径:/bin/mkdir
执行权限:所有用户
作用:创建新目录
语法:mkdir [-p] 目录名
- mkdir -p 父目录不存在情况下先生成父目录 (parents)
(eg: # mkdir linux/test 如果目录linux不存在,则报错,使用参数-p即可自动创建父目录。)
5. touch:创建空文件或更新已存在文件的时间
命令路径:/bin/touch
执行权限:所有用户
作用:创建空文件或更新已存在文件的时间
语法:touch 文件名 (eg:# touch a.txt b.txt touch {a.txt,b.txt} 同时创建多个文件 创建带空格的文件 eg:touch “program files” 在查询和删除时也必须带双引号 注意:生产环境中,文件名,一定不要加空格)
6. echo:将内容打印在控制台显示
语法:echo “hello” echo “hello” > 1.txt 覆盖 echo “hello” >> 1.txt 追加内容 (> 或 >> ,叫做重定向,作用:将左边命令的标准(错误)输出,重定向到右边所指定的文件)
7. cp:复制文件或目录
英文:copy
命令路径:/bin/cp
执行权限:所有用户
作用:复制文件或目录
语法:cp [–rp] 源路径… 目标路径
- cp -r(或-R)递归处理,复制目录,英文recursive
- cp -p 保留文件属性 (原文件的时间不变)
eg: 1,相对路径 cp –R /etc/* . cp –R …/aaa …/…/test/ 2,,绝对路径 cp –R /ect/service /root/test/aa/bb
8. mv:移动文件或目录、文件或目录改名
英文:move
命令路径:/bin/mv
执行权限:所有用户
作用:移动文件或目录、文件或目录改名
语法:mv 源路径 目标路径(可以移动,并可以重命名。) 以一个已存在的目录结尾时为移动,以一个不存在的名字结尾时为重命名
9. rm:删除文件或目录
英文:remove
命令路径:/bin/rm
执行权限:所有用户
作用:删除文件
语法: rm [-rf] 路径
- rm -r (recursive) 删除目录,同时删除该目录下的所有文件
- rm -f(force) 强制删除文件或目录 即使原档案属性设为唯读,亦直接删除,无需逐一确认
后面可跟通配符,如rm -rf *(删除当前目录下的所有文件,这个命令很危险,应避免使用。 所删除的文件,一般都不能恢复)、rm -rf *.txt
注意:工作中,谨慎使用rm –rf 命令。
扩展点:删除乱码文件 一些文件乱码后使用rm -rf 依然无法删除 此时,使用ll -i 查找到文件的inode节点 然后使用find . -inum 查找到的inode编号 -exec rm {} -rf ; 就能顺利删除了
10. ln:产生链接文件(即快捷方式), 方便操作文件
英文: link
命令路径:/bin/ln
执行权限:所有用户
作用:产生链接文件 , 方便操作文件
语法:
- ln -s [源文件] [目标文件] 创建软链接 源文件使用绝对路径
- ln [源文件] [目标文件] 创建硬链接
eg:ln -s /etc/service ./service.soft 创建文件/etc/service的软链接service.soft eg:ln /etc/service /service.hard 创建文件/etc/service的硬链接/service.hard
硬链接: 与普通文件没什么不同,inode 都指向同一个文件在硬盘中的区块 软链接: 保存了其代表的文件的绝对路径,是另外一种文件,在硬盘上有独立的区块,访问时替换自身路径。
软连接类似于windows下的快捷方式 软连接文件属性: lrwxrwxrwx. 1 root root 13 Jul 20 07:50 service -> /etc/services
软链接格式解析(特征): 1, 软连接的文件类型是 l(软连接),软连接文件的权限 都是 lrwxrwxrwx 2,-> 箭头指向到源文件 真正的权限取决于对源文件的权限 时间值为创建软连接的时间 软链接可以跨文件系统生成
硬链接特征 1,相当于 cp -p +同步更新 (相当于复制了一个文件,并会随着源文件修改而修改) 2,通过i节点识别,与源文件有相同的inode节点 3,硬链接不能跨分区,ln /home/test/issuels /boot/test (错误) 4,不能针对目录使用 ln /tmp/ aa.hard (无法将目录/tmp 生成硬链接)
硬链接数量,如果该文件没有硬链接,就只有本身一个硬链接。
删除软连接 rm -rf symbolic_name
-s和不加-s的区别 1)-s 是软连接 指向源文件 --> 2)当删除源文件后会报错 3)源文件修改 , 内容也会修改 4)硬连接一种复制 , 源文件修改 , 内容也会修改 5)硬连接:当删除源文件后不会报错
11. cat:显示文件内容
英文:concatenate
命令路径:/bin/cat
执行权限:所有用户
作用:显示文件内容
语法:cat [-An] [文件名]
- cat -A [文件名] 显示所有内容,包括隐藏的字符
- cat -n [文件名] 显示行号
eg:cat /etc/services
12. more:分页显示文件内容
命令路径:/bin/more
执行权限:所有用户
作用:分页显示文件内容
语法:more [文件名]
- 空格或f 显示下一页
- Enter键 显示下一行
- q或Q 退出
more只能向下翻页
13. less:分页显示文件内容
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
语法:less [-N] 文件
参数说明:
- -N 显示每行的行号
- j 向后滚动一行
- k 向前滚动一行
- b 向后翻一页
- d 向后翻半页
- u 向前滚动半页
- y 向前滚动一行
- 空格键 滚动一页
- 回车键 滚动一行
- gg 直达文件首页
- G 直接文件末尾
- /关键字或?关键字 搜索关键字(按n找下一个)
- [pagedown]: 向下翻动一页
- [pageup]: 向上翻动一页
- q 退出查看内容
14. head:查看文件前几行(默认10行)
命令路径:/usr/bin/head
执行权限:所有用户
作用:查看文件前几行(默认10行)
语法:head [-n] [文件名]
- head -n [文件名] 显示前n行
eg:head -20 /etc/services head –n 3 /etc/services
15. tail:查看文件的后几行
作用:查看文件的后几行
语法:tail [-nf] [文件名]
- -n 指定显示后几行
- -f (follow) 动态显示文件内容
- -F 动态显示文件内容
获取一个大文件的部分文件,可使用head或tail命令 head -n 100 /etc/services >config.log (> 或 >> ,叫做重定向,作用:将左边命令的标准(错误)输出,重定向到右边所指定的文件)
-f 依据inode号跟踪,如果目标文件被重命名,则新创建的同名文件不会被跟踪 -F 依据路径名跟踪,如果目标文件被重名,然后创建了同名的新文件,则会继续跟新文件
16. find:查找文件或目录
根据文件名、路径、文件类型、修改创建时间等信息搜索文件
命令路径:/bin/find
执行权限:所有用户
作用:查找文件或目录
语法:find [搜索路径] [匹配条件]
如果没有指定搜索路径,默认从当前目录查找
find命令选项
- -name 按名称查找 精准查找
eg:find /etc -name “init” 在目录/etc中查找文件init find查找中的字符匹配: *:匹配所有 ?:匹配单个字符 eg:find /etc -name “init???” 在目录/etc中查找以init开头的,且后面有三位的文件 模糊匹配的条件,建议使用单引号或双引号括起来。如果*被转义,可使用单双引号括住查询条件,或者使用\*。 eg: # find . –name *g - -size 按文件大小查找
以block为单位,一个block是512B, 1K=2block +大于 -小于 不写是等于 eg:find /etc -size -204800 在etc目录下找出小于200MB的文件 100MB=102400KB=204800block - -type 按文件类型查找
f 二进制文件 l 软连接文件 d 目录 c 字符文件 eg: find /dev -type c
find查找的基本原则: 占用最少的系统资源,即查询范围最小,查询条件最精准 eg: 如果明确知道查找的文件在哪一个目录,就直接对指定目录查找,不查找根目录/
17. grep:在指定的文件的内容中搜索“关键词”
命令路径:/bin/grep
执行权限:所有用户
作用:在文件中搜寻字串匹配的行并输出 在命令的输出中搜索内容
语法:grep [-cinv] ‘关键词’ filename
选项与参数:
- -c :输出匹配行的次数(是以行为单位,不是以出现次数为单位)
- -i :忽略大小写,所以大小写视为相同
- -n :显示匹配行及行号
- -v :反向选择,显示不包含匹配文本的所有行。
18. gzip:压缩(解压)文件,压缩文件后缀为.gz
英文:GNU zip
命令路径:/bin/gzip
执行权限:所有用户
作用:压缩(解压)文件,压缩文件后缀为.gz gzip只能压缩文件,不能压缩目录;不保留原文件
语法:gzip 文件
- gzip -d 文件(或gunzip 文件):将压缩文件解压(decompress)
- gzip 文件:压缩文件
19. tar:文件、目录打(解)包
命令路径:/bin/tar
执行权限:所有用户
作用:文件、目录打(解)包
语法:tar [-zcf] 压缩后文件名 文件或目录
- -c 建立一个压缩文件的参数指令(create),后缀是.tar
- -x 解开一个压缩文件的参数指令(extract)
- -z 以gzip命令压缩/解压缩
- -j 以bzip2命令压缩/解压缩
- -v 压缩的过程中显示文件(verbose)
- -f file 指定文件名,必选项
单独的压缩 解压缩 tar –cf tar –xf 打包之后,进行压缩 gzip bzip2 一步到位 tar –zcvf tar -zxvf
tar -z 以gzip打包目录并压缩 文件格式.tar.gz(.tgz) tar -j 以bzip2打包目录并压缩 文件格式.tar.bz2
tar -zcvf my.tar.gz 文件1 文件2 文件3… 多个文件打包压缩为my.tar.gz tar -zcvf /root/my.tar.gz 文件1 文件2 文件3… 多个文件打包压缩为到root下的my.tar.gz tar -zxvf my.tar.gz 解压缩文件 tar -zxvf my.tar.gz -C 文件夹/ 解压缩文件到指定目录
最常用: tar + gzip tar –zcf 压缩 tar –zxf 解压 源文件是保留的,不会被删除
20. which:显示系统命令所在目录(绝对路径及别名)
命令路径:/usr/bin/which
执行权限:所有用户
作用:显示系统命令所在目录(绝对路径及别名) which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
语法:which 命令名
eg: # which ls alias ls=‘ls --color=auto’ /bin/ls
21. whereis:搜索命令所在目录 配置文件所在目录 及帮助文档路径
命令路径:/usr/bin/whereis
执行权限:所有用户
作用:搜索命令所在目录 配置文件所在目录 及帮助文档路径 eg: which passwd 和 whereis passwd eg:查看/etc/passwd配置文件的帮助,就用 man 5 passwd
22.main、help 帮助命令的使用
方式1:使用man来查看详细文档 man pwd man java 方式2:使用help来查看简洁帮助信息 查看到命令的一些参数说明 eg: help cd
type 命令 查看内部命令还是外部命令
23.alias命令别名定义
给一个长命令定义别名 eg:alias xx=‘ls -la’
三 、VI编辑器(VIM)
vi 文件名 即可进入vi编辑器查看文件内容(命令模式),点i或a或o进入编辑模式,可对文件内容进行编辑
1.插入命令
- a:在光标后附加文本
- A(shift+a):在本行行末附加文本(行尾)
- i:在光标前插入文本
- I(shift+i):在本行开始插入文本(行首)
- o:在光标下一行插入新行
- O(shift+o):在光标上一行插入新行
2.定位命令
- :set nu:设置行号
- :set nonu:取消行号
- gg:到第一行
- G:到最后一行
- nG:到第n行
- :n:到第n行
3.保存和退出命令
- :w:保存修改
- :w new_filename:另存为指定文件(源文件仍在)
- :w >> a.txt:内容追加到a.txt文件中 文件需存在
- :wq:保存修改并退出
- :wq!:保存修改并强制退出(文件所有者可忽略文件的只读属性)
- shift+zz(ZZ):快捷键,保存修改并退出 相当于 :wq
- :q!:不保存修改退出
- ctrl+z 将命令挂起在后台 用ll -a可看到挂起的文件,是和源文件同名的.swp文件,可使用fg [number]打开,也可用rm -rf 文件名直接删除
4.删除命令
- x:删除光标所在处字符
- nx:删除光标所在处后n个字符
- dd:删除光标所在行
- ndd:从光标所在位置开始删除n行
- :n1,n2d:删除指定范围的行(eg :1,3d 删除了123这三行)
- dG:删除光标所在行到末尾的内容
- D:删除从光标所在处到行尾
5.复制和剪切命令
- yy、Y:复制当前行
- nyy、nY:复制当前行以下n行
- dd:剪切当前行
- ndd:剪切当前行以下n行
- p:粘贴在当前光标所在行下
- P(shift + p):粘贴在当前光标所在行上
6.替换和取消命令
- r:取代光标所在处字符
- R(shift + r):从光标所在处开始替换字符,按Esc结束
- u:undo,取消上一步操作
- ctrl+r:redo,返回到undo之前
7.搜索和替换命令
- /string:向后搜索指定字符串 搜索时忽略大小写 :set ic
- ?string:向前搜索指定字符串
- n:搜索字符串的下一个出现位置,与搜索顺序相同
- N(Shift + n):搜索字符串的上一个出现位置,与搜索顺序相反
- :%s/old/new/g:全文替换指定字符串
- :n1,n2s/old/new/g:在一定范围内替换指定字符串
% 指全文,s 指开始,g 指全局替换
起始行,终止行s/要替换的字符串/替换的新的字符串/g c 询问确认
eg: :%s/ftp/yang/g 全局替换,把ftp替换为yang
eg: :41,44/yang/lee/c 从41行到44行,把yang替换为lee,询问是否替换
eg: :41,44/yang/lee/g 同上,不询问,直接替换
eg: :%s/\/root/\/ROOT/g 把/root替换为/ROOT
eg: :%s#/bin/bash#/bin/ksh/g 把/bin/bash全部替换为/bin/ksh
使用替换命令来添加删除注释
:% s/^/#/g 来在全部内容的行首添加 # 号注释
:1,10 s/^/#/g 在1~10 行首添加 # 号注释
vi里面怎么查命令??
:!which cp
vi里面怎么导入命令的结果?
:r !which cp
四、权限管理
权限是不同的用户对不同的文件夹或者文件拥有不同的操作权利! linux中有三种权限:
作用: 限制不同用户对文件的操作 ,保证系统数据的安全 root是超级用户 ,不受权限的控制! 权限是对普通用户来说的 , 权限可以分配, 由超级管理员分配!
1.用户管理
- useradd:添加用户
语法:useradd [选项] 用户名 eg:useradd lxl 添加一个名为lxl的用户 - passwd:修改密码命令
语法:passwd [选项] [用户名] 用户密码:生产环境中,用户密码长度8位以上,设置大小写加数字加特殊字符, 要定期更换密码。 - userdel -r 用户名
删除用户 -r 删除账号时同时删除宿主目录(remove) - groupadd group1: 添加组
- su 用户名:切换到该用户(使用exit退出)
2.文件权限
不同用户(不同的用户的组)对不同的文件具有不同的操作权利叫做权限 r 读权限(read) 可读 w 写权限(write) 可写 x 执行权限 (execute) 可执行
权限说明 使用ll可以看到每个文件的详情信息,包括前面的权限前缀,如:
文件所属用户 文件所属组 其他人
第1位:文件类型(f 二进制文件,d 目录,- 普通文件,l 链接文件) (文件的类型)
第2-4位:所属用户(所有者)权限,用u(user)表示(用户的权限)
第5-7位:所属组权限,用g(group)表示(用户所在组的权限)
第8-10位:其他用户(其他人)权限,用o(other)表示(不在组中的其他人)
第2-10位:表示所有的权限,用a(all)表示 所有人
文件夹的权限是建立在可执行权之下的,若一个人对一个文件夹只有r和w权限,却没有x权限,则他无法对该文件夹读写
3.chmod:权限更改
英文:change mode (change the permissions mode of a file)
作用:改变文件或目录权限
语法:chmod [{ugoa}{±=}{rwxX}] [文件名或目录]
- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
- + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
- r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
其他参数说明:
- -c : 若该文件权限确实已经更改,才显示其更改动作
- -f : 若该文件权限无法被更改也不要显示错误讯息
- -v : 显示权限变更的详细资料
- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
- –help : 显示辅助说明
- –version : 显示版本
例如:chmod u+x a.txt 为a.txt文件的拥有者增加执行权限 chmod -R u+x 文件夹名 递归设置权限
用数字来表示权限 r=4(100),w=2(010),x=1(001),-=0 其实是用二进制来表示的
例如:chmod 573 b.txt即为
\-r-x rwx -wx b.txt
101 111 011
5 7 3
rwx和数字表示方式能随意切换 注意:root用户是超级用户,不管有没有权限,root都能进行更改。用普通用户测试权限。 不能用一个普通用户去修改另一个普通用户的权限。
4.chown:更改所有者
英文:change file ownership
作用:更改文件或者目录的所有者
语法 : chown user[:group] file…
参数格式 :
- user : 新的档案拥有者的使用者 ID
- group : 新的档案拥有者的使用者群体(group)
eg:#chown lee file1 把file1文件的所有者改为用户lee eg:#chown lee:test file1 把file1文件的所有者改为用户lee,所属组改为test eg:#chown –R lee:test dir 修改dir及其子目录的所有者和所属组
5.chgrp:改变所属组
英文:change file group ownership
作用:改变文件或目录的所属组
语法 : chgrp [group] file…
eg:chgrp root test.log 把test.log的所属组修改为root
五、网络管理
|