一:相关知识:
linux是一个开源、免费的操作系统,其稳定性、安全性、处理多并发已经得到业界的认可,目前很多中型,大型甚至是巨型项目都在使用linux。
linux的文件系统是采用层级式的树状目录结构/root/home/。。(windows是c\d\e\f盘。
linux 7大运行级别:0 系统停止 1单用户 2多用户 不支持NFS 3多用户,命令行模式登陆(我们常用的运行级别)4 未用5 图形化界面6 重新启动。
特点:--免费,开源。
--支持多线程,多用户,多并发。
--安全性好。
--对内存,文件管理优越。
--Linux最小只有4m->嵌入式开发(手机用户多 多么庞大的市场)。
缺点:操作相对困难。
- / ,根目录
- root,存放root用户的相关文件
- home,存放普通用户的相关文件(待会儿我新建用户,它就会在home目录给你创建个目录)
- bin,存放常用命令的目录,cd /(目录切换到根目录,大家可以用个命令来看下pwd,cd bin,ls–l ,可以看到vi ,su命令,vi删掉 那么vi命令就用不了了)如vi,su
- sbin,要具有一定权限才可以使用命令
- mnt,默认挂载光驱和软驱的目录
- etc,存放配置的相关文件(数据库,环境变量的配置)
- var,存放经常变化的文件,如网络连接的sock文件
- boot,存放引导系统启动的相关文件(文件被破坏了,Linux就起不来了 和windows类似)
- usr,安装一个软件的默认目录,相当于windows下的program files
shutdown h now:立即进行关机 shutdown r now:现在重新启动计算机
root:超级管理员账号
uname -r:查看系统版本 whoami: 查看当前用户
netstat -an: 查找linux或者windows下所有的端口
二:基本命令。
1.=
pwd | 显示当前目录。 | ls | 查看当前目录的内容。 |
cd | 更改目录。 | ls –a | 列举目录中的全部文件,包括隐藏文件。 |
cd~ | 转到/home/user下。 | ls –l/ll | 列举目录中细节。 |
clear | 清屏。 | ls –f | 列举的文件显示文件类型。 |
ls -s | 按文件大小排序列举。 | ls -R | 递归列举。 |
Linux支持三种格式的shell脚本,分别是ksh、csh、sh
echo $变量名:输出变量名的值
env:查看到所有环境变量
set:查看所有环境和本地定义的临时变量
localhost:表示主机名
mkdir --help:查看命令的帮助信息
man mkdir:查看命令的详细帮助
2.文件管理命令:
mkdir 文件夹名:创建空文件夹。
rmdir 文件夹名:删除空文件夹。
mkdir -p ./first/second:创建多层文件夹(first和second都不存在情况下建目录)。
rmdir -p ./first/second/:删除second目录后。若first是空的,连first一块删除。
touch 文件名:创建文件。
rm -f 文件名:删除文件。
rm -rf 文件名/文件夹 文件名/文件夹:同时删除两个目录及它们的内容。(强制性)
cp 源文件路径/源文件名 目标路径:拷贝文件。
cp -R 源文件路径/源目录名 目标路径:拷贝文件夹(连内容)。
mv 源文件名 目标文件名:文件改名/移动文件(文件和文件夹一样操作)。
3.查看文件命令:
(1)more文件名 :按回车一行,空格一页。不能向上下翻行。
(2)less文件名 :按回车一行,空格一页。可以通过上下键上下翻行。按q就退出。
(3)head -n文件名 :查看文件的前n行,n表示你要看的行数。
(4)tail -n文件名 :查看文件的后n行
(5)cat文件名 :查看文件的所有内容
(6)cat -n文件名 :查看文件的所有内容,并显示行数
4. > 导入(复制) cat A > B 把A的内容导入到B(把原来的内容覆盖)
>> 追加导入 cat A B >>C 把A和B的内容导入C
5、对文件内容筛选查找,用 "管道:|" 和grep 命令。
查找系统中80端口的信息:netstat -an | grep 80
练习:查找ifcfg-eth0 中包含“OOT”字符串的信息
cat ifcfg-eth0 | grep OOT
6、find 路径参数 参数值:返回值是一个路径
find /home -size +10k:搜索指定大小的文件。
find /root -name 文件名:
7.locate 文件名:根据索引表查找文件,效率高(需要经常更新索引)。
8.wc -l 文件名:统计行数
wc -m 文件名:统计字符数
wc -c 文件名:统计字节数
9.包(.tar)、压缩文件(.gz)、压缩包(.tar.gz或 .tgz)
打包:tar –cvf f101.tar f101:
查看包内容:tar –tvf f101.tar:
解包到当前目录:tar –xvf f101.tar
解包到指定目录:tar -xvf f101.tar -C 指定目录
对文件压缩:只能压缩一个文件(不能是文件夹)。
gzip -1(压缩比1--9) f101.txt:
查看压缩包内容:gzip -l f101.gz
解压:gzip -d f101.gz
gunzip f101.gz
对包压缩:(1)先打包:tar -cvf f101.tar f101。
(2)再压缩:gzip -9 f101.tar(形成f101.tar.gz文件)。
打包并压缩:tar -czvf f101.tar.gz f101。
查看打包压缩包内容:tar -tzvg f101.tar.gz。
【附】windows下zip解压:
unzip -d f101/ f101.zip(解压到f101目录下)。
三:网络配置命令。
1.ifconfig -a:查ip信息
ping ip地址:是否通
setup :
service network restart:重启服务
hostname:主机名
ssh:被访问的机器的用户名@被访问的机器的IP
scp -r 被访问的机器的用户名@被访问的机器的IP:/被复制的文件的路径 目标路径(远程复制文件/夹)
2.文件下载命令:wget下载文件路径。
3.useradd 用户名:
useradd | 添加用户。 | groupadd -g |
| su –用户名 | 切换用户。 |
passwd |
| groupadd -n | 组改名。 | usermod –L/U | 锁定/解锁用户。 |
groupadd | 添加分组。 | groupdel | 删除组。 | Userdel -r | 彻底删除用户。 |
usermod -a -G groupA user:将user用户加到groupA组中。
4.1.权限:drwxr-xr-x 2 root root 4.0K 11-06 18:30 Desktop
d表示是个普通文件夹,-表示普通文件
第一个rwx,表示该文件所属的用户对其所拥有的操作权限
第二个rwx,表示与该文件所属用户在同组内的用户对其所拥有的操作权限
第三个rwx,表示不与该文件所属用户在同组内的用户对其所拥有的操作权限
第一个root:表示该文件夹属于哪个用户
第二个root:表示该文件夹属于哪个组
drwxr-xr-x(一个组中可以包含0到多个用户)
d表示是个普通文件夹,-表示普通文件
【u】rwx:文件拥有者具备的权限(u),7,
【g】r-x:文件所属组中的其他用户所具备的权限(g),5,
【o】r-x:其他用户所具备的权限(o),5,
最大是777(drwxrwxrwx),最小是000(d---------)。 chmod 777/u+r,g+wx;
4.2.更改权限命令:
1、更改单个文件的属主:
语法:chown 用户名 文件名 chown wsg echo.sh
2、更改文件夹的属主:
语法:chown -R 用户名 文件名
chown -R u101 Desktop/ #单独更改文件夹的拥有者(-R表示文件夹的所有子内容全部更改)
3、更改单个文件的属组:
语法:chgrp 组名 文件名 chgrp g1015 echo.sh
4、更改文件夹的属组
语法:chgrp -R 组名 文件名 chgrp -R g1015 Desktop/ #单独更改文件夹的所属组
5、同时更改文件的拥有者和所属组
语法:chown 用户名:组名 文件名 chown u101:g1015 install.log.syslog #同时更改文件的拥有者和所属组
6、同时更改文件夹和文件夹下的所有内容的拥有者和所属组
语法:chown -R 用户名:组名 文件名 chown -R u101:g1015 test01 #同时更改文件的拥有者和所属组
四:==============
cal | 查看日期 | date –s | 修改系统时间 | whoami | 当前登录用户 |
date | 查看时间 | who | 查看有哪些用户登录了系统 | history | 查看历史命令 |
less 文件名 | 查看文件 | grep zpp /etc/passwd | 到/etc/passwd文件中查找zpp字符串 | grep -n | 查询并显示行号 |
du –h 文件/名 | 查大小 | echo $变量名 | 变量名的值 | chkconfig -list | 列出所有服务 |
ps | 查看当前终端正在运行的进程 | ps –ef |grep bash | 查看系统正在运行的进程名包含bash的进程。 | lsof –i 进程号 | 显示指定进程号的进程名。 |
df -h | 查磁盘信息 | free –m | 查看可同内存 | vmstat | 查看虚拟内存 |
【例题】强制踢出已登录用户。
方式一: ps -ef | grep 用户名 #查到用户登陆的进程号对应的pid
kill -9 登陆进程号
ps -ef | grep wushigui
kill -9 3611
方式二:killall -9 -u 用户名
killall -9 -u wushigui
【重】sed -ne ‘5p’:显示第5行数据。
sed -ne ‘3,30p’termp:显示文件指定范围的行(例:第3行到第30行)。
awk ‘{print $2}’:以空格分隔并显示第列数据。
awk -F:‘{P[print $2}’:以冒号分隔并显示第2列数据。
【例题】在命令输入端显示“192.168.2.13”
答案一: cat /etc/sysconfig/network-scripts/ifcfg-eth0 |sed -ne '5p'|awk -F= '{print $2}
[注] cat /etc/sysconfig/network-scripts/ifcfg-eth0-----#查看文件的内容
sed -ne '5p'-----#显示第5行数据
awk -F= '{print $2}-----#以“=”分割,显示第2列数据
答案二:ifconfig | sed -ne ‘2p’| awk '{print $2}' | awk -F: '{print $2}'
答案三:ifconfig | awk '{print $2}' | sed -ne '2p' | awk -F: '{print $2}'
[注] awk '{print $2}' -------以空格分隔并且显示第2列数据
awk -F: '{print $2}'------以‘:’分隔并且显示第二列数据
五:=======
1. vi模式命令
:set nu | 显示行号。 | :q | 退出。 | :q! | 强制退出。 |
:set nonu | 不显示行号。 | :wq | 保存并退出。 | :w 文件名 | 另存为。 |
:w | 保存。 | :n | 跳转到指定行。 |
|
|
(9):n,m/需要替换的字符串/替换字符串/参数。
n表示从第n1行开始,表示一个具体的数字,比如:1
m表示从第n2行结束,表示一个具体的数字,比如:20
参数:g表示所有找出字符都替换没有确认。
c表示每一次都确认
i表示忽略大小写,但是i需要跟c或是g一起使用。
Eg::s/is/IS/ #替换当前行第一个is为IS
:s/is/IS/g #替换当前行所有is为IS
【10】换包含特殊字符的内容,如,把字符串li"n/u"x 置换为Linux,此时需要用到置换符\
:1,$s/li\"n\/u\"x/Linux/g #把特殊字符用\置换成普通字普通字符
规则:特殊字符===\特殊字符
[格式]:n,$s/ / /g。【重点】
2. 命令模式下的命令:
G | 的末行 | ndd | 删除n行 | D | 删除到行尾 |
gg | 到首行 | u | 撤销 | yy | 复制一行 |
$ | 到尾行 | o | 新增一行并进入到编辑模式,向下增加。如果是大写的o,就是向上增加。 | /搜索字符 | 字符串搜索,查找下一个,按n, 向下查找。如果向上查找,按N。 |
^ | 到行首 | i | 进入编辑模式,前编辑 | nyy | 复制n行 |
ng | 跳到n行 | a | 进入编辑模式,后编辑 | p | 粘贴 |
dd | 删除当前行 | x | 删除一个字符 |
|
|
mount :挂载光驱
umount:卸载挂载的文件系统
rpm - ivh 软件名:安装软件
rpm -e 安装包名:卸载软件