linux -- Linux
一、常用操作以及概念
快捷键
- Tab:命令和文件补齐
- Ctrl+C:中断正在运行的程序
- Ctrl+D:在录入信息时表示end of file结束输入,在终端中相当于exit回车,远程会直接退出
- who:查看当前在线用户情况,Linux不同于windows多用户在线很普遍
二、磁盘
磁盘接口
- IDE:不知道是啥,反正基本没人用了
- SATA:现在比较通用的,抗干扰性强,二代接口速度大概是300M/s,三代标准600M/s
- 还有SCSI和他的优化版SAS,都比SATA好当然也比它贵,所以现在还不是很普及
磁盘名称
Linux里面的每个存储工具(磁盘或者光盘之类的)都被当做一个文件夹,比如两个磁盘就是两个根目录,不像Windows里面可以把一块硬盘分成好几个盘(没有实际使用过,不是很了解)
三、文件
文件属性
ll查看一个目录的详细信息:==drwxr-xr-x 4 root root 4.0K 10月 22 16:43 temp==
- 第一个字符代表文件类型
- d:目录
- -:文件
- l:链接文件
- 类型后面的9位代表权限
- r、w、x表示可读、可写、可执行
- 9位中美三个为一组代表一个角色的权限,分别对应文件拥有者、所属群组和其他人的权限
- 4:链接数
- root:文件拥有者
- root:文件所属群组
- 4.0k:文件大小
- 10月 22 16:43:文件最后修改时间
- temp:文件名称
touch
==touch [-acdmt] filename==:更新文件时间或者创建文件(不太清楚更新时间是什么作用)
- a : 更新 atime
- c : 更新 ctime,若该文件不存在则不建立新文件
- m : 更新 mtime
- d : 后面可以接更新日期而不使用当前日期,也可以使用 –date=”日期或时间”
- t : 后面可以接更新时间而不使用当前时间,格式为[YYYYMMDDhhmm]
修改权限
可以将一组权限用数字来表示,r:4、w:2、x:1;所以通常用==chmod 777 filename==给文件所有用户所有权限,4、2、1的组合很巧妙不会出现一个数字能代表两种权限组合的情况
默认权限
- 文件默认权限是666、没有执行的权限,所以好多时候要执行一个脚本的时候需要去修改他的权限
- 文件夹的默认权限是777,因为默认是可以打开的
- 注意由于文件名是存储在文件夹里面的,所以只对文件有写入权限的时候是不能
获取文件内容
- cat:取得文件内容,有的时候vim打开文件去复制会出现符合编码的问题,用cat打印到命令行再复制就不会
- tac:将文件内容倒着打印出来
- more:对比cat它可以一页页的查看,适合大文件
- less:比more多了一个向前翻页
- head:取得文件的前几行 head -n filename
- tail:文件的后几行,通常用来查看日志文件
搜索
- which 只能搜索可执行的文件
- whereis 比which强一些能搜索所有的文件(不太清楚和locate是个什么区别)
- locate 依赖linux维护的数据库来搜索速度非常快,但是数据库的更新是每天一次,新文件会出现搜不到的情况,可以用updatedb来立即更新数据库(估计每天只更新一次是为了节省资源开销,老是用updatedb的话影响整体性能了)
- find 文件搜索,从根目录搜索,会很慢,可以自己限定范围,比如 find . -name filename
- 总结:试了一下前面的三个命令都用得不是很明白,大概在找一写程序的安装目录的时候用whereis 比较合适,其他时候还是老老实实用find自己去缩小查找范围,不过find命令是真的很慢
压缩
- linux里面常见的压缩文件格式
- .Z commpress
- .zip zip
- .gz gzip
- .bz2 bzip2
- .xz xz
- .tar tar程序打包数据,没有经过压缩
- .tar.gz .tar.bz2 .tar.xz 就是经过对应的方式进行了压缩
- 不同的压缩类型
- gzip
- gzip filename 直接压缩文件,源文件会消失,出现一个filename.gz的文件
- gzip -d filename 解压文件,这个文件当然得是压缩文件了,可以解开compress、zip和gzip所压缩的文件
- bzip2 提供比gzip更高的压缩比
- xz 比bzip2更高的压缩比,这几种方式的压缩比是增加的,同时会花费更多的时间
- gzip
打包
tar命令,试了一下没有成功,用于压缩文件夹的
四、Bash(创建一个.sh文件)
变量操作
赋值 =
对变量的取用在变量的前面加上
$或者${}输出变量echo
当变量的内容中包含空格,需要使用双引号或者单引号-
- 双引号内的特殊字符可以保留原本的属性
- 单引号内的特殊字符就是特殊字符本身
x=”x is
$LANG" y='y is $LANG’
输出结果:
x is zh_CN.UTF-8
y is $LANG
五、管道指令
- 管道是指将一个命令的输出作为另一个命令的输入,管道命令可以是连续的多个命令,中间用|分隔
- 提取指令:cut,提取结果中需要的部分涉及正则表达式,用的时候再具体说
- 排序:sort
- 去重:uniq
字符转换:
- tr 删除或者替换字符
- last | tr ‘[a-z]’ ‘[A-Z]’ 将last输出的内容中的小写转换为大写
- tr -d string 删除行中sting字符串
- col 将tab字符转换为空格
- expand将tab转换为一定数量的空格,默认是8个
分区指令
split将一个文件划分为多个文件
split [-bl] file PREFIX
-b:以大小分区,可以加单位,b,k,m之类的,不知道默认的是什么
-l:以行数分区
-PREFIX:分区文件的前缀
完整示例:split -l 2 test.py son
将test.py文件没两行分为一个文件,前缀是son,最后得到的文件是sonaa、sonab、sonac...源文件还存在,分割后的文件没有格式后缀
六、进程管理
查看进程
- ps
- ps -l 查看自己的进程
- ps aux 查看系统所有进程
- ps aux | grep threadx 查看特定的进程,这个就是以前经常用的
- pstree -A 查看所有进程树,这个会比较直观的把所有的进程以树状结构展示出来
- top 显示实时进程信息(类似于Windows里面的任务管理)top -d 2 两秒钟刷新一次
- netstat 查看端口占用情况
- netstat -anp | grep portNum 查看特定端口占用情况,一般是先通过ps命令把程序对应的端口号找出来,再用这个命令查看
