- 论坛徽章:
- 0
|
我今天和老师学了点Linux 的基础知识 觉得挺有收获 所以我想这个对所有象我一样的菜鸟一定很有用
所以就整理了一下,希望能够与大家共同进步 将来能够为祖国四化贡献力量
· 文件/目录许可
使用 ls –l 查看文件/目录的许可
使用命令chown改变文件/目录的所有权
使用chgrp命令修改文件/目录的组
使用chmod改变文件/目录的访问特权。
(1)
运行命令 :
ls -l
显示
-rwxrw-r-x 1 root root 512 Feb 6 21:11 t.txt
其中含义如下:
-rwxrw-r-x :文件存取许可。
1 : 链接编号
root : 拥有者
root : 组
其余依次是文件大小,修改时间,文件名
使用touch命令新建文件。如:touch t.txt
4 2 1
用户 Set-uid
(4) 读(r) 写(w) 执行(x)
组 Set-gid
(2) 读(r) 写(w) 执行(x)
其他 Sticky
-bit(1) 读(r) 写(w) 执行(x)
(Sticky-bit:要求系统在内存中保留可执行程序的镜像,降低大程序启动时间的外部措施。)
其中 数字4代表读2代表写1代表执行 同样 r w x 分别代表读 写 执行
例如 d rwx r-x --x
第一位:它是目录
2-4位 :用户 所具有的权限
5-7为 :组 所拥有的权限
8-10为:其他用户/组 的权限
(2)chown命令
命令格式如下:
chown 用户 文件/目录
例如:chown lianxj test.txt
或者用此命令:
chown 用户/组 文件/目录
例如:chown lianxj.lianxj test.txt
或者用此命令:
chown -R 用户/组 目录(目录下所有文件/目录)
例如:chown –R lianxj.lianxj /plans
(3)chgrp命令
使用方式:chgrp [-R] groupname name ( name 可为文件名或目录名 )
例如:chgrp lianxj file1
将文件 file1 的群组拥有权,改为 lianxj群组。
(4)chmod命令
两种方法如下:
数字的形式,字符串的形式
第一种:读:4 写 :2 执行:1
chmod 755 test.txt
拥有者:4+2+1=7 读写执行
所处的组:4+1=5 读执行
其它:4+1=5 读执行
(1)chmod 666 test.txt
-rw-rw-rw- 。。。。 test.txt
(2)chmod 7666 test.txt
-rwSrwSrwT 。。。。test.txt
(3)chmod 555 test.txt
-r-xr-xr-x 。。。。test.txt
(4) chmod 7555 test.txt
-r-sr-sr-t 。。。。test.txt(如果具有可执行权限会由x变成小写s,t。
第二种:
拥有者(用户):u 组:g 其它:o
所有用户:用 a 表示
chmod u+rx,g+r,o+x test.txt 加号代表:使之拥有某权限
chmod u+x,g-r,o-x test.txt
chmod a+rx,u+w test.txt
chmod u+s,g+s,o+t test.txt
chmod u-s,g-s,o-t test.txt 此句会变成原来模式s的位变成x,t的位会变成x
链接问题
硬链接(占用空间)
ln source dist
例:ln test.txt plan
-rwxrw-r-x
plan和原文件具有相同大小,相同的设置。
软链接(不占用空间)
ln –s source dist
例如:ln –s test.txt plan
改变对硬链接的所有权或许可,影响到原文件。
chown lianxj plan
然后用ls –l比较修改前后的不同(两个都变)。
对与软链接则不同。(互不影响)
chown lianxj plan
只改变了plan的拥有者,对原文件没有起作用。但是lianxj用户不能写plan,除非文件在lianxj所属的目录。
对软链接文件的许可设置会对plan文件产生新设置。
lrwxrw-r-x …….. plan->;test.txt
chmod 666 plan(对原文件起作用,不对plan起作用)
-rw-rw-rw- …….. test.txt
对于硬链接无论对哪个文件进行chmod操作,都会对两个文件起作用。
·常用命令
常用命令(1)-文件和目录的基本命令
目录和文件命令时使用的通配符
如ls ,cp,find等命令
* 匹配任意顺序的一个或多个字符
? 匹配任意单个字符
[ ] 匹配一组封闭字符或范围
t* 以t为开头的文件
t*t 以t为开头以t为结尾的文件
t*l*s.c 以t为开头,包含l,以s.c结尾的文件
?.h 文件名以一个字符开始,以.h结尾的文件。
Doc[0-9] 名为Doc0到Doc9的文件
Doc[a-z] 名为Doca到Docz的文件
正则表达式基础
. 匹配任意单个字符
* 匹配一个或多个字符
^ 匹配一行的开头
$ 匹配一行的结尾
\< 匹配一个词的开头
\>; 匹配一个词的结尾
[ ] 匹配一组封闭字符或一定范围内的字符
[^] 匹配没有包含在内的任意字符
\ 跟随符号的字面含义
例如:
grep foo data.txt
grep ‘^foo’ data.txt
grep ‘hello$’ data.txt
grep ‘\<ki’ data.txt
grep ‘wee\>;’ data.txt
grep ‘C..h’ data.txt
grep ‘B[A-Za-z]h’ data.txt
接着我要介绍如下命令
cat
chmod
chown
clear
cmp
cp
cut
diff
du
file
find
grep
head
ln
ls
mkdir
mv
pwd
rm/rmdir
stat
tail
touch
wc
whatis/whereis/which
cat [-AbeEnstTuv] [--help] [--version] fileName
命令的作用:显示文件内容
参数:
-n 或 –number: 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank: 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank :当遇到有连续两行以上的空白行,就代换为一行的空白行
例子:
cat -n textfile1 >; textfile2
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -b textfile1 textfile2 >;>; textfile3
把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3
(2)clear
指令:clear 用途:清除屏幕用。
使用方法:输入 clear。
(3)cmp
cmp –ls file1 file2(比较两文件内容)
参数:
-l : 输出不同字符的位置,并输出字符的不同之处。
-s : 如果文件相同返回0,不同返回1,出错返回 >;1的数字
例如:
文件file1的内容为: this is file 1.
文件file2的内容为: this is file 2.
cmp file1 file2
会显示如下信息:file1 file2 differ: char 14,line 1
cmp –l file1 file2
会显示如下信息:14 61 62
(4)cp
名称:cp 此命令的使用权限为所有使用者 通用
cp [options] source dest
cp [options] source directory
-a 尽可能将档案状态、权限等资料都照原状予以复制。
-r 若 source 中含有目录名,则将目录下之档案依序拷贝至目的地。
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
范例:
将档案 aaa 复制(已存在),并命名为 bbb
cp aaa bbb
将所有的C语言程式拷贝至 test 目录中
cp *.c test/
cp –r test1 test2(test1目录下的文件复制到test2(如果不存在会生成test2目录,复制文件到test2目录下)目
录。如果存在test2目录会把整个test1放到test2。
(5)cut
名称:cut 使用权限:所有使用者
用法:cut -cnum1-num2 filename
显示每行从开头算起 num1 到 num2 的文字。
cat test.txt
cut -c0-6 test.txt ## 输出每一行的前 6 个字元 test 2 this i
(6)diff
diff –iqb file1 file2
与cmp相比cmp以字符为单位比较,diff以行为单位比较。
(7)du
du –ask filename或不写
-a 逐步显示每个目录和文件大小
-s 显示合计数
-k 所有文件的kb字节数
( file
file filename
确定文件类型
(9)find
find path –type fdl –name pattern 其他选项
path 指路经
-type fdl f 指文件 d 指目录 l 指链接
例如:
find . -type f -name *.txt
find . -type f -empty(当前目录结构下所有空文件。)
(10)head
head -count | -n number filename
显示文件的头几行
例如:
head -2 test.txt
会显示头两行的内容
(11)ls
使用方式 : ls [-alrtAFR] [name...]
-a 显示所有档案及目录 (ls内定将档案名或目录名称开头为"."的视为隐藏档,不会列出) -l 档案名称,档案型
态、权限、拥有者、档案大小等资讯详细列出 -r 将档案以相反次序显示(原定依英文字母次序) -t 将档案依
建立时间之先后次序列出
-A 同 -a ,但不列出 “.” (目前目录) 及 “..” (父目录) -F 在列出的档案名称后加一符号;例如可执行档则加 “*”,
目录则加 “/” -R 若目录下有档案,则以下之档案依序列出
例如:
ls -al
(12)mkdir
创建目录
mkdir dir
mkdir dir1 dir2 dir3
(13)mv
mv [options] source dest
mv [options] source directory
说明:将一个档案移至另一档案,或将数个档案移至另一目录。
参数:-i 若目的地已有同名档案,则先询问是否覆盖旧档。
将档案 aaa 更名为 bbb : mv aaa bbb
将所有的C语言程式移至 Finished 子目录中 : mv -i *.c test/
(14)pwd
显示当前所处的位置
使用方法:输入pwd
(15)rm
使用方式:rm [options] name
说明:删除档案及目录。
-i 删除前逐一询问确认。
-f 即使原档案属性设为只读,也直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
删除前逐一询问确认 : rm -i *.c
将 test 子目录及子目录中所有档案删除 : rm -rf test(结果test下文件和test目录被删除)
(16)rmdir
删除目录命令-只有这目录空时删除成功。
rmdir test
rmdir –p test(如果删除test目录后test所处的目录也空,这是会删除test的父目录。
例如:test1目录下有空目录test2
rmdir –p test1/test2
(17)stat
显示文件或目录的各种统计
stat file
例如:
stat test.txt
(1 tail
tail -count | -fr filename
显示文件尾的几行
-f 监视文件,写新数据停止监视用ctrl+c退出
-n 行数
例如:
tail -10 test.txt / tail –n 10 test.txt
(19)touch
更新文件或目录的时间戳
touch file or directory
如果文件不存在新建空文件
touch test.txt(如果有会更新时间,如没有会生成一个文件。可以用stat或ls -l命令查看)
(20)wc
wc –lwc filename
计算文件行数,字符数,单词数。
-l 显示行数
-w 显示单词数
-c 显示字符数
(21) whatis/whereis/which
显示命令的基本信息
例如:
whatis ls
whereis find
which cd |
|