1、 Linux简介
Linux是一个Unix类操作系统,完全开发源码,多用户多任务,服务器(数据库服务器、Web服务器、应用服务器、日志服务器、图片服务器等等)、嵌入式领域(如路由器等需要Linux才能启动)、移动终端(比如安卓手机等、平板),Linux主流版本有:Ubuntu、RedHat、CentOS、SUSE、FreeBSD
2 、安装Linux系统(选择性掌握)
1)、安装虚拟机软件(VMware,注意不要随意卸载该软件,在Win7系统下建议安装8.0或9.0)
2)、用虚拟机模拟电脑(四类操作系统:windows、Linux、Mac OS、Dos)
3)、安装Linux系统(掌握)
Linux分区实际上是划分目录结构(Linux只识别文件和目录),必须有"根目录(/)"和"交换目录(swap)"
交换目录(swap):提供虚拟内存,当电脑内存不足,交换目录所占用的磁盘空间会当做虚拟内存来使用
磁盘8G(/dev/sda表示一个SCSI接口的硬盘,/dev/hda表示一个IDE接口的硬盘):
swap: 1G
/:剩余的全部空间
注:安装Linux操作系统,至少要有8G的磁盘空间(也就说给虚拟电脑至少要分配8G的磁盘空间)
Linux超级管理员账号是:root
大家之后的操作切换到root用户:su root
Ctrl+C关闭一条命令,Ctrl+Z撤销一条命令
3 、基本命令
ls / ll/ ls -l #查看目录的内容(list列表)
lsattr查看文件属性命令(attribute属性)
pwd#查看当前目录的绝对路径,显示当前所在目录(print work directory打印当前工作目录,fold文件夹)
cd#跳到指定位置(change directory改变目录)
clear #清屏
directory目录
示例:
[root@localhost bin]#pwd
/usr/bin
[root@localhost bin]#cd ../sbin
[root@localhost sbin]#pwd
/usr/sbin
[root@localhost sbin]#cd ../../opt
[root@localhost opt]#pwd
/opt
[root@localhost opt]#ls d05/
[root@localhost opt]#ls ./d05/
Linux系统是严格区分大小写
Linux支持三种格式的shell脚本,分别是bash、csh、ssh,其中bash是最常用的。
echo $SHELL输出SHELL变量的值(echo回声)
echo $x输出X的变量值x为变量名
环境变量分为系统环境变量和用户环境变量,env查看到所有环境变量set查看所有环境和本地定义的临时变量
PATH系统到PATH变量中寻找目录
[root@localhost ~]#(表示超级用户)或[u101@localhost bin]$(表示普通用户)
切换用户:
su用户名;
root表示当前操作的用户
localhost表示主机名等价于127.0.0.1
~表示当前处在哪个目录中,~表示当前登录的用户的home目录(普通用户登录后默认进入到home目录)
路径:表示文件或文件夹所在的位置
绝对路径:以/开头
相对路径:.表示当前目录;..表示当前目录的上一层目录
文件名:1带路径的(具有唯一性);2不带路径的。
第一个/表示根目录,之后的/表示目录之间的分隔符合。/下斜线,\上斜线。
PS:一个文件有相对路径,也有绝对路径(绝对路径具有唯一性)。
mkdir --help #查看命令的帮助信息
man mkdir #查看命令的详细帮助manual手册,指南
-rwxr--r-- 1 root root 145 Aug 13 11:21 f1.txt
r:read读
w:write写
x:execute执行
ll第一段权限二:对于文件夹是代表字目录数,对于文件是硬链接 三:四:属主,属组,五:文件或文件夹本身大小六七:时间日期八:名称
3.1常用管理命令
1、reboot #重启
2、shutdown -h 0或者init 0 /(halt --不建议用)#关机
PS:没有注销和开机的命令哦^_^
3、cd切换路径(change directory改变目录)#cd /etc/sysconfig
4、pwd查看当前路径(print work directory打印当前工作目录)#pwd
5、whoami查看当前用户#whoami
6、uname -r查linux内核版本号#uname -r
7、clear清屏命令#clear
8、tab键用来路径补全功能和智能提醒
9、netstat -an查找linux,windows(netstat -ano)下所有的端口#netstat -an
3.2文件管理命令
1、ll(ls -l)查看当前目录下有哪些文件或文件夹
ps: ls -l的别名就是ll,以-开头的,表示文件;以d开头的,表示目录。
2、mkdir文件夹名(make directory制作目录)创建文件夹,可以同时创建多个同级文件夹,如:mkdir d01 d02
3、mkdir -p ./first/second创建多层文件夹first和second都不存在情况下建目录
4、touch文件名#touch test.txt创建文件
5、rmdir d101 #删除空目录d101(rm:remove删除)
6、rm -rf强制删除文件名或文件夹名
7、cp源文件路径/源文件名目标路径拷贝文件(只是文件) #cp T01/test.txt T02/
cp:copy
8、cp -R源文件夹路径/源目录名目标路径拷贝文件夹(把文件夹及其所有内容一起拷贝)#cp -R T01 T02
9、mv源文件路径/源文件名目标文件夹(mv:move)剪切文件、剪切文件并重命名(文件和文件夹一样操作)
#将./T01/tt.log文件移动到./T02,并重命名为t.log
[root@localhost test01]# mkdir -p T01/T02
[root@localhost test01]# touch T01/T02/tt.log
[root@localhost test01]# mkdir T03
[root@localhost test01]# mv T01/T02/tt.log T03/t.log
10、查看文件命令:(install.log)按q退出
(1)more文件名按回车一行,空格一页。不能上下键翻行。
(2)less文件名按回车一行,空格一页。可以通过上下键上下翻行。按q就退出。
(3)head -n文件名查看文件的前n行,n表示你要看的行数。(默认跳出文件)
(4)tail -n文件名查看文件的后n行,可能会引起循环(文件时刻会更新的情况下)(默认跳出文件)
(5)cat文件名查看文件的所有内容(默认返回文件尾,并且跳出文件)
(6)cat -n文件名查看文件的所有内容,并显示行数(默认返回文件尾,并且跳出文件)
查看日志文件常用less(空格一页),view(空格就走一格)
less、view:?查找光标的上面,/查找光标的下面
sed -ne '3,30p'文件名#查看文件指定范围的行(例:第3行到第30行
vi编辑器命令扩展(命令模式下的操作):vim
三种模式:(1)命令模式
(2)编辑模式
(3)末行模式(命令模式基础上)
三种的切换:
命令模式切换到编辑模式:输入i或者a。(insert,after)编辑模式退到命令模式:esc
1.编辑模式命令:
在vi中先按esc退到命令模式,再按u可以撤销一次操作;
u撤销上一步的操作;
Ctrl+r恢复上一步被撤销的操作;
2、末行模式是以冒号:开头。注意:末行模式必须是在命令模式下操作。命令:
(1):set nu显示行号nu:number
(2):set nonu不显示行号
(3):w保存write
(4):q退出quit
(5):wq保存并退出
(6):n n表示行数跳转到指定行,如:5 --跳转到第五行
(7):q!强制退出(不保存,并退出)
(8):w文件名另存为例子:w lk.txt ---把当前文件保存为lk.txt
(9):n1,n2s/需要替换的源字符串/替换为目标字符串/参数
less、view或者vi打开某个文件后,用/查找字符串。
3.命令模式下的命令:
yy复制行
p粘帖
i或a光标前插入,光标后插入
n1表示从第n1行开始,表示一个具体的数字,比如:1
n2表示从第n2行结束,表示一个具体的数字,比如:20
参数:1、g表示所有找出所有目标字符都替换,并没有确认。
2、c表示目标范围所有行的首个目标字符替换,并每一次都确认。
3、i表示忽略大小写,但是i需要跟c或是g一起使用,g、c也可以一起使用。i:ignore忽略
4、没有参数时,默认目标范围所有行的首个目标字符替换,并没有确认。
5、g c表示找出所有目标字符都替换,并每一次都确认。
(n为数字,若n为点好(即.),表示从当前行开始到最后一行)
:n, $s/is/IS #替换第n行开始到最后一行中每一行的第一个is为IS
:1,5s/is/IS/ #替换第1行开始到第5行中每一行的第一个is为IS
:n,$s/is/IS/g #替换第n行开始到最后一行中每一行的所有is为IS
:1,$s/is/IS/g #替换第1行开始到最后一行中每一行的所有is为IS
重点:替换包含特殊字符的内容,如,把字符串li"n/u"x置换为Linux,此时需要用到置换符\
:1,$s/li\"n\/u\"x/Linux/g #把特殊字符用\置换成普通字普通字符
11、>覆盖导入cat A > B把A的内容覆盖导入到B(把原来的内容覆盖)
>>追加导入cat A >> B把A内容追加导入B ; cat A B >>C把A、B内容追加导入C
PS:文件若不存在,则会被创建。
echo "" > f101 #清空文件f101中的内容,但仍然有一空行(>是定向输出符,即将内容输出到指定位置;>>是追加符号)
cat /dev/null > f101 #清空文件f101中的内容,不会有空行
PS:echo针对字符串,cat针对文件内容。
12、对文件内容筛选查找,用"管道:|"和grep命令,查找包含目标字符串的该行所有内容
如:查找系统中80端口的监听信息:netstat -an| grep“80”
cat ./linux.txt | grep "more"
13、find路径参数参数值(查询文件)
参数:-name后面跟文件名#表示根据文件名进行查询
-size后面跟文件大小#表示根据大小进行查询
查找home下文件名为leke.txt的文件。
find /home/ -name leke.txt
查找home下大小为100M以上的文件。(+100k,-100M)
find /home/ -size +100M
14、wc -l文件名(line)统计当前文件的行数wc -l ./T01/tt.txt
-m文件名统计当前文件的字符数wc -m ./T01/tt.txt
-c文件名统计当前文件的的字节数wc -c ./T01/tt.txt
对于中文字符1W=2B,对于英文字符1W=1B。(W:word单词,字符)
3.3压缩管理
压缩管理:包(.tar)、压缩文件(.gz)、压缩包(.tar.gz或.tgz)
1 tar命令打包:
tar参数目标文件路径/包名被打包的文件名称
tar -cvf t101.tar f101 #将目录f101和文件打到当前目录下的t101.tar包中
tar -cvf /opt/t101.tar ./d101 #将当前目录d01打到/opt/t101.tar包中
tar -tvf t101.tar #查看t101.tar包中的内容
tar -xvf t101.tar #将t101.tar包中的内容释放到当前目录中
tar -xvf t101.tar -C /opt/d102/ #将t101.tar包中的内容释放到/opt/d102/目录中
2压缩:
gzip只能压缩单个文件,不能压缩目录(文件夹)。(压缩后,源文件不存在了)
压缩比:1表示压缩比最小;9表示压缩比最大
2G --> 1G(压缩比小,压缩速度快)
2G --> 500M(压缩比大,压缩速度慢)
gzip -1 f101.txt #将f101压缩,形成压缩文件f101.txt.gz
gzip f101.txt
gzip -9 f101.txt #将f101压缩,形成压缩文件f101.txt.gz
查看压缩包:
gzip -l f101.txt.gz #查看压缩文件f101.txt.gz的压缩信息,小写字母l
解压:
gzip -d f101.txt.gz或gunzip f101.txt.gz #解压f101.txt.gz文件
对包进行压缩:
tar -cvf t101.tar f101 #首先打包操作
gzip -9 t101.tar #然后将包压缩,最终形成压缩包t101.tar.gz
tar命令只有打包功能,没有压缩功能,它是借助gzip进行压缩
3打包并压缩:(一键打包并压缩)
tar参数目标文件路径和包名被打包的文件名称
tar -zcvf t101.tar.gz T101 #将目录和文件打到当前目录下的t101.tar.gz压缩包中
(vf必须放后面,不然会报错)
tar -zcvf /opt/t101.tar.gz T101 #将目录和文件打到/opt/t101.tgz压缩包中
tar -ztvf ./t101.tar.gz #查看t101.tar.gz压缩包中的内容
tar -zxvf t101.tar.gz #将t101.tar.gz压缩包中的内容释放到当前目录中
tar -zxvf t101.tar.gz -C /opt/d102/ #将t101.tar.gz压缩包中的内容解压到/opt/d102/目录中
#针对windows平台下的zip压缩包在linux系统里面的解压
unzip -d d101/ f101.zip #将f101.zip解压到d101目录下
3.4网络配置
ifconfig -a#查ip信息
ping#测试网络是否连通
service network restart(start\stop) #重启网卡服务
虚拟网卡桥接连接方式
hostname #输出主机名
3.5组&用户&权限
在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。
所有者:一般指文件的创建者
文件所在组:当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组
其他组:除开文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组
组管理:( cat /etc/group,查看当前系统存在的组)
groupadd g1015 #组必需要有组id,如果没有指定组id,则系统自动分配唯一的组id
groupadd -g 168 g1016 #指定了组id,则系统不会自动组id
groupdel g1066#删除组g1066,若组中有用户,若组中包含用户,则不能删除组(必须确保组是空的才能删除组)
groupmod - n g1066 g1016 #将g1016更名成g1066
groupmod -g 500 g1066 #将组g1066的id更改成498
用户管理:(cat /etc/passwd存储用户基本信息;cat /etc/shadow存储用户密码信息)
一个用户可以拥有多个组:主组(有且只能有一个主组)和附属组(0到多个附属组)
用户的密码若是以*号或!开头,则表示该用户不能登录Linux操作系统
useradd u101 #u101用户登录后,默认进入到/home/u01目录下
userdel -r u101 #彻底删除用户
passwd u101 #passwd默认给当前用户设置密码,建议密码为123456设置密码时,不会显示出来
su u101 #切换用户(*)
改变用户所在的组:
usermod -g组名用户名
权限:Linux中通过控制每一类用户(有3类用户)对文件/文件夹的读、写、执行来实现权限控制
rw_rw_r__:前三个字符表示拥有者的权限,中间三个字符是组权限,后面三个字符其他人。
r: read可读
w: write可写
x:execute可执行
r用数字4表示,w用数字2表示,x用数字1表示。
drwxr-xr-x 2 root root 4.0K 11-06 18:30 Desktop
d:表示该文件为文件夹
第一个rwx,表示该文件所属的用户对其所拥有的操作权限
第二个rwx,表示与该文件所属用户在同组内的用户对其所拥有的操作权限
第三个rwx,表示不与该文件所属用户在同组内的用户对其所拥有的操作权限
第一个root:表示该文件夹属于哪个用户
第二个root:表示该文件夹属于哪个组
u:所属用户user(默认三种权限都有,仅限于文件夹)
g:所属用户所在组的用户group(默认仅没有写的权限,仅限于文件夹)
o:组以外的用户other(默认仅没有写的权限,仅限于文件夹)
#修改权限:
格式:
chmod权限文件名(change,modify)
chmod u-w,g+w,o=r /home/linux.txt#执行完后变成dr-xrwxr--
chmod u-r文件名
drwxr-xr-x(一个组中可以包含到多个用户)
d表示是个普通文件夹,-表示普通文件
rwx:文件拥有者具备的权限(u),7
r-x:文件所属组中的其他用户所具备的权限(g),5
r-x:其他用户所具备的权限(o),5
#r=4;w=2;x=1,755
chmod -R 574 /home/qq等同于chmod -R u-w,g+w,o=r Desktop/ (-R针对文件夹,-R表示文件夹及其所有子内
容都会发生更改)
最大是777(drwxrwxrwx),最小是000(d---------)
chmod 777 Desktop/等同于chmod a=rwx Desktop/ #a代表所有用户
总结:
1更改文件的权限:chmod u-w,g+w,o=r文件名
2更改文件夹的权限:chmod -R u-w,g+w,o=r文件名
3拥有者默认权限rwx,组内用户默认r-x,组外用户默认没有任何权限。
---------------------------------------------------------------------------------------------------------------------------------------------------------
1、更改单个文件的属主:
语法:chown用户名文件名
chown u102 echo.sh
2、更改文件夹的属主:
语法:chown -R用户名文件名
chown -R u101/home/qq#单独更改文件夹的拥有者(-R表示文件夹的所有子内容全部更改)
3.6扩展命令
cal #查看日历calendar
date #查看日期
who #查看有哪些用户登录了系统
whoami #查看当前是哪个用户登录了系统
history #查看历史命令
grep ”zpp” /etc/passwd #到/etc/passwd文件中查找zpp字符串(字符串可省略双引号)
grep -n "root" /etc/group #查看/etc/group文件中包含root的行并显示行号
du -h文件名#查文件或目录的大小
#查看文件夹大小du -h T01
#查看文件大小du -h tt.txt
ps -ef #查看系统正在运行的进程(process)
ps -ef | grep “bash” #查看系统正在运行的进程名包含bash的进程(即查看指定用户的进程)
vmstat #查看cpu\io\内存等信息,m:memory。
kill -9
#强制终止(pid表示进程号,可以用ps命令查看到进程号)
top #查看当前系统的资源使用率(默认是5秒刷新一次,相当于windows的资源管理器)
强制踢出已登录用户:
方式一:
ps -ef | grep用户名#查到用户登陆的进程号对应的pid
kill -9登陆进程号
方式二:根据用户名来踢
killall -9 -u用户名
d:disk磁盘,f:free剩余的
du -h文件名#查文件或目录的大小
df -h #查磁盘信息/空间(*)
free -m #查内存
vmstat #查看CPU\IO\虚拟内存
top #查看当前系统的资源使用率
3.7远程连接&安装软件
客户端工具(远程连接Linux服务器):SecureCRT、SecureFXP、xshell、ssh、putty,通过SSH2(端口是22)协议远程连接到Linux服务器(SSH2协议是在安装Linux操作系统时自带的协议),前2个最常用,支持中文,后2个不支持中文
ssh:secure shell安全壳
安装程序命令:
1.安装ssh远程连接服务:(我们选择本地安装方式)
先把ssh文件夹拖拉复制到/home/lktest/目录下。
执行本地安装命令:sudo dpkg -i /home/lktest/ssh/*;
测试ssh服务端有没有安装成功:ssh localhost;
如果出现如下的Welcome to Ubuntu .....的信息,代表安装成功了。
(注意!!!ssh localhost命令前后要敲两次)
(在线安装:sudo apt-get install openssh-server)
然后在tools文件夹里面找到SecureCRT.rar。打开SecureCRT(无需解压,直接点击),远程连接linux:
PS:sudo:以超级管理员的权限来运行。
(sudo dpkg -i /home/lktest/ssh/*;这句话的意思是安装ssh目录下的所有安装包,*代表所有内容。pkg:package包,d:debin(软件的一种格式), i:install安装,sudo:以超级管理员的权限运行,do:运行,su:super user
2.安装vim编辑器(vi编辑器的高级版本):
2.1通过secureFXP远程连接linux,把vim文件夹拖拉上传到/home/lktest目录下面。
2.2执行安装命令:sudo dpkg -i /home/lktest/vim/*;
安装完就可以使用vim命令来打开文件了。
领取专属 10元无门槛券
私享最新 技术干货