Linux
1、Linux系统诞生与成长
Linux系统的诞生主要源于林纳斯个人,而Linux系统的成长则更多得益于所采用的开源模式。林纳斯12岁开始接触计算机和编程,并从此狂热地爱上了编程。 因为这份热爱,林纳斯自学了大量的编程知识,并不断地将学到的新知识进行练习。这些学习和练习为Linux系统储备了足够的知识弹药。而在开发过程中,林纳斯也不免遇到很多困难,但是他身上永不言弃的精神,让Linux系统最终诞生。在Linux系统诞生之后,它所采用的开源模式,令全世界对这个项目感兴趣的人都能参与进来。在世界各地优秀程序员的帮助下,Linux系统不断走向完善,最终大获成功。
2、登录服务器
SSH服务的端口是22
ssh 账户@IP地址
ssh cl@101.**.***.84
登录长时间无操作系统自动退出再次进行操作必须重新登录
top (性能监控)无操作时 我们可以输入top让它保持在线不进行退出
退出时在英文输入法状态下按q
3、目录解读
linux中超级管理员的账户是root
bin可执行的目录
dev磁盘
home用户根目录
4、Linux常用命令
4.1、ls命令
ls / 查看根目录下的所有文件夹
ls -a 列出目录下所有文件,包含隐藏文件,隐藏文件是.
ls -la 文件详细信息
ls -l 列表文件详细的信息
ls -d: 仅仅查看系统目录
ls -r 反序列排列
ls -t 以文件修改时间排列
ls -s 以文件大小排序
mkdir asd : 创建asd文件夹
touch A 创建A记事本
date 查看当前时间
4.2、别名 alias
设置别名alias 别名=“系统可执行命令”
取消别名 unalias别名
4.3、创建文件夹
查看当前账户目录pwd
mkdir asd : 当前路径下常见asd目录
常用命令: -p :创建多层级的文件夹 -v:创建的过程可以可视化的看到
mkdir -p a/b/c 在a目录下创建路径为b/c的目录
4.4、tree
安装tree需要命令为: yum install tree 那么卸载是为: yum remove tree
tree -l 查看目录深度
tree -L n 查看
4.5、切换目录cd
cd . 当前目录 cd.. 上级目录 cd 目录名称 cd / 根目录 cd ~ 进入home rmdir A 删除目录A(逐级删除)
4.6、删除
删除文件
rm -f A: 强制删除文件A rm -i A: 询问确认后删除文件A rm -v A: 询问确认后删除文件A(可视化的只展示) rm -iv A: 询问确认后删除文件+可视化展示A
删除目录
rm -r A: 直接删除目录A rm -rv A 向下可视化删除A rm -rf A 直接删除目录A和A下目录 -r 就是向下递归,不管有多少级目录,一并删除 -f 就是直接强行删除,不作任何提示的意思
4.7、复制cp命令
格式:cp 源文件 目标文件
将源文件复制至目标文件,或将多个源文件复制至目标目录。
注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!
cp A B B文件复制A 文件 cp -r A B A目录复制到B目录 (目录及所有项目) cp -i 提示
4.8、mv命令
移动文件或修改文件名,根据第二参数类型(如目录,则移动文件;如为文件则重命令该文件)。
当第二个参数为目录时,第一个参数可以是多个以空格分隔的文件或目录,然后移动第一个参数指定的多个文件到第二个参数指定的目录 中。
mv index.txt test1/ 把index.txt一定到test目录下 mv test1/index.txt test2 把test1目录下index.txt移动到test2目录下 mv -i test1/index.txt test2 把test1目录下index.txt移动到test2目录下*如果存在询问是否覆盖 mv index.txt index.py 把index.txt 重命名为index.py mv * ../ 移动当前文件夹下的所有文件到上一级目录
4.9、cat查看命令
cat -A index.txt 查看ndex.txt所有内容 cat -n index.txt 按查看ndex.txt所有内容 tac index.txt 倒序查看ndex.txt所有内容 cat index index2 > index3 将index index2合并到index3
一屏一屏查看文件内容 more(左下角会显示查看文件的进度)
切换至下一屏:空格键 切换至上一屏:Ctrl+B
补充知识:
wc -l 查看文档的总行数,
Enter向下n行,需要定义默认为1行
Ctrl+F向下滚动一屏 空格键 向下滚动一屏
Ctrl+B 返回上一屏输出当前行的行号
V 调用vi编辑器
q 退出more
查看文件内容 less(支持使用方向键翻页)
往回看:Ctrl+B 往后看:Ctrl+F 看完后退出:q
查看 文件开头几行 head -n N(N为数字,值得是要看几行)
查看 文件结尾几行 tail -n N(N为数字,值得是要看几行)
tail -f 循环读取(查看递增日志文件)
4.10、info查看命令帮助
4.11、chmod文件操作
用于改变 linux 系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
-
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。可使用 ls -l test.txt 查找
-
第一列共有 10 个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是 d,表示是一个目录。从第二个字符开始到第十个 9 个字符,3 个字符一组,分别表示了 3 组用户对文件或者目录的权限。权限字符用横线代表空许可,r 代表只读,w 代表写,x 代表可执行
-
chmod使用字母修改权限 既然文件的基本权限就是3种用户身份(所有者、所属组和其他人)搭配3种权限(rwx),chmod命令中用u、g、0分别代表3种身份,还用a表示全部的身份(all的缩写)。另外,chmod命令仍使用r、w、x分别表示读、写、执行权限。
r --> 4 w --> 2 x --> 1
r:读 4
w:写 2
x:执行 1
-:删除权限 0
s:特殊权限
u:目录或文件当前用户
g:当前群组
o:当前群组之外的用户
a:所有用户群组
chmod a+x A 给予A执行权限
4.12、资源查看
free命令
free命令默认是以kb为单位显示的,可以用free-m用Mb单位来显示。 Mem行:total= used + free 其中buffers和cached虽然计算在used内,但其实为可用内存。 Mem下一行:used为真实已占内存,free为真实可用内存。 Swap:内存交换区的使用情况。
top
-
(第⼀⾏: 系统时间 + 系统运⾏时间 + ⼏个⽤户 + 1/5/15分钟系统平均负载
-
第⼆⾏:进程总数(total) + 正在运⾏进程数(running) + 睡眠进程数(sleeping) + 停⽌的进程数(stopped)+ 僵⼫进程数(zombie)
-
第三⾏:⽤户空间CPU占⽐(us) + 内核空间CPU占⽐(sy)+ CPU空置率(id)
-
ls0f -i:22 查看22端口
-
netstat -tunlp
-
-t (tcp) 仅显示tcp相关选项
-
-u (udp)仅显示udp相关选项
-
-n 拒绝显示别名,能显示数字的全部转化为数字
-
-l 仅列出在Listen(监听)的服务状态
-
-p 显示建⽴相关链接的程序名
-
netstat -tunlp | grep 80 查询所有端口并过滤80端口
4.14、ps命令
ps(process status),用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用 top
linux上进程有5种状态:
-
运行(正在运行或在运行队列中等待)
-
中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
-
不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
-
僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
ps 工具标识进程的5种状态码:
-
D不可中断 uninterruptible sleep(usually IO)
-
R运行 runnable(on run queue)
-
S中断sleeping
-
T停止 traced or stopped
-
Z僵死a defunct("zombie")process
命令参数
-
-A显示所有进程
-
-显示所有进程
-
a显示同一终端下所有进程
-
c显示进程真实名称
-
e显示环境变量
-
f显示进程间的关系
-
r显示当前终端运行的进程
-
-aux显示所有包含其它使用的进程
-
-elf显示所有包含其它使用的进程
-
ps -aux | grep nginx 查看Nginx的进程
kill -9 pid 关闭进程
ps auxw | head -1;ps auxw|sort -rn -k4|head -5 -->内存占⽤前五的进程
ps auxw|head -1;ps auxw|sort -rn -k3|head -3--->cpu占⽤前三的进程
4.15、文件编辑vim
1、先创建文件,然后编写内容,最后保存 2、win+r,输入notepad,然后输入内容,最后保存
Linux操作文件: 1、先创建文件,然后vim打开编写内容,最后保存 2、vim 文件名
vim操作步骤: 1、vim打开要操作的文件 2、进入vim的编辑器后 3、输入a或者i 4、在最下栏就会显示insert/插入,那么就说明可以编写内容了 5、开始编写内容,编写完成后,开始保存步骤 6、按下esc键 7、再shift+: 8、wq就是保存 9、如果不保存,那么输入的是q!
-
/晨 快速定位:晨
-
x 删除光标所在字符
-
字符按键以及Shift组合,输⼊字符
-
ENTER,回⻋键,换⾏
-
BACK SPACE,退格键,删除光标前⼀个字符
-
DEL,删除键,删除光标后⼀个字符
-
⽅向键,在⽂本中移动光标
-
HOME/END,移动光标到⾏⾸/⾏尾
-
Page Up/Page Down,上/下翻⻚
4.16、文件查询
在 linux 要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:
-
find 实际搜索硬盘查询文件名称
-
whereis 查看文件位置
-
which 查看可执行的文件
-
locad 配合数据库查看文件位置
find
find则是遍历硬盘查找文件
-
-name按照文件名查找文件
-
-perm按文件权限查找文件
-
-usen按文件属主查找文件
-
-group按照文件所属的组来查找文件。
-
-exec 参数后面跟的是 command 命令,它的终止是以 ; 为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。{} 花括号代表前面find查找出来的文件名。
-
find / -name index.txt 查找index.txt文件
-
find ./ -perm 777 查找当前目录下权限为777的文件
-
find / -name ind* 查找ind开头的文件
正则表达式:
-
*多个字符串
-
?一个字符串
-
\d代表数字
-
\D代表字符串
-
-
find / -size +102400 查找大于100m
-
find -type 查找某一类型的文件
-
b块设备文件
-
d 目录
-
l 符号链接文件
-
p 道文件
-
f 普通文件
-
-
-size n:[c]查找文件长度为n块文件,带有c时表文件字节大小
-
-amin n 查找系统中最后N分钟访问的文件
-
-atime n 查找系统中最后24小时访问的文件
-
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-
-mtime n 查找系统中最后n*24小时被改变文件数据的文件(用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件
实例
find -atime 2 查看48 小时内文件
find test/ -perm 777 查找 test/ 目录下 权限为 777 的文件
find ./ -name '*.py' 在当前目录查找 以 .py 结尾的文件。 . 代表当前目录
whereis
whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
-
-b可执行的文件
-
-m定位帮助文件
-
-s 定位源代码文件
-
-u默认路径下其他文件(除可执行,帮助,源代码外)
-
whereis test 查找test程序相关文件
whereis -m locate 查找 lcoate 的帮助文件
whereis -s locate 查找 locate 的源码文件
which
which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令
which ls 查看 ls 命令是否存在
4.17、输出echo
-
echo $path
4.18、printf
-
s字符串
-
d数字
-
f带小数点数字
-
/t空格
-
/n换行
4.19、用户管理
-
创建 useradd
-
删除 userdel
-
切换 su -
4.20、文件传输
scp index.txt aa@IP:目录
scp 222.tar xl@101.43.158.84:/home/xl
4.21、文件压缩
zip
-
zip index.zip index.txt 把index.txt压缩成index.zip
-
unzip index.zip 解压index.zip
gzip
gzip index.gz index.txt 把index.txt压缩成index.zip
gunzip index.gz 解压index.zip
zip和gzip 的区别:
zip压缩或者解压,源文件保留。
gzip压缩或者解压,源文件不保留
tar 命令
用来压缩和解压文件。tar 本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。
弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件
-
-c 建立新的压缩文件
-
-f 指定压缩文件
-
-r 添加文件到已经压缩文件包中
-
-u 添加改了和现有的文件到压缩包中
-
-x 从压缩包中抽取文件
-
-t 显示压缩文件中的内容
-
-z 支持gzip压缩
-
-j 支持bzip2压缩
-
-Z 支持compress解压文件
-
-v 显示操作过程
tar -cvf 222.tar *.txt 当前目录下的TXT文件打包到222.tar tar -xvf 222.tar 解压222.tar
tar -jcvf 333.tar.gz *.txt 把TXT文件压缩的333.tar.gz tar -jxvf 333.tar.gz *.txt 把333.tar.gz 解压
tar -zcvf 目标路径 打包文件 tar -zcvf test1/asd.tar.gz test2/ test2下所有文件目录打包压缩到test1/asd.tar.gz tar -ztvf test1/asd.tar.gz 查看压缩文件 tar -zxvf test1/asd.tar.gz 解压
gzip 实例: 压缩 gzip fileName .tar.gz 和.tgz 解压:gunzip filename.gz 或 gzip -d filename.gz 对应:tar zcvf filename.tar.gz 解压:tar zxvf filename.tar.gz
bz2实例: 压缩 bzip2 -z filename .tar.bz2 解压:bunzip filename.bz2或bzip -d filename.bz2 对应:tar jcvf filename.tar.gz 解压:tar jxvf filename.tar.bz2
下载wget 网址