第1章 回顾昨天内容
1.1 取出网卡ip地址 取出文件权限
1.2 awk '找谁{干啥}' awk 'NR==2{print $4}'
1.3 系统时间
[root@oldboyedu-40-nb ~]# date
Mon Sep 4 12:58:52 CST 2017
[root@oldboyedu-40-nb ~]# date +%F
2017-09-04
1.4 创建一个文件access.log 在文件名字上面加上一个时间
[root@oldboyedu-40-nb ~]# #access-2017-09-04.log
[root@oldboyedu-40-nb ~]# #touch access-2017-09-04.log
[root@oldboyedu-40-nb ~]# date +%F
2017-09-04
[root@oldboyedu-40-nb ~]# #touch access-此处存放的是date +%F命令的结果.log
[root@oldboyedu-40-nb ~]# touch access-$(date +%F).log
4.ntpdate
ntp1.aliyun.com
pool.ntp.org
time.windows.com
今日要讲内容
第三关题目
linux权限体系
文件:rwx-file
目录:rwx-dir
第2章 第三关题目
2.1 如何显示出命令的全路径 在哪里 绝对路径
2.1.1 which命令 找到命令绝对路径的位置
[root@oldboyedu-40-nb ~]# which awk
/bin/awk
2.1.2 find查找包含内容的文件
[root@oldboyedu-40-nb ~]# find / -type f -name "awk"
[root@oldboyedu-40-nb ~]# find / -type f -name "*awk*"
2.1.3 whereis 找出与命令相关的帮助的位置
[root@oldboyedu-40-nb ~]# whereis sed
sed: /bin/sed /usr/share/man/man1p/sed.1p.gz /usr/share/man/man1/sed.1.gz
2.1.4 locate 根据名字找出对应的文件 根据一个表格/数据库 文件名与路径的对应关系
[root@oldboyedu-40-nb ~]# locate oldboy.txt
/etc/oldboy.txt
/mnt/etc/oldboy.txt
/oldboy/oldboy.txt
/oldboy/20170118/oldboy.txt
/oldboy/20170118/oldboy.txt.bak
/root/oldboy.txt
/root/oldboy.txt-hard
/root/oldboy.txt.bak
/root/oldboy.txt11
/root/oldboy.txt22
updatedb updatedb命令用来创建或更新slocate命令所必需的数据库文件。
updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入slocate数据库文件中。 补充说明:slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。
2.2 【用户管理】请给出查看当前哪些用户在线的linux命令。
w w命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。
执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。 语法 w(选项)(参数) 选项 -h:不打印头信息; -u:当显示当前进程和cpu时间时忽略用户名; -s:使用短输出格式; -f:显示用户从哪登录; -V:显示版本信息。
2.3 请给出正确的关机和重起服务器的命令。
init 0 切换的运行级别0 关机命令
2.3.1 关机/重启的一些命令
shutdown shutdown命令用来系统关机命令。shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作。
语法 shutdown(选项)(参数) 选项 -c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令; -f:重新启动时不执行fsck; -F:重新启动时执行fsck; -h:将系统关机; -k:只是送出信息给所有用户,但不会实际关机; -n:不调用init程序进行关机,而由shutdown自己进行; -r:shutdown之后重新启动; -t<秒数>:送出警告信息和删除信息之间要延迟多少秒。
shutdown 10 关机
shutdown -c 取消关机/重启
shutdown -h 10 关机
halt halt命令用来关闭正在运行的Linux操作系统。
halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。 语法 halt(选项) 选项 -d:不要在wtmp中记录; -f:不论目前的runlevel为何,不调用shutdown即强制关闭系统; -i:在halt之前,关闭全部的网络界面; -n:halt前,不用先执行sync; -p:halt之后,执行poweroff; -w:仅在wtmp中记录,而不实际结束系统。 实例 halt -p //关闭系统后关闭电源。 halt -d //关闭系统,但不留下纪录。
2.3.2 重启
shutdown -r 10 在十分钟以后关机
reboot reboot命令用来重新启动正在运行的Linux操作系统。
语法 reboot(选项) 选项 -d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果; -f:强制重新开机,不调用shutdown指令的功能; -i:在重开机之前,先关闭所有网络界面; -n:重开机之前不检查是否有未结束的程序; -w:仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。
第3章 linux快捷键
3.1 课上总结快捷键:
ctrl + d 退出当前用户 ==== logout /exit
ctrl + l(小写字母L) 清屏
ctrl + a 把光标移动到这一行的开头
ctrl + e 把光标移动到这一行的结尾
ctrl + u 删除/剪切 光标所在位置到行首的内容
ctrl + k 删除/剪切 光标所在位置到行尾的内容
ctrl + y 粘贴
ctrl + r 查找历史命令 history |grep awk
(reverse-i-search)`-F': history |grep '\-F'
ctrl + → 向右移动光标 移动一个单词的位置
ctrl + ← 向左移动光标 移动一个单词的位置
3.2 李导博客上快捷键(图册)
老男孩教育每日一题-2017年3月27日-请写出下面linux命令行快捷键的功能?
http://lidao.blog.51cto.com/3388056/1914569
1.1 小测试题:
命令行输入oldboyedu
然后让光标移动到行首 加上注释符号和I am studying
然后让光标移动到行尾,加上 linux.site:www.oldboyedu.com;
剪切,这一行内容。
粘贴3次。
1.2 vi/vim 快捷键
G 把光标移动到文件的最后一行
gg 把光标移动到文件的第一行
:set nu 显示行号 nu====number
:set nonu
dd 删除光标所在这一行
dG 删除光标所在位置到文件结尾的内容
o(小写字母O) 光标所在位置的下一行插入空行 并进入编辑模式
3.5扩展:
1 map <F9> :call SaveInputData()<CR>
2 func! SaveInputData()
3 exec "tabnew"
4 exec 'normal "+gP'
5 exec "w! /tmp/input_data"
6 endfunc
7
8
9
10
11 "colorscheme torte
12 "colorscheme murphy
13 "colorscheme desert
14 "colorscheme desert
15 "colorscheme elflord
16 colorscheme ron
17
18
19
20
21 "set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
22 "set termencoding=utf-8
23 "set encoding=utf-8
24 "set fileencodings=ucs-bom,utf-8,cp936
25 "set fileencoding=utf-8
26
27 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
28 " 显示相关
29 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
30 "set shortmess=atI " 启动的时候不显示那个援助乌干达儿童的提示
31 "winpos 5 5 " 设定窗口位置
32 "set lines=40 columns=155 " 设定窗口大小
33 set go= " 不要图形按钮
34 "color asmanian2 " 设置背景主题
35 "set guifont=Courier_New:h10:cANSI " 设置字体
36 "syntax on " 语法高亮
37 autocmd InsertLeave * se nocul " 用浅色高亮当前行
38 autocmd InsertEnter * se cul " 用浅色高亮当前行
39 "set ruler " 显示标尺
40 set showcmd " 输入的命令显示出来,看的清楚些
41 "set cmdheight=1 " 命令行(在状态行下)的高度,设置为1
42 "set whichwrap+=<,>,h,l " 允许backspace和光标键跨越行边界(不建议)
43 "set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离
44 set novisualbell " 不要闪烁(不明白)
45 set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容
46 set laststatus=1 " 启动显示状态行(1),总是显示状态行(2)
47 set foldenable " 允许折叠
48 set foldmethod=manual " 手动折叠
49 "set background=dark "背景使用黑色
50 set nocompatible "去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限
51 " 显示中文帮助
52 if version >= 603
53 set helplang=cn
54 set encoding=utf-8
55 endif
56 " 设置配色方案
57 "colorscheme murphy
58 "字体
59 "if (has("gui_running"))
60 " set guifont=Bitstream\ Vera\ Sans\ Mono\ 11
61 "endif
62 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
63 "键盘命令
64 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
65
66 nmap <leader>w :w!<cr>
67 nmap <leader>f :find<cr>
68
69 " 映射全选+复制 ctrl+a
70 map <C-A> ggVGY
71 map! <C-A> <Esc>ggVGY
72 map <F12> gg=G
73 " 选中状态下 Ctrl+c 复制
74 vmap <C-c> "+y
75 "去空行
76 nnoremap <F2> :g/^\s*$/d<CR>
77 "比较文件
78 nnoremap <C-F2> :vert diffsplit
79 "新建标签
80 map <M-F2> :tabnew<CR>
81 "列出当前目录文件
82 map <F3> :tabnew .<CR>
83 "打开树状文件目录
84 map <C-F3> \be
85 "C,C++ 按F7编译运行
86 map <F7> :call CompileRunGcc()<CR>
87 func! CompileRunGcc()
88 exec "w"
89 if &filetype == 'c'
90 exec "!g++ % -o %<"
91 exec "! ./%<"
92 elseif &filetype == 'cpp'
93 exec "!g++ % -o %<"
94 exec "! ./%<"
95 elseif &filetype == 'java'
96 exec "!javac %"
97 exec "!java %<"
98 elseif &filetype == 'sh'
99 :!./%
100 elseif &filetype == 'py'
101 exec "!python %"
102 exec "!python %<"
103 endif
104 endfunc
105 "C,C++的调试
106 map <F5> :call Rungdb()<CR>
107 func! Rungdb()
108 exec "w"
109 exec "!g++ % -g -o %<"
110 exec "!gdb ./%<"
111 endfunc
112
113
114
115 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
116 ""实用设置
117 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
118 " 设置当文件被改动时自动载入
119 set autoread
120 " quickfix模式
121 autocmd FileType c,cpp map <buffer> <leader><space> :w<cr>:make<cr>
122 "代码补全
123 set completeopt=preview,menu
124 "允许插件
125 filetype plugin on
126 "共享剪贴板
127 set clipboard+=unnamed
128 "从不备份
129 set nobackup
130 "make 运行
131 :set makeprg=g++\ -Wall\ \ %
132 "自动保存
133 set autowrite
134 set ruler " 打开状态栏标尺
135 set cursorline " 突出显示当前行
136 set magic " 设置魔术
137 set guioptions-=T " 隐藏工具栏
138 set guioptions-=m " 隐藏菜单栏
139 "set statusline=\ %<%F[%1*%M%*%n%R%H]%=\ %y\ %0(%{&fileformat}\ %{&encoding}\ %c:%l/%L%)\
140 " 设置在状态行显示的信息
141 set foldcolumn=0
142 set foldmethod=indent
143 set foldlevel=3
144 set foldenable " 开始折叠
145 " 不要使用vi的键盘模式,而是vim自己的
146 set nocompatible
147 " 语法高亮
148 set syntax=on
149 " 去掉输入错误的提示声音
150 set noeb
151 " 在处理未保存或只读文件的时候,弹出确认
152 set confirm
153 " 自动缩进
154 set autoindent
155 set cindent
156 " Tab键的宽度
157 set tabstop=4
158 " 统一缩进为4
159 set softtabstop=4
160 set shiftwidth=4
161 " 不要用空格代替制表符
162 set noexpandtab
163 " 在行和段开始处使用制表符
164 set smarttab
165 " 显示行号
166 set number
167 " 历史记录数
168 set history=1000
169 "禁止生成临时文件
170 set nobackup
171 set noswapfile
172 "搜索逐字符高亮
173 set hlsearch
174 set incsearch
175 "行内替换
176 set gdefault
177 "编码设置
178 set enc=utf-8
179 set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936
180 "语言设置
181 set langmenu=zh_CN.UTF-8
182 set helplang=cn
183 " 我的状态行显示的内容(包括文件类型和解码)
184 "set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
185 "set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%]
186 " 总是显示状态行
187 set laststatus=2
188 " 命令行(在状态行下)的高度,默认为1,这里是2
189 set cmdheight=2
190 " 侦测文件类型
191 filetype on
192 " 载入文件类型插件
193 filetype plugin on
194 " 为特定文件类型载入相关缩进文件
195 filetype indent on
196 " 保存全局变量
197 set viminfo+=!
198 " 带有如下符号的单词不要被换行分割
199 set iskeyword+=_,$,@,%,#,-
200 " 字符间插入的像素行数目
201 set linespace=0
202 " 增强模式中的命令行自动完成操作
203 set wildmenu
204 " 使回格键(backspace)正常处理indent, eol, start等
205 set backspace=2
206 " 允许backspace和光标键跨越行边界
207 set whichwrap+=<,>,h,l
208 " 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
209 set mouse=a
210 set selection=exclusive
211 set selectmode=mouse,key
212 " 通过使用: commands命令,告诉我们文件的哪一行被改变过
213 set report=0
214 " 在被分割的窗口间显示空白,便于阅读
215 set fillchars=vert:\ ,stl:\ ,stlnc:\
216 " 高亮显示匹配的括号
217 set showmatch
218 " 匹配括号高亮的时间(单位是十分之一秒)
219 set matchtime=1
220 " 光标移动到buffer的顶部和底部时保持3行距离
221 set scrolloff=3
222 " 为C程序提供自动缩进
223 set smartindent
224 " 高亮显示普通txt文件(需要txt.vim脚本)
225 au BufRead,BufNewFile * setfiletype txt
226 "自动补全
227 :inoremap ) <c-r>=ClosePair(')')<CR>
228 ":inoremap { {<CR>}<ESC>O
229 ":inoremap } <c-r>=ClosePair('}')<CR>
230 :inoremap ] <c-r>=ClosePair(']')<CR>
231 function! ClosePair(char)
232 if getline('.')[col('.') - 1] == a:char
233 return "\<Right>"
234 else
235 return a:char
236 endif
237 endfunction
238 filetype plugin indent on
239 "打开文件类型检测, 加了这句才可以用智能补全
240 set completeopt=longest,menu
241 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
242
243
244
245
246
247
248 "NERDtee设定
249 let NERDChristmasTree=1
250 let NERDTreeAutoCenter=1
251 let NERDTreeBookmarksFile=$VIM.'\Data\NerdBookmarks.txt'
252 let NERDTreeMouseMode=2
253 let NERDTreeShowBookmarks=1
254 let NERDTreeShowFiles=1
255 let NERDTreeShowHidden=1
256 let NERDTreeShowLineNumbers=1
257 let NERDTreeWinPos='left'
258 let NERDTreeWinSize=31
259 nnoremap f :NERDTreeToggle
260 map <F7> :NERDTree<CR>
独行难,众行远.
第1章 Linux权限
1.1 rwx 分别表示什么
r read 读
w write 写
x execute 执行权限
1.2 分为三个部分
[root@oldboyedu-40-nb ~]# ls -l /etc/hosts
-rw- r-- r--. 2 root root 218 Aug 30 19:18 /etc/hosts
文件所有者的权限 所有者属于的组 隔壁老王
主人 家人 陌生人
1.3 相对与的数字
r ==== 4
w ==== 2
x ==== 1
rw- r-- r--
420 400 400
6 4 4
1.4 读取权限 如何知道当前用户对某个文件 拥有什么权限
1.4.1 第一个里程碑-看看你是谁
[root@oldboyedu-40-nb ~]# ls -l /etc/hosts
-rw-r--r--. 2 root root 218 Aug 30 19:18 /etc/hosts
1.4.2 第二个里程碑-你与这个文件是什么关系 主人 陌生人 家人
root用户是这个文件的主人(所有者)
1.4.3 第三个里程碑-根据关系找到权限 第一部分的权限 rw-r--r-- 中的rw- root用户对/etc/hosts 文件拥有 读和写
1.你是谁 2.你和她什么关系 3.你对她有什么权限
[root@oldboyedu-40-nb ~]# ls -l /etc/hosts
-rw-r--r--. 2 root root 218 Aug 30 19:18 /etc/hosts
[root@oldboyedu-40-nb ~]# su - oldboy
[oldboy@oldboyedu-40-nb ~]$ whoami
oldboy
[oldboy@oldboyedu-40-nb ~]$ ls -l /etc/hosts
-rw-r--r--. 2 root root 218 Aug 30 19:18 /etc/hosts
[oldboy@oldboyedu-40-nb ~]$ id oldboy
uid=500(oldboy) gid=500(oldboy) groups=500(oldboy)
1.4.4 如何修改权限
chmod命令 change mode 改变权限 chmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。
权限范围的表示法如下: u User,即文件或目录的拥有者; g Group,即文件或目录的所属群组; o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围; a All,即全部的用户,包含拥有者,所属群组以及其他用户; r 读取权限,数字代号为“4”; w 写入权限,数字代号为“2”; x 执行或切换权限,数字代号为“1”; - 不具任何权限,数字代号为“0”; s 特殊功能说明:变更文件或目录的权限。 语法 chmod(选项)(参数) 选项 -c或——changes:效果类似“-v”参数,但仅回报更改的部分; -f或--quiet或——silent:不显示错误信息; -R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理; -v或——verbose:显示指令执行过程; --reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同; <权限范围>+<权限设置>:开启权限范围的文件或目录的该选项权限设置; <权限范围>-<权限设置>:关闭权限范围的文件或目录的该选项权限设置; <权限范围>=<权限设置>:指定权限范围的文件或目录的该选项权限设置;
通过 u g o 符号 修改权限
权限范围的表示法如下: u User,即文件或目录的拥有者; g Group,即文件或目录的所属群组; o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围
[root@oldboyedu-40-nb ~]# touch oldboy.sh
[root@oldboyedu-40-nb ~]# ls -l oldboy.sh
-rw-r--r-- 1 root root 0 Sep 4 15:12 oldboy.sh
[root@oldboyedu-40-nb ~]# #给oldboy.sh所有者位置 加上x
[root@oldboyedu-40-nb ~]# chmod u+x oldboy.sh
[root@oldboyedu-40-nb ~]# ls -l oldboy.sh
-rwxr--r-- 1 root root 0 Sep 4 15:12 oldboy.sh
[root@oldboyedu-40-nb ~]# #chmod ugo+x oldboy.sh chmod a+x oldboy.sh chmod +x oldboy.sh
[root@oldboyedu-40-nb ~]# chmod +x oldboy.sh
[root@oldboyedu-40-nb ~]# ls -l oldboy.sh
-rwxr-xr-x 1 root root 0 Sep 4 15:12 oldboy.sh
数字
rwxr-xr-x 755
421401401
7 5 5
把oldboy.sh 的权限设置为755
[root@oldboyedu-40-nb ~]# ls -l oldboy.sh
---------- 1 root root 0 Sep 4 15:12 oldboy.sh
[root@oldboyedu-40-nb ~]# chmod 755 oldboy.sh
[root@oldboyedu-40-nb ~]# ls -l oldboy.sh
-rwxr-xr-x 1 root root 0 Sep 4 15:12 oldboy.sh
1.5 rwx对于 文件或目录的含义
chown change own 修改文件的所有者和组
添加用户宿主和用户属组
[root@oldboyedu-40-nb ~]# ll oldboy.sh
-rwxr-xr-x 1 root root 0 Sep 4 15:12 oldboy.sh
[root@oldboyedu-40-nb ~]# chown oldboy.oldboy oldboy.sh
[root@oldboyedu-40-nb ~]# ll oldboy.sh
-rwxr-xr-x 1 oldboy oldboy 0 Sep 4 15:12 oldboy.sh
查看用户宿主和用户属组
id id命令可以显示真实有效的用户ID(UID)和组ID(GID)。
UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。id命令已经默认预装在大多数Linux系统中。要使用它,只需要在你的控制台输入id。不带选项输入id会显示如下。结果会使用活跃用户。 当我们想知道某个用户的UID和GID时id命令是非常有用的。一些程序可能需要UID/GID来运行。id使我们更加容易地找出用户的UID以GID而不必在/etc/group文件中搜寻。如往常一样,你可以在控制台输入man id进入id的手册页来获取更多的详情。 语法 id [-gGnru][--help][--version][用户名称] 选项 -g或--group 显示用户所属群组的ID。 -G或--groups 显示用户所属附加群组的ID。 -n或--name 显示用户,所属群组或附加群组的名称。 -r或--real 显示实际ID。 -u或--user 显示用户ID。 -help 显示帮助。 -version 显示版本信息。
[root@oldboyedu-40-nb ~]# id oldboy
uid=500(oldboy) gid=503(incahome) groups=503(incahome)
[root@oldboyedu-40-nb ~]# id oldgirl
uid=503(oldgirl) gid=503(incahome) groups=503(incahome)
[root@oldboyedu-40-nb ~]# id test
uid=504(test) gid=504(test) groups=504(test)
1.6 添加用户和用户组
useradd usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的crontab档。
也需手动更改使用者的at工作档。采用NIS server须在server上更动相关的NIS设定。 语法 usermod(选项)(参数) 选项 -c<备注>:修改用户帐号的备注文字; -d<登入目录>:修改用户登入时的目录; -e<有效期限>:修改帐号的有效期限; -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号; -g<群组>:修改用户所属的群组; -G<群组>;修改用户所属的附加群组; -l<帐号名称>:修改用户帐号名称; -L:锁定用户密码,使密码无效; -s:修改用户登入后所使用的shell; -u:修改用户ID; -U:解除密码锁定。
创建环境:
创建用户和用户组
groupadd incahome
useradd oldboy -g incahome
useradd oldgirl -g incahome
usermod -g incahome oldboy
usermod -g incahome oldgirl
useradd test
id oldboy
id oldgirl
id test
创建文件
mv /oldboy /tmp/oldboy_bak$(date +%F)
mkdir /oldboy -p
echo "echo oldboylinux" >/oldboy/test.sh
chmod +x /oldboy/test.sh
cat /oldboy/test.sh
ls -l /oldboy/test.sh
1.7 修改文件的所有者
[root@oldboyedu-40-nb oldboy]# chown oldboy.incahome /oldboy/test.sh
[root@oldboyedu-40-nb oldboy]# ll /oldboy/test.sh
-rwxr-xr-x 1 oldboy incahome 17 Sep 4 15:45 /oldboy/test.sh
1.8 测试 文件 rwx含义
1.8.1 测试文件的r权限 读
root进行修改权限
[root@oldboyedu-40-nb oldboy]# chmod u=r test.sh
[root@oldboyedu-40-nb oldboy]# ll test.sh
-r--r-xr-x 1 oldboy incahome 17 Sep 4 15:45 test.sh
测试文件的r权限 oldboy用户
[oldboy@oldboyedu-40-nb oldboy]$ cat test.sh ###可以查看
echo oldboylinux
[oldboy@oldboyedu-40-nb oldboy]$ echo "pwd" >>test.sh ###无法修改
-bash: test.sh: Permission denied
[oldboy@oldboyedu-40-nb oldboy]$ /oldboy/test.sh ###无法运行
-bash: /oldboy/test.sh: Permission denied
[oldboy@oldboyedu-40-nb oldboy]$ ls -l
total 4
-r--r-xr-x 1 oldboy incahome 17 Sep 4 15:45 test.sh
1.8.2 测试文件的w权限 写
root进行修改权限
[root@oldboyedu-40-nb oldboy]# chmod u=w test.sh
[root@oldboyedu-40-nb oldboy]# ll test.sh
--w-r-xr-x 1 oldboy incahome 17 Sep 4 15:45 test.sh
测试文件的w权限 oldboy用户
[oldboy@oldboyedu-40-nb oldboy]$ ####测试文件的w权限 oldboy用户
ldboy@oldboyedu-40-nb oldboy]$ ll
total 4
--w-r-xr-x 1 oldboy incahome 17 Sep 4 15:45 test.sh
[oldboy@oldboyedu-40-nb oldboy]$ cat test.sh
cat: test.sh: Permission denied
[oldboy@oldboyedu-40-nb oldboy]$ echo "pwd" >>test.sh
[oldboy@oldboyedu-40-nb oldboy]$ cat test.sh
cat: test.sh: Permission denied
[oldboy@oldboyedu-40-nb oldboy]$ vim test.sh
hostname
pwd
whoami
[oldboy@oldboyedu-40-nb oldboy]$
[oldboy@oldboyedu-40-nb oldboy]$ cat test.sh
cat: test.sh: Permission denied
[oldboy@oldboyedu-40-nb oldboy]$ /oldboy/test.sh
-bash: /oldboy/test.sh: Permission denied
w权限需要有人配合 r的配合
只有w权限的时候 文件的所有者 可以vim强制修改文件的内容 源文件内容消失
1.8.3 测试文件的x权限 执行
root进行修改权限
[root@oldboyedu-40-nb oldboy]# chmod u=x test.sh
[root@oldboyedu-40-nb oldboy]# ls -l
total 4
---xr-xr-x 1 oldboy incahome 45 Sep 4 16:10 test.sh
测试文件的w权限 oldboy用户
[oldboy@oldboyedu-40-nb oldboy]$ ls -l
total 4
---xr-xr-x 1 oldboy incahome 45 Sep 4 16:10 test.sh
[oldboy@oldboyedu-40-nb oldboy]$ cat test.sh
cat: test.sh: Permission denied
[oldboy@oldboyedu-40-nb oldboy]$ >>test.sh
-bash: test.sh: Permission denied
[oldboy@oldboyedu-40-nb oldboy]$ /oldboy/test.sh
bash: /oldboy/test.sh: Permission denied
[oldboy@oldboyedu-40-nb oldboy]$ ls -l
total 4
-r-xr-xr-x 1 oldboy incahome 45 Sep 4 16:10 test.sh
[oldboy@oldboyedu-40-nb oldboy]$ /oldboy/test.sh
hello oldboyedu.com
oldboyedu-40-nb
/oldboy
oldboy
[oldboy@oldboyedu-40-nb oldboy]$ cat /oldboy/test.sh
echo hello oldboyedu.com
hostname
pwd
whoami
1.8.4 文件的rwx小结:
r 查看文件的内容
w 修改文件的内容 需要r权限配合
x 执行文件的权限 需要r权限配合
1.9 测试 目录 rwx含义
r 显示目录里面的内容 ls
w 对目录里面的内容 :可以在目录中 删除 创建文件
x 进入到目录中的权限 是否能查看目录里面的文件的属性信息
环境创建:
mkdir /oldboy/oldboydir -p
touch /oldboy/oldboydir/{1..3}.txt
tree
chown oldboy.incahome oldboydir/
1.9.1 测试目录的 r 显示目录里面的内容 ls
[root@oldboyedu-40-nb oldboy]# chmod u=r oldboydir/
[root@oldboyedu-40-nb oldboy]# ls -ld oldboydir/
dr--r-xr-x 2 oldboy incahome 4096 Sep 4 16:28 oldboydir/
[oldboy@oldboyedu-40-nb oldboy]$ ls -l oldboydir/
ls: cannot access oldboydir/1.txt: Permission denied
ls: cannot access oldboydir/2.txt: Permission denied
ls: cannot access oldboydir/3.txt: Permission denied
total 0
-????????? ? ? ? ? ? 1.txt
-????????? ? ? ? ? ? 2.txt
-????????? ? ? ? ? ? 3.txt
[oldboy@oldboyedu-40-nb oldboy]$ stat oldboydir/1.txt
stat: cannot stat `oldboydir/1.txt': Permission denied
对于目录来说 r权限需要有人配合 x权限
1.9.2 测试目录的 w
对这个目录拥有 w权限
w权限需要 x配合
1.10 小结:
1.对于目录来说 w权限 表示 你是否可以在目录中 删除 创建文
2.需要有x的配合
[oldboy@oldboyedu-40-nb oldboydir]$ \rm -f oldboy.txt
rm: cannot remove `oldboy.txt': Permission denied
[oldboy@oldboyedu-40-nb oldboydir]$ #删除一个文件 文件所在目录的权限 要有wx权限
如果你想在一个目录下面创建 删除文件 要看你对这个目录是否有wx权限
测试目录的 x
进入到这个目录权限
是否能查看目录里面文件的属性
1.11 目录rwx含义小结:
r 显示目录里面的内容 ls 需要x配合
w 对目录里面的内容 :可以在目录中 删除 创建文件 需要x配合
x 进入到目录中的权限 是否能查看目录里面的文件的属性信息
第2章 总结:
1.linux快捷方式
2.回顾vi/vim
3.linux权限-如何知道你对某个文件拥有什么权限
4.文件rwx含义
5.目录rwx含义
2.1 课后题目:
[oldboy@oldboyedu-40-nb oldboydir]$ ls /root/
ls: cannot open directory /root/: Permission denied
[oldboy@oldboyedu-40-nb oldboydir]$ \rm -f /etc/passwd
rm: cannot remove `/etc/passwd': Permission denied
[oldboy@oldboyedu-40-nb oldboydir]$ touch /etc/oldboy.txt
touch: cannot touch `/etc/oldboy.txt': Permission denied