一、基础概念:
1、CPU(slice):运算器(线路复用)、控制器(芯片针脚有电没电)、寄存器(保存现场);
interrupt(中断,硬件通知机制),FSB(frontside bus前端总线),1GHZ=10^9HZ(1KHZ=10^3HZ);
存储器(分段,虚拟地址空间,32bit最多使用4G物理内存):RAM、ROM;
程序局部性原理:时间上(频繁使用的数据—>缓存),空间上;
程序的移植(底层芯片)。
Input/Output device:
2、低级语言:机器语言;微码(芯片自带,汇编语言)->编译器
高级语言:API(application program interface);库(虚拟设备,程序,调用接口,只能被调用)
3、硬件架构:ARM系列(高通)、X86(intel/amd)、X64(AMD)、安腾(intel从HP收购)、alpha(HP)、UtralSparc(SUN)、power(IBM)、M68000 (M68K,motorola)、powerpc
4、OS:windows、Linux、UNIX泛称(HP Unix、Solaris(SUN)、AIX(IBM)、SCO Unix、UnixWare)
5、shell:GUI(graphicaluser interface,GNOME/KDE/Xface);CLI(command line interface,prompt(#,$),bash/csh/zsh/ksh/tcsh);虚拟终端(CLI下的terminal;模拟终端(GUI下打开的terminal)
6、两大雷锋实验室Bell Labs(Alcatel-Lucent阿尔卡特朗讯)、parc(Xeron施乐);GPL,BSD,apache三个开源协定;www.kernel.org
7、内核功能:进程管理、内存管理、文件系统、网络功能、硬件驱动、安全机制
8、redhat(rpm),debian(dpt),suse,SLS,centos,mandriva,Ubuntu,fedora
9、Linux的基本原则:由目的单一的小程序组成(组合小程序完成复杂任务);一切皆文件;尽量避免捕获用户接口(不与用户交互);配置文件保存为纯文本格式
10、 RH401,RH423,RH442(系统调优),RH436(集群),RHS333(加密机制)
11、 IDE(integrated developmentenvironment集成开发环境)( Integrated Device Electronics集成器件电子技术)
12、 windows(dll,dynamic linklibrary);linux(.so,shared object)
13、 认证(authentication);授权(authorization);审计(Audition,日志)
14、 程序的执行入口(魔数magic number,提示二进制程序的执行格式,如脚本的第一句#!/bin/bash)
15、 目录也是文件,是路径映射;路径(从指定起始点到目的地所经过的位置);层次化管理的机制(filesystem);绝对路径(从根开始);相对路径;进入系统默认位置(working directory,current directory)
16、 密码复杂度规则:使用4种类别字符中至少3种;足够长,大于7位;使用随机字符串;定期更换;循环周期足够大(与近期24次的密码不一样)。例如:6位密码:10^6(仅数字)、36^6(字母数字组合)、62^6(大小写加数字、100^6(全键盘组合))
17、 在linux下操作的每一条命令,没有任何消息就是最好的信息,表示操作成功
18、 文件的命令规则:长度不能超过255个字符;不能使用/斜线slash作文件名,除此之外其它都可,但不建议使用其它字符,如空格、星号等;严格区分大小写
二、命令:
1、语法:
#COMMAND [option]... arguments
命令中[]表示可选,<>表示必选,...表示可出现多次,|表示多选一,{}表示分组
option(选项:修改命令的执行特性):短选项-(多个短选项可以组合);长选项--
arguments(参数:指定命令的作用对象)
命令类型:内置命令(SHELL内置)、外部命令(某一路径下有与命令名称相应的可执行文件)
#type COMMAND(查看命令属于哪种类型)
#help COMMAND(内部命令获得帮助信息)
#COMMAND --help(外部命令获得简要帮助)
man的使用:
#man COMMAND(manual命令手册,文本文档,压缩存放,内部命令用man查看的是bash的帮助)
man的几个部分:
Name(命令名称及功能简要说明)
Synopsis(用法说明,包括可用的选项)
Description(命令功能的详尽说明,包括每一个选项的意义)
Options(说明每一个选项的意义)
FILES(此命令的相关文件)
BUGS
EXAMPLES(使用示例)
See also(另外参照)
man分8章节:1用户命令;2系统调用;3库调用;4特殊文件(设备文件,进入设备的入口);5文件格式(配置文件语法);6游戏;7杂项;8管理命令(硬件参数及系统级别配置/sbin,/usr/sbin,/usr/local/sbin)
举例:
#whatis passwd(查看此命令有几个章节的帮助信息)
#man 5 passwd(查看/etc/passwd配置文件的语法说明)
man常用快捷键
空格space向后翻一屏
b向前翻一屏backspace
<Enter>向后翻一行
k向前翻一行
查找/KEYWORD(由前到后查找,?KEYWORD后到前查找,n查找下一个匹配项,N查找前一个匹配项)
q退出
/usr/share/doc/(几乎每一个命令在此目录下都有相关文档)
#info COMMAND(在线文档帮助,查看内容更详细,支持链接跳转)
2、常用命令:
目录管理:ls,cd,pwd,mkdir,rmdir,tree
#ls -l FILE
文件类型:-(f,普通文件)|d(directory)|b(block device)|c(character device)|l(symbolic linkfile)|p(pipe)|s(socket)
文件权限:rwxrwxrwx
文件硬链接次数
文件属主
文件属组
文件大小(默认字节)
时间戳(timestamp)最近一次被修改的时间(访问access;修改modify(文件内容);改变change(文件属性),文件属性数据:元数据metadata,inode(index node))
-h(humanreadable做单位换算)
-a(显示以点.开头的隐藏文件)
-A(显示全部文件不显示.及..)
-d(显示目录自身属性)
-i(显示文件的索引节点号inode)
-r(reverse反向显示,逆序显示)
-R(recursive递归显示)
#cd(change directory,使用#cd直接回车,表示回到当前用户家目录home directory)
#cd ~USERNAME(进入指定用户的家目录,仅管理员用)
#cd -(在当前目录和前一次所在目录之间来回切换)
#cd ..(切至上一级目录)
#cd ../..(切至上两级目录)
# mkdir [OPTION]... DIRECTORY...(makedirectory,创建空目录)
#mkdir /backup
#mkdir -p /backup/test/(-p表示父目录及其下的目录一块创建--parents)
#mkdir -pv /backup/test/1/2(-v表示显示详细信息--verbose)
#mkdir -pv /backup/{a,c}_{b,d}(创建a_b,a_d,c_b,c_d目录)
#tree /backup(查看目录树)
#pwd(print name ofcurrent/working directory查看当前所在目录)
# rmdir [OPTION]... DIRECTORY...(remove emptydirectories删除空目录)
#rmdir /backup/test/1/2
文件管理:touch,stat,file,rm,cp,mv,install
# touch [OPTION]... FILE...(change filetimestamp,改变文件时间戳,可用于创建文件)
#touch /backup/test1(创建文件,注意目录和文件不能同名)
#cd /backup
#stat /backup/test1(显示文件的状态信息)
#touch -a test1(change onlythe access time,atime文件访问时间)
#touch -m test1(change onlythe modification time,mtime文件修改时间(文件修改时间指内容))
#touch -a -t 1507111430 test1(用指定时间改变文件的访问时间)
#touch -c test1(-c表示不创建文件—no-create,更改文件的所有时间atime,mtime,ctime(文件改变时间指属性))
#cp [OPTION]...SOURCE[...] DEST|DIRECTORY(copy,可复制一个文件到一个文件,或多个文件到一个目录)
options:
-r(--recursive递归复制,目录及其下的子目录或文件)
-p(--preserve=mode,ownership,timestamps保留文件属性信息)
-i(--interactive交互模式,询问)
-f(--force强制复制)
-a(--archive, -dr --preserve=all,常用于备份)
#cp -p /etc/{passwd,inittab,rc.d/rc.sysinit} /tmp/
#mv SRC DEST(移动或改名)
#mv -t DEST SRC(先指定目标)
#file /bin/ls(查看文件类型,ELF:executable link file;windows下类似此文件为PE,portable execute)
#file test.txt(ASCII text,america standard code for information interchange,7位即可表示128个字符2^7(0-127),1byte=8bit;汉字2^16(0-65535)65536个字符,国标GB/8030,GBK,GB2312,Unicode(utf-8,universalcode全球编码))
#file sum.sh(Bourne-Again shell script text executable)
#install [options] SRC DEST(copy files and setattributes)
#install -m 644 /tmp/test.txt /tmp/test1.txt(复制文件,并设置权限,若无-m指定权限则默认复制的文件都为755)
#install -d /tmp/install.1(创建空目录)
#install -t /tmp/install.1 /tmp/test.txt(复制test.txt到/tmp/install.1目录下,注意不加-m默认复制文件的权限为755)
#rm [OPTION]... FILE...(remove filesor directories删除文件或目录)
option:
-r(--recursive递归)
-f(--force强制)
#rm -rf /backup/*(删除指定目录下所有文件及目录)
日期时间:
RTC(real time clock)、ntp(network timeprotocol)
linux分:硬件时钟、系统时钟
#date [options]... [+FORMAT]
#date(查看的是系统时钟,根据CPU的繁忙程度系统时钟有可能不准)
#date -s 20150711(调整系统日期)
#date -s 14:20:20(调整系统时间)
#date +%F(显示日期年月日,完整格式为%Y-%m-%d)
#date +%T(显示日间时分秒,完整格式为%H:%M:%S)
#date +”This year is %Y.%nToday is %d.”(%n表示换行)
#clock(查看硬件时钟,此命令是链接文件链接到/sbin/hwclock)
#hwclock(query and set thehardware clock (RTC)查看或设置硬件时钟)
#hwclock -w(--systohc,系统时钟同步到硬件时钟)
#hwclock -s(--hctosys,硬件时钟同步到系统时钟)
#cal(calendar显示当月日历)
#cal 2015(显示2015年全年日历)
#cal 07 2015(显示指定月日历)
文本查看与处理:cat,tac,more,less,head,tail,cut,sort,uniq,wc,tr,sed,grep,awk
#cat [-n|-E] FILE(-n显示行号,-E显示结束符,linux的文本文件的结束符是$或换行符)
#tac FILE(concatenate and print files in reverse,cat显示的最后一行是tac显示的第一行,反向显示)
#more FILE(分屏查看,向后翻,翻至尾部直接退出)
#less FILE(分屏查看,man就是通过调用less打开文件的)
#head -n # FILE(仅查看文件的头#行)
#tail -n 5 FILE(仅查看文件的后5行)
#cut -d: -f1,3 /etc/passwd(-d,--delimiter指定分隔符;-f,--fields指定第几列,字段)
#sort [option] FILE(排序,仅影响显示,不影响源文件内容,逐个字符从左至右默认按ASCII码表排序)
option:
-n(--numeric-sort按数值排序)
-r(--reverse反向排序,降序排序)
-t(--field-separator字段分隔符)
-k(--key-pos1,pos2以哪个字段为关键字进行排序)
-u(--unique排序后相同内容只显示一次)
-f(--ignore-case忽略字符大小写)
例:#sort -t: -k3 -n /etc/passwd
#uniq(report or omitrepeated lines,同#sort -u FILE,重复行是相邻且重复的行,如一文本中有三行重复但不相邻则不是重复行)
option:
-d(--repeated,仅显示重复的行)
-D(--all-repeated,重复的行全部显示)
-c(--count,显示每一行重复行的次数)
#wc FILE(word ...counts文本统计,显示结果为行数,单词数,字节数)
option:
-l(--lines只显示行数)
-w(--words只显示单词数)
-c(--bytes只显示字节数)
-m(--chars只显示字符数,同字节数)
-L(--max-line-length最长的一行有多少字符数)
#tr [option] SET1 [SET2] < FILE(translate ordelete characters转换或删除字符,SET表示字符集)
option:
-d(--delete删除指定字符)
#tr ‘ab’ ‘A-Z’ < /tmp/text.txt(将文件中所有字母转为大写)
#echo “abcdefg” | tr -d “abc”(删除显示指定字符)
压缩、解压缩:
常见压缩格式:gz,bz2,xz,zip,Z
算法不同,压缩比也会不同,压缩前与压缩后的大小不同
#gzip -# /PATH/TO/SOMEFILE(仅压缩文件,不能压缩目录,压缩完成后会删除源文件,#表示压缩比1-9,默认为6)
#gunzip /PATH/TO/SOMEFILE.gz(解压缩,解压完后会删除源文件)
#gzip -d /PATH/TO/SOMEFILE.gz(解压缩)
#zcat FILE.gz(不解压查看压缩的文本文件内容)
#bzip2 -# FILE(比gzip有更大的压缩比,但小文件不明显,用法与gzip相同)
#bzip2 -k FILE(保留源文件压缩)
#bzip2 -d FILE.bz2(解压缩,同#bunzip2)
#bzcat FILE.bz2(不解压查看文本文件内容)
#xz -# FILE(redhat6中工具)
#xz -k FILE
#xz -d FILE.xz(同#unxz)
#xzcat FILE.xz
#xzdec FILE.xz(同#xzcat)
#zip DEST SRC(归档并压缩,归档archive本身并不意味着压缩)
#zip /tmp/test.zip /tmp/{test1.txt,test2.txt}
#unzip /tmp/test/zip -d /root/(-d指定解压到某一目录下)
#tar options DEST SRC
options:
-c(--create创建归档)
-f(--file操作的归档文件)
-x(--extract还原归档)
-t(--list不展开归档查看归档了哪些文件)
-v(--verbose详细信息)
--xattrs(归档时保留文件的扩展属性)
-zcf(归档并调用gzip压缩)
-zxf(调用gzip解压缩并展开归档)
-jcf(归档并调用bzip2压缩)
-jxf(调用bzip2解压缩并展开归档)
-Jcf(归档并调用xz压缩)
-Jxf(调用xz解压缩并展开归档)
-C(指定解压目录)
#tar -cf /root/sum.tar /tmp/{sum1.sh,sum2.sh}(注意归档时若要归档的文件明确指定了路径,归档文件中也有对应的路径)
#cd /tmp
#tar -cf /root/sum.tar sum1.sh sum2.sh(注意归档时若要归档的文件没指定路径在当前目录下,查看归档文件时也无路径)
#tar -jcf sum.tar.bz2 sum1.sh sum2.sh sum.sh
#tar -jxf sum.tar.bz2 -C /root/tmp/(解压时-j可省,如#tar -xf sum.tar.bz2 -C /root/tmp,tar会自动识别文件名后缀并找到相应工具解压缩,但创建压缩文件时不可省略)
#echo “this year is 2015.”(显示输入数据)
#echo -n “this year is 2015.”(-n表示显示完内容不换行)
#echo -e “this year is 2015.\nthismonth is 07.”(-e启用反斜线功能,\n)
#echo -e “\033[31mHello,world!\033[0,”(31m中3表示控制前景色(换为4表示控制背景色),1表示红色(1-7可指定不同颜色),也可同时控制前景色与背景色如\033[32;41m,\033[1;32;41m其中1表示加粗(5表示闪烁,7表示前景色与背景色反过来))
#printf “this year is 2015.\nthis month is 07.\n”(格式化输出数据,默认不换行)
\\ backslash
\a alert (BEL)
\b backspace
\c produce no further output
\e escape
\f form feed
\n new line
\r carriage return
\t horizontal tab
\v vertical tab
文件名通配(#man 7 glob):
*任意长度任意字符
?任意单个字符
[]匹配指定范围内的任意单个字符,如[abc],[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]
[^]匹配指定范围外的任意单个字符,如[^0-9]非数字
字符集合:[:space:]空白字符,[:punct:]标点符号,[:low:]小写字母,[:upper:]大写字母,[:alpha:]大小写字字母,[:digit:]数字,[:alnum:]大小写字母数字
[[:space:]]外面的中括号表示引用
例:#touch ‘a b’
#ls [[:alpha:]]*[[:space:]]*[[:alpha:]](查找以字母开头字母结尾中间有空白字符)
文件查找:
#locate FILE(此方式是根据系统文件数据库进行的,非实时查找且是模糊匹配)
#updatedb(手动生成文件数据库,新装的系统可能此文件数据库,需手动生成)
#find 查找路径 查找标准 处理动作action(实时查找,精确匹配,支持众多的查找标准,遍历指定目录中的所有文件,速度慢)
查找标准:
-name ‘FILENAME’(对文件名作精确匹配,区分大小写,支持通配符*?[])
-iname ‘FILENAME’(对文件名作精确匹配,不区分大小写,支持通配符)
-regex PATTERN(基于模式进行文件名匹配)
-user USERNAME(根据属主查找)
-group GROUPNAME(根据属组查找)
-uid UID(用户删除后,查看该用户的文件时显示的是UID和GID)
-gid GID
-nouser(查找无属主文件)
-nogroup
-type f|d|c|b|l|p|s
-size [+|-]#k|#M|#G (#是数字)
-mtime|-ctime|atime [+|-]#(-5表示5天内,+5表示5天前,5表示第5天)
-mmin|-cmin|-amin [+|-]#
-perm mode|-mode|/mode(/644表示有任意一位匹配即可,-644表示要查找的文件权限能完全包含644例如755)
组合条件:-a|-o|-not
处理动作:
-print(默认)
-ls(类似ll形式显示每一个文件)
-ok COMMAND {} \;(每一次都需确认,{}表示查找到的文件,)
-exec COMMAND {} \;(不需确认)
举例:
1、查找/var下属主为root且属组为mail的所有文件
#find /var -user root -a -group mail
2、查找/usr下不属于root、bin、stu的文件
#find /usr -not \( -user root -o -user bin -o -user stu \)
3、查找/etc下最近一周内内容修改过且不属于root及stu用户的文件
#find /etc -mtime -7 -not \( -user root -o -user stu \)
4、查找当前系统上没有属主或改组且最近1天内被访问过的文件,并将属主属组改为root
#find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root.root {} \;
5、查找/etc下大于1M的文件,将文件名写入/tmp/etc.largefiles文件中
#find /etc -size +1M >> /tmp/etc.largefiles
#find /etc -size +1M -exec echo {} >> /tmp/etc.largefiles \;
#find /etc -size +1M | xargs echo >> /tmp/etc/largefils
6、查找/etc下所有用户都没写权限的文件,显示出其详细信息
#find /etc -not -perm \222 -ls
Linux文本处理三剑客:grep(文本过滤器)、sed、awk(报告生成器)
正则的使用:
REGEXP:basic REGEXP;extendedREGEXP(#egrep或#grep -E);
1、 basic REGEXP:
字符匹配:
.(匹配任意单个字符);
[](匹配指定范围内的任意单个字符;
[^](匹配指定范围外的任意单个字符);
[:digit:][:lower:][:upper:][:punct:][:space:][:alpha:][:alnum:](字符集合)
次数匹配:
*(匹配其前面的字符任意次);
.*(任意长度任意字符);
\?(匹配其前面的字符0次或1次);
\{m,n\}(匹配其前面的字符至少m次,最多n次);
位置锚定:
^(锚定行首,此字符后面的任意内容必须出现在行首);
$(锚定行尾,此字符前面的任意内容必须出现在行尾);
^$(空白行)
锚定词:
\<或\b(词首,其后的任意字符必须作为单词的首部出现);
\>或\b(词尾,其后的任意字符必须作为单词的尾部出现);
分组:
\(\) \1,\2,\3,....(向后引用,例如:匹配like和liker,love和lover:#grep ‘\(l..e\).*\1’ test.txt)
举例:
#grep ‘[[:digit:]]$’ /etc/inittab
#grep ‘[[:space:]][[:digit:]]’ /etc/inittab
#grep ‘\<r’ /etc/passwd (以下两例同此句比较#grep ‘r’ /etc/passwd)
#grep ‘r\b’ /etc/passwd
#grep ‘\<bash$’ /etc/passwd
2、 extended REGEXP:
字符匹配:
.
[]
[^]
次数匹配:
*
?
+(匹配其前字符至少1次);
{m,n}
位置锚定:
^
$
\<(词首);
\>(启尾);
分组:
()
\1,\2,\3,...
或者:
|
举例:精确匹配#ifconfig中所有IP地址(不包括广播地址及子网掩码)
#ifconfig | egrep -o'\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>'
sed(stream editor):行编辑器、全屏编辑器,把每行读到内存空间(模式空间),默认不编辑源文件,仅对模式空间的数据作处理,处理结束将模式空间打印至屏幕;
#sed [options] ‘AddressCommand’ file1...
options:
-n(静默模式,不再显示模式空间的行,不加-n默认是打印模式空间);
-i(直接修改源文件);
-e(后接脚本或编辑好的语句,如#sed -e SCRIPT -e SCRIPT FILE,可以同时执行多个脚本);
-f(后接脚本文件,如#sed -f /PATH/TO/FILE FILE);
-r(表示使用扩展正则表达式)
Address:
start line,end line;(起始行,结束行,例如:1,13)
/pattern/(//中间是正则表达式)参照shell基础中正则表达式的用法
/pattern1/,/pattern2/(第一次被模式1匹配到的行开始到第一次被模式2匹配到的行结束,中间的所有行);
linenumber(指定行);
startline,+N(从startline开始向后N行)
Command:
d(删除符合条件的行);
P(显示符合条件的行);
a \string(在指定的行后追加新行,内容为string);
i \string(在指定的行前添加新行,内容为string);
r FILE(将指定文件的内容添加至符合条件的行处);
w FILE(将指定范围内的行另存至指定的文件中);
s/pattern/string/修饰符(查找并替换,不加修饰符g默认只替换第一次被模式匹配到的字符串,修饰符(g全局替换,i查找时忽略大小写),s///也可用s###,s@@@等其它符号)
举例:
#sed ‘/^\//a # hello linux’ /etc/fstab (在行首是/的行后追加# hello linux)
#sed ‘/^\//a # hello linux\n# hello world’ /etc/fstab (在行首是/的行后追加两行)
#sed ‘$r /etc/issue’ /etc/fstab (在末行后添加指定文件内容,此例可用做文件合并)
#sed ‘1,2r /etc/issue’ /etc/fstab (在第一行和第二行后都追加指定文件的内容)
#sed ‘/oot/w /tmp/oot.txt’ /etc/fstab (将查询到的含oot的行另存至指定文件/tmp/oot.txt)
#sed ‘s/oot/OOT/g’ /tmp/oot.txt (将查询到含oot的全部替换为大写)
#sed ‘s/^\//#/g’ /etc/fstab (将行首的/全部替换为#)
#sed ‘s#l..e#&r#g’ test.txt (&r匹配模式里的整个字符串,将文件中like或love均替换为liker或lover)
#sed ‘s#\(l..e\)#\1r#g’ test.txt (同上例)
#sed ‘s#l\(..e\)#L\1#g’ test.txt (将文件中like或love替换为Like或Love)
#sed -r ‘s/^[[:space:]]+//g’ /etc/grub.conf (删除行首的空白字符)
#history | sed ‘s#^[[:space:]]##g’ (功能同上例)
#sed ‘s@\(id:\)[0-9]\(:initdefault\)@\15\2@g’ /etc/inittab (将行id:3:initdefault中的3替换为5)
#sed ‘/^$/d’ /etc/inittab (删除空白行)
#sed ‘s/^#//g’ /etc/inittab (删除文件中开头的#)
#sed -r ‘s/^#[[:space:]]+//g’ /etc/inittab (删除文件中开头的#,且#后必须有空白字符)
#sed -r ‘s@^[[:space:]]+#@@g’ test.txt (删除文件中以空白字符开头后跟#的行)
#echo “/etc/rc.d/” | sed -r ‘s@^(/.*/)[^/]+/?@\1@g’ (取出一路径中上一层目录的名称)
以上是学习《马哥网络视频》做的笔记
一、Linux简介
1、常见的UNIX:
AIX IBM
HP-UX HP
Solaris SUN
2、常见的LINUX:
1)RedHat系列:RHEL、Fedora、CentOS、SUSE、gentoo、红旗、Mantriva、turbolinux;
2)Debian系列:Unbuntu。
3、Linux优点:开源、免费、稳定、安全;缺点:易用性差、厂商支持性差。
4、Linux分区表示:
1)主分区+扩展分区最多只能分4个;
2)扩展分区最多1个,且不能格式化也不能写入数据,它只包含逻辑分区;
例:sda5表示第一块硬盘第一个逻辑分区;
3)根分区、SWAP分区为必须分区;/boot、/home 、/www,为常用分区。
5、注意:
1)Linux下所有内容都是文件,包括硬件;
2)严格区分大小写;
3)不以扩展名区分文件类型,而是靠权限,但有特例,如压缩文件、RPM包文件;
4)所有可存储设备都必须挂载使用,包括硬盘。
6、密码原则:复杂性、易记性、时效性。
7、Linux命令提示符:[当前登录用户@当前主机名 当前所在目录的最后一个目录]#
二、常用命令(一)
格式:命令 [选项/option] [参数/parameter]
>目录操作命令
1、ls (list) (显示目录下的内容)
#ls[-a|-l|-h|-d|-i]
-l long长格式显示
-h human人性化显示,如可自动显示文件大小
2、cd (change directory) 改变目录,shell内置命令
#cd[-|~|..]
相对路径:参照当前所在目录进行查找,一定要先确定当前所在目录;
绝对路径:从根目录开始指定,一级一级递归查找,在任何目录下都能进入指定位置。
3、#pwd(printworking directory) 显示当前所在目录
4、mkdir (makedirectory) 创建目录
#mkdir -p /11/22/33/44 递归建立目录
5、rmdir(remove directory) 只能删除空目录
#rmdir 目录 不常用,一般使用#rm –rf 目录或文件
6、#tree 目录名 显示指定目录下所有内容的目录树
>文件操作命令
1、#touch 文件名 创建空文件或修改文件时间
2、#rm –rf 目录或文件名
3、#cat –n 文件名 查看文件内容,-n可列出行号
4、#more 文件名 分屏显示文件内容,快捷键:空格、b、q
5、#less 文件名 分行显示文件内容
6、#head -n 行数 文件名 显示文件头;-n 行数(指定显示头几行)
7、#tail -n 行数 文件名 显示文件尾;-f(监听文件尾,不退出,适合监听实时文件)
>文件和目录都能操作的命令
1、#rm 删除文件或目录
2、#cp [-r|-p|-d|-a] 源文件 目标位置
-r 复制目录
-p 连带文件属性复制
-d 若源文件是链接文件,则复制链接属性
-a 相当于-pdr
3、#mv 源文件 目标位置
>链接文件 难点
1、硬链接特征:拥有相同的i节点和存储block块,可以看作是同一个文件;可通过i节点识别;不能跨分区;不能针对目录使用。
#ln 源文件 目标文件
2、软链接特征:类似windows快捷方式;拥有自己的i节点和block块,但是数据块只保存源文件的文件名和i节点号,并没有实际的文件数据;修改任意文件另一个都改变;删除源文件,软链接不能使用;属性lrwxrwxrwx。
#ln -s 源文件 目标文件
>权限管理
1、权限位:共10位,- rw- r- -r- -
第一位为文件类型:- 普通文件;d 目录文件;l 链接文件;b 块设备文件;c 字符设备文件;s 套接字;p 管道
r:4 w:2 x:1
2、修改权限
#chmod u+x aa (change the permission mode of file)
#chmod g+w,o+w aa
#chmod u=rwx aa
#chmod 755 aa 常用权限(755、644)
3、权限意义:
1)权限对文件的含义:r读取文件内容(cat/more/head/tail);w编辑修改文件内容(vi/echo);x可执行
2)权限对目录的含义:r可查阅目录下文件名(ls);w具有修改目录结构的权限,如新建、删除、重命名、剪切此目录下的文件和目录(touch/rm/mv/cp);x可进入该目录。
注意:为系统安全,文件少给x权限,目录少给w权限,一般目录给的权限为0/5/7。
4、属主和属组命令:
#chown 用户名 文件名 (change file ownership)
例:#chown user1:user1 aa (改变属主同时改变属组,user1必须存在)
#chgrp 属组名 文件名 (change file group ownership)
#useradd 用户名 (添加用户)
#passwd 用户名 (设定用户密码,普通用户改密码#passwd直接回车)
5、文件和目录默认权限:umask (the user file-creation mask) shell内置命令
默认0022
#umask (查看系统umask值)
#umask 0002 (临时修改umask值)
#umask -S(大写) (以rwx形式显示权限)
文件:666(rw-rw-rw-)减去默认值022(----w—w-)等于644(-rwr—r--)
目录:777(rwxrwxrwx)减去默认值022(----w—w-)等于755(rwxr-xr-x)
注意:以上是用字母rwx计算,不能单纯用数字相减。
>帮助命令:
1、#man 命令名
#man -f 命令 (whatis,查看命令拥有哪个级别的帮助)
#man -k 命令 (apropos,查看和命令相关的所有帮助)
2、#help 内部命令
3、#命令 ――help (查看命令的常规选项)
4、#info 命令 (进入子帮助页面,带有*标记,常用快捷键u/n/p/q,可按h获得帮助)
常用命令(二)
一、查找命令
1、#which 命令名 (查找命令的命令,能看到相关别名)
2、#whereis 命令名 (查找命令的命令,同时看到帮助文档位置)
3、#locate 文件名 (按照文件名在数据库中查找)
#updatedb (强制更新数据库)
/var/lib/mlocate (locate所搜索的后台数据库)
/etc/updatedb.conf (配置文件,用于定义locate命令)
4、#find 查找位置 选项 文件名
-uid 数字 (按用户属主ID查找)
-gid 数字 (按用户属组组ID查找)
-user用户名 (按属主用户名查找)
-group组名 (按属组组名查找)
-nouser (找没有属主的文件)
-size +50k (-50k、50k、例#find . –size+5k –a –size -10k。-a(逻辑与),单位k小写,M大写
-type (f普通文件,d目录,l链接文件)
-perm 755 (按文件权限查找)
-inum 节点号 (按i节点号查找)
-ctime|-mtime|-atime (天)
例:#find / -name 123 -exec(或OK) 命令 选项 {}\;
#cat install.log | grep lib
#命令1 | 命令2 (管道符)
#grep -i|-v “字符串” 文件名 (-i忽略大小写,-v反向选择)
二、压缩解压缩
1、识别.tar.gz格式的包
#tar -zcvf 压缩文件名 源文件
#tar -zxvf 压缩文件名 –C 位置 (-C指定解压缩位置)
2、识别.tar.bz2格式的包
#tar -jcvf 压缩文件名 源文件
#tar -jxvf 压缩文件名
三、常用网络命令
1、#w (查询当前登录服务器的所有用户)
2、#who (查询登录用户)
3、#last (列出登录系统的相关信息)
4、#lastlog (显示所有账号最后一次的登录时间)
5、#write 用户名 (给在线用户写信息)
#write root tty1 (给tty1登录的root写信息)
6、#wall (对在线所有用户说话)
7、#mail (邮件,常用快捷键h/d/s/x)
8、#ping -c 次数 ip
#ping -s 65536 ip (指定探测数据包的大小,死亡之ping)
9、#ifconfig eth0 192.168.14.252 netmask 255.255.255.0
10、#netstat -tuln (查看网络状态,/etc/services有系统中的所有常见端口)
#netstat -an
11、#telnet ip 端口 (测试端口是否可以正常连接,quit退出)
四、关机命令
#sync;sync;shutdown -r|-h now
#reboot
#init 6|0
#halt
#poweroff
五、挂载
1、#mount -l (查询系统中已经挂载的设备)
# mount -a (依据/etc/fstab的内容,自动挂载)
#mount -t 文件系统 –L 卷标名 -o 特殊选项 设备文件名 挂载点
2、例:#mount
#mount -o remount,noexec /boot
#cd/boot
#vi hello.sh (内容:echo “helloworld”)
#chmod 755 hello.sh
#./hello.sh
#mount -o remount,exec /boot
3、光盘挂载:
#mount -t iso9660 /dev/cdrom(sr0) /mnt/cdrom
4、U盘挂载:
#mount -t vfat /dev/sdb1 /mnt/usb (vfat:fat32,fat:fat16)
#mount -t vfat -o iocharset=utf8 /dev/sdb1 /mnt/usb
5、使用ntfs-3g安装ntfs文件系统模块
#mount -t ntfs-3g /dev/sdb1 /mnt/win
本文转自 chaijowin 51CTO博客,原文链接:http://blog.51cto.com/jowin/1640093,如需转载请自行联系原作者