Linux
一、Linux安装
1.linux中用于显示或配置网络设备(网络接口卡)的命令:ifconfig windows IP -- ipconfig
2.虚拟机连接模式:
NAT模式---只有本地物理机可以连通
桥接模式---大家都可以访问这台机子,但在测试过程中容易造成网络拥堵,资源分摊不均
3.物理机网络情况
a)在物理机开始栏--输cmd
b)物理机对虚拟机网络连通
ping1192.168.230.128【ping后接1个或多个空格】
c)物理机对外网连通:
ping baidu.com(访问域名—实际也是转化为访问IP)
4.虚拟机网络情况
a)虚拟机对物理机网络连通
b)虚拟机对外网连通
5.远程控制终端xshell5
安装软件---新建会话
用户登录
6、SSH协议
SSH是安全外壳协议 为 Secure Shell 的缩写,SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
关于“协议SSH”详细内容 :http://www.tuicool.com/articles/2Mfuai
二、Linux常用命令
1、linux简介
主要特征:
a)开放性—兼容、开源
b)多用户—各用户有特定权限,互不影响
c)多任务—调度进程平等访问处理器
d)出色的速度性能—连续n月n年无需重启
e)良好的用户界面—1.用户命令界面;2.系统调用界面;3.图形用户界面
f)丰富的网络功能—linux在Internet基础上产生和发展的,有完善的内置网络
g)可靠的系统安全—权限控制
h)良好的可移植性—可在任何环境、任何平台运行
2、linux系统目录结构
2、Linux 基础命令
ifconfig—查看系统网络状态
ifconfig eth0 mtu N 【设置网络设备eth0的mtu的值为N】
ls—查看目录(目录操作)
LL和Ls –L都是查看目录详细信息
灰色:普通文件;蓝色:目录文件;绿色:可执行文件;红色:压缩文件;
粉红色:图片文件;黄色(橙色):设备文件;
浅蓝色:链接文件(类似 windows中的快捷方式);
# ls –l //一行显示一个文件信息(详细)
# ls –t hxy //按修改时间显示hxy目录文件
# ls –lt //同时使用两个以上的选项
3、访问权限—使用ls –l查看
前面的”-rw-r--r--”就表示文件或目录的权限,这里共有10个位置,其中:
第1位:表示文件的类型,文件类型可分为以下几种:
-:表示该文件是普通文件。
d:表示该文件是一个目录。
l:表示该文件是一个链接文件。
b:表示该文件是块设备文件,块设备通常为硬盘、光驱等传输速度较快的物理设备。
c:表示键盘、鼠标等传输速度较慢的设备文件
剩余9位,每3位一组,按左右顺序分别为
文件所有者(user)权限(第一组:第2-4位)
与文件所有者同组用户(group)的权限(第二组:5-7位)
系统中其他用户(other)的权限(第三组:8-10位)
一组3位按从左至右顺序分别表示
读(r)
写(w)
执行(x)权限,
横线”-”表示没有相应权限。
例如:上面he目录的访问权限是drwxr-xr-x,表示:
其是一个目录(第1位:d)
其所属用户有读写执行权限(第一组(2-4位):rwx)
与所属用户同组的用户只有读和执行权限(第二组(5-7位):r-x)
其他用户也只有读和执行权限(第三组(8-10位):r-x)
4、cd—切换目录
- # cd /usr/bin //切换到根目录下的usr/bin子目录
- # cd .. //返回上一级目录
- #cd / //切换根目录
- #cd //不加路径参数,或cd ~,回到当前用户的主目录
- # cd ~ //回到当前用户的主目录
# cd - //回到当前目录之前所在的目录, 返回上一级输入的命令时的路径
当操作的文件或目录在当前目录下时,可以直接命令 + 文件名/目录名
当操作的文件或目录不在当前目录下时, 需要加上绝对路径
bin绝对路径:/usr/bin
5、mkdir—创建目录
- # mkdir testd
- # ls
- # mkdir –p grade10/class01 //带参数p一次可以建立多个层次目录
mkdir santa santa2 santa3创建同一级目录的3个新目录
mkdir –p santa/santa2/santa3 创建下级目录
6、pwd—查看当前路径
7、touch—创建文件
- a 或--time=atime或--time=access或--time=use 只更改存取时间。
- -c 或--no-create 不建立任何文档。
- -d 使用指定的日期时间,而非现在的时间。
- -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
- -m 或--time=mtime或--time=modify 只更改变动时间。
- -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间
8、rm/rmdir—删除目录
说明:rmdir作用是删除目录,但被删除的目录为空时才能用rmdir删除。
- -p:递归删除目录,当子目录删除后其父目录为空时,也一同被删除。
rm语法:rm [-d][-i][-r][-v][-f] 文件名或目录名
- -f:强制删除文件,不提示
- -i:删除每个文件时,先给提示询问用户
- -r:删除整个目录,包括文件和子目录(但要询问)
- -v:显示指令执行过程
- -rf:强制删除目录且不询问
9、mv--移动文件
格式:mv [选项] <源文件或目录> <目标文件或目录>
说明:
- mv根据第二个参数类型的不同(是目标文件还是目标目录),确定将文件重命名或将其移到一个目标目录中。
- 若目标文件所在目录与源文件目录不是同一个,且目标文件是新文件名,这时源文件被移到目标目录中并被重新命名.
参数:
- -i:表示交互方式操作,对目标文件覆盖给出提示询问(默认)。
- -f禁止交互;
为防止对已存在文件造成破坏,最好使用i选项
10、cp—复制文件
语法:cp [选项] <源文件或目录> [目标文件或目录]
参数:
- -a:该选项通常在复制目录时使用,它保留链接和文件属性,并递归复制目录。
- -d:复制时保留链接。
- -f:覆盖目标文件已存在文件,不做提示;
- -i:覆盖目标文件时有提示;
- -p:除复制文件内容外,还将其修改时间和访问权限也复制到新文件中。
- -r:若给出的源文件是一目录,则cp 将递归复制该目录下所有的子目录和文件,目标文件也必须为一个目录。
-
11、rm—删除文件
语法:rm [-d][-i][-r][-v][-f] <文件名或目录名>
- -f:强制删除文件或目录,不提示
- -i:删除每个文件时,先给提示询问用户
- -r:删除整个目录,包括文件和子目录
- -v:显示指令执行过程
-
12、rename—文件重命名
语法: rename <源文件名修改部分> <修改成的目标文件名部分> <改名的文件名>
说明:rename可对一个或多个文件同时重命名.
模糊匹配 多个文件重命名
例如:test.ini test.txt(特点同名不同后缀)
rename test(原名)tt(替代名) test* (用tt换test, test*为修改的部位)
>>>>> tt.ini tt.xt
13、cat/more/less—查看文件内容
语法: cat <文件名>
说明:当cat查看的文件内容较长时,可使用管道输出到more或less中,more到文件尾自动结束,less使用q键退出。
例如:
# cat text3.txt # more text3.txt #less text3.txt
Cat(把文件整体显示出来并结束),弊端:不适用于文件内容多
More(ctrl + c)终止查阅:more的作用是把内容多的文件,把该内容分页查看
Less(使用q结束)
14、head/tail—查看文件头/尾部内容
Head 默认头10行,(head -5 4.txt 显示前5行)
Tail 默认最后10行,(同上)tail -6 显示尾6行
tail主要用于查看日志文件等不断增长的文件,用来关心最新添加到尾部分的内容。
例:#tail text3.txt
Tail –f 4.txt 实时动态查看最后10行,常用于跟踪日志文件等
ping 10.0.0.111 >test.log &【把ip的内容保存在test.log &为结束符】
将ping 的内容 输出到 文件中
用tail –f test.log 查看最新的尾10行。----------结束动态显示:ctrl+c
15、find—查找文件
find语法:
find [指定目录] <选项> <查找文件名>
参数:
- -name<文件名> :查找指定文件名的文件
- -amin<分钟>:查找在指定时间内曾被存取过的文件目录
- -cmin<分钟>:查找在指定时间被更改的文件目录
- -group<组名>:查找符合批定群组名称的文件目录
- -user<拥有者>:查找符合指定拥有者名称的文件目录
说明:[指定目录]默认为当前目录
例1:只知道某一文件名text3.txt,查找其所在目录
# find / -name text3.txt
例2:从root目录中 查找模式为’text*.txt’文件所在目录
# find /root –name ‘text*.txt’
例3:Find / -name test*
[/接目录 或者 /后接一个空格:意思是针对整个目录]
【-name:文件名(类型)】【test*:含名字test但不清楚属性用*】
16、ps—查看系统进程
-l:用长格式列出
-u:列出使用者名称和使用时间
-m:列出内存分布情况
-r:只列正在前台执行程序
ps –ef【-e 所有,-f详细】
Ps –ef | grep crp*
| 管道符号,将前面命令的输出作为后面命令的输入
在所有里面取一个crp
17、grep—查找包含字符串的文件
grep :文本搜索命令,在指定文件中查找包含字符串的文件
语法:grep [选项] ‘查找字符串’ <查找文件名>
例如:显示当前目录中所有t开头的文件中包含txt字符的行;
./ 表示当前目录
../ 表示上一级目录
*表示所有,模糊匹配
# grep ‘txt’ ./t*
#grep –l ‘txt ’ ./t*
只显示包含字符串的文件名称.
17、top—查看内存进程
- 是linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况 ,类似于Windows的任务管理器。本文详细介绍了top命令的使用方法。
语法:
top [-] [d delay] [q] [c] [S] [s] [i] [n]
参数:
- d:指定更新的间隔,以秒计算。
- q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高
- 的优先序执行。
- c:显示进程完整的路径与名称。
- S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
- s:安全模式。
- i:不显示任何闲置(Idle)或无用(Zombie)的行程。
- n:显示更新的次数,完成后将会退出top。
-
-
-
18、kill—中止进程
语法:
kill [-s signal |-p] [-a] pid
说明:
kill送出一个特定的信号( signal )给pid的进程而做特定的动作,若没有指定,默认是送出终止(TERM)信号
- -s( signal):其中可用的信号有:HUP(1),KILL(9)、TERM(15),分别表示重跑、砍掉、结束;
- -P: 印出 pid,并不送出信号
- -l:列出所有可用的信号名称
例如:# kill -9 90 # kill –HUP 456
19、gzip/tar—压缩或解压文件
gzip语法 :
gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ... ]
压缩好的文件为红色,文件属性为.gz,原文件将不存在(解压反之)
参数 :
- -l :列出压缩文件的内容
- -f :强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
- -9 :以最大的压缩比压缩
- -d :解压缩
- -r :对目录进行递归操作
范例: 以最高压缩比压缩a.tar文件>>>>>gzip -9 a.tar
tar语法:
tar [主选项+辅选项] 文件或者目录
使用该命令时,主选项是必须要有的,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:
- -c: 建立压缩文件
- -x:解压
- -t:查看内容
- -r:向压缩归档文件末尾追加文件
- -u:更新原压缩包中的文件
Tar –cvzf my.tar.gz test.log(my.tar.gz新文件名,test.log原文件)
Cvzf: c(建立压缩文件) v(显示所以打包文件) z(gzip) f(必须放在最后其他的可以乱)
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。
辅选项:
- -z:有gzip属性的
- -j:有bz2属性的
- -Z:有compress属性的
- -v:显示所有过程
- -O:将文件解开到标准输出
下面的参数-f是必须的
l -f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接压缩文件名。
- 范例一:
压缩
- tar –cvf jpg.tar *.jpg 将目录里所有jpg文件打包成tar.jpg
- tar –czf jpg.tar.gz *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
- tar –cjf jpg.tar.bz2 *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
- tar –cZf jpg.tar.Z *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
- rar a jpg.rar *.jpg rar格式的压缩,需要先下载rar for linux
- zip jpg.zip *.jpg zip格式的压缩,需要先下载zip for linux
- 范例二:
解压
l tar –xvf file.tar 解压 tar包
l tar -xzvf file.tar.gz 解压tar.gz
l tar -xjvf file.tar.bz2 解压 tar.bz2
l tar –xZvf file.tar.Z 解压tar.Z
l unrar e file.rar 解压rar
l unzip file.zip 解压zip
总结
ü *.tar 用 tar –xvf 解压
ü *.gz 用 gzip -d或者gunzip 解压
ü *.tar.gz和*.tgz 用 tar –xzf 解压
ü *.bz2 用 bzip2 -d或者用bunzip2 解压
ü *.tar.bz2用tar –xjf 解压
ü *.Z 用 uncompress 解压
ü *.tar.Z 用tar –xZf 解压
ü *.rar 用 unrar e解压
ü *.zip 用 unzip 解压
19、du—显示指定的目录或文件所占用的磁盘空间
du语法 :
du [参数] [目录或文件]
参数 :
- -a或-all 显示目录中所有文件的大小。
- -b 显示目录或文件大小时,以byte为单位。
- -c 显示每个目录和文件的大小,同时也显示所有目录或文件的总和。
- -D 显示指定符号连接的源文件大小。
- -h 以K,M,G为单位,提高信息的可读性。
- -H 与-h参数相同,但是K,M,G是以1000为换算单位。
- -k 以1024 bytes为单位。
20、df—显示磁盘的使用状况
df语法 :
df [选项]... [FILE]...
范例: 显示系统所配置的每一个磁盘当前被占用的空间大小>>>>>>#df –k
21、useradd—新建用户
useradd语法 :
useradd [参数] 用户名
参数
- -d<登入目录> 指定用户登入时的启始目录。
- -e<有效期限> 指定帐号的有效期限。
- -f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
- -g<群组> 指定用户所属的群组。
- -G<群组> 指定用户所属的附加群组。
- -m 自动建立用户的登入目录。
- -M 不要自动建立用户的登入目录。
- -n 取消建立以用户名称为名的群组. k
- -r 建立系统帐号。
- -s<shell> 指定用户登入后所使用的shell。
- -u<uid> 指定用户ID。 .
范例: useradd oracle –g oinstall –G dba –d /home/oracle
【系统将创建一个用户oracle,oracle 用户的首要组为oinstall,次要组为dba,Home 目录为/home/oracle】 test1—主要组 syunke—次要组
说明:
默认创建的用户将会在home下为该用户创建一个目录,为用户的home directory,即用户主目录,用户登陆时会自动登入到该目录,路径为/home/username
useradd yonghu2 -d /home/yonghu2 -g test1 -G syunke
useradd yonghu2 -g test1 -G syunke -d /home/yonghu2
同样的作用,位置可以调换。
主要组,次要组
显示new3的信息是在次要组new2(492)
用cat命令查看所有用户组及ID内容
sermod 修改用户信息
Yonghu3是和root同一组,yonghu5和root是不同组
22.userdel—删除用户
userdel语法 :
userdel [-r] 用户名
参数 :
-r 同时删除用户的home directory和邮件
23、groupadd—新增用户组
24、groupadd—新增用户组
groupadd语法 :将新用户组加入系统
groupadd [-g gid] [-o]] [-r] [-f] groupname
参数 :
- -g gid 指定组的id号
- -r 增加一个系统账号,组id低于499
- -f 当组已存在时强制退出
-
>>>#group –g 600 santa 【新建一个指定id600 的用户组santa】
>>>#cat /etc/group 【查看所有用户组信息】
- 、
25、groupdel—删除用户组
groupdel语法 :
groupdel 组名
当你要删除的用户组是别的用户的主要组时,删除不了
26 、passwd—修改密码
出于系统安全考虑,Linux 系统中的每一个用户除了有其用户名外,还有其对应的用户口令。用户可以随时用passwd 命令改变自己的口令
该命令的一般格式为: passwd
输入该命令后,按系统提示依次输入密码和密码确认后即可完成用户密码的修改。
此外超级用户还可以修改其他用户的口令命令如下:passwd 用户名
27、su—提升权限
su 命令这个命令非常重要,它可以让一个普通用户拥有超级用户或其他用户的权限,也可以让超级用户以普通用户的身份做一些事情。
普通用户使用这个命令时必须有超级用户或其他用户的口令。
如要离开当前用户的身份可以键入exit 命令,
su语法:
su - 用户名
赋予root权限
方法一:修改 /etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL (在%前有一个#,把它去掉)
然后修改用户,使其属于root组(wheel),命令如下:
#usermod -g root tommy
修改完毕,现在可以用tommy帐号登录,然后用命令 su – ,即可获得root权限进行操作。
方法二:修改 /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
tommy ALL=(ALL) ALL
修改完毕,现在可以用tommy帐号登录,然后用命令 sudo – ,即可获得root权限进行操作。
方法三:修改 /etc/passwd 文件,找到如下行,把用户ID修改为 0 ,如下所示:
tommy:x:0:33:tommy:/data/webroot:/bin/bash
只是一个例子,实际工作中不要对root 目录做这样操作
管理员普通用户
28 、chmod—改变文件或目录权限
chmod语法 :
chmod [-cfvR] mode file...
参数 :
mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
- u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
- + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
- -c : 若该档案权限确实已经更改,才显示其更改动作
- -f : 若该档案权限无法被更改也不要显示错误讯息
- -R : 对目前目录下的所有档案与子目录进行相同的权限变更
Yonghu3 和root是在同一组里,所以要改yonghu3的权限需要在root的前提下用chmod g+w yonghu3
修改sudoers的读写状态,用chmod u+w sudoers(把sudoers是只读文件改成读写)
r 4
w 2
x 1
意思是chmod 【ugoa】【-+=】【rwxXst】 |(管道符号:把前面的输出作为后面的输入)
Chmod g-w,o-w 1.txt【这里的,不能有空格】
linux的文件类型
_(普通文件) d(目录) l(链接) p(命名管道) b(块设备文件) s(套接字 文件) c(字符设备文件)
讲解一个简单例子
drwxr-x--x 2 root root 4096 02-10 14:20 test
d : 说明是目录
rwx:是文件属主的权限,有读、写、执行权限
r-x: 是同组的用户的权限,有读、执行的权限
--x: 是其他用户的权限,有执行的权限
Each MODE is of the form `[ugoa]*([-+=]([rwxXst]*|[ugo]))+'.
说明如下:
[ugoa]
u:文件属主权限 g:同组用户权限 o:其他用户权限 a:所有用户
[-+=]
-:取消权限 +:增加权限 =:设置权限
[rwxXst]
r::读 w:写 x:执行 s:set-ID t:粘性位
[ugo]
u:针对文件属主操作 g:针对同组的用户操作 o:针对其他用户操作
就上面的例子修改权限
[root@linux-3 shell]# chmod o+r test/ #其他用户有读的权限
[root@linux-3 shell]# ll
总计 8
drwxr-xr-x 2 root root 4096 02-10 14:20 test
[root@linux-3 shell]# chmod 755 test/ #这样也是可以给予权限的
[root@linux-3 shell]# ll
总计 8
drwxr-xr-x 2 root root 4096 02-10 14:20 test
详细了解chmod的用法:::http://www.ahlinux.com/start/cmd/409.html
29、netstat—查看网络状态
- 显示当前服务器所有网络连接状态 :netstat –a
- 显示tcp连接 :netstat –t
- 显示所有监听的服务端口 :netstat –l
30、telnet—连接指定端口
telnet语法:
telnet address [port]
31、ping—判断远端网络功能是否正常
ping语法 :
ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
功能:
指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常
参数:
- -c<完成次数> 设置完成要求回应的次数。
- -f 极限检测。
- -i<间隔秒数> 指定收发信息的间隔时间。
- -I<网络界面> 使用指定的网络界面送出数据包。
-s<数据包大小> 设置数据包的大小。
32、 vi—文件编辑
vi语法:
vi [文件名]
vi打开文件-- Insert 插入内容-- Esc再输入冒号:--再输入wq(w保存,q退出)
q!(强制退出)
cat查阅文件
文件2.txt 15L(15行) 149C(149个字符)
vi
n下一个
N上一个
/在光标所在的位置向上查找
?在光标所在位置向下查找
G 光标移动文件最后
dd 删除光标所在的那一行
yy 复制 p粘贴
启动网络vi /etc/sysconfig/network-scripts/ifcfg-eth0
32、 嵌入式编程
Echo(输出命令)
`date`时间
33 、reboot—重启系统
34 、shutdown/poweroff—关闭系统
shutdown [OPTION]… TIME [MESSAGE]
- [-r] 重启计算器。
- [-k] 并不真正关机﹐只是送警告信号给每位登录者
- [-h] 关机后关闭电源。
- [-c] 取消目前正在执行的关机程序,可以给当前登录的用户一个提示信息
- [-F] 在重启系统时执行磁盘检查 (fsck)
- [-f] 在重启系统时不检查磁盘
举例:
ü 要在 10:00关闭系统,并给登录用户一条提示信息: >>>>># shutdown -h 10:00 “系统维护10:00关机,11:00恢复”
要在15分钟后重启计算机: >>>>># shutdown -r +15
35、clear—清屏
36、tab—补全
eg: ls -l a然后点击tab键,则直接显示ls -l anaconda-ks.cfg
Root:qq(文件属性) Root:q群(文件属主所在组)
1598:文件大小 12月 13 00:37 :时间 anaconda-ks.cfg:文件名
38、 tenlent—yun
提示telent没这个指令
yum 原码安装,安装好了后就可以用talnet命令
UID 用户ID
PID 进程ID
PPID 父进程ID
C CPU占用率
STIME 开始时间
TTY 开始此进程的TTY
TIME 此进程运行的总时间
CMD 命令名