Linux基本命令学习

微信扫一扫,分享到朋友圈

Linux基本命令学习

操作系统进行信息查询

硬盘大小

查看磁盘信息:  fdisk -l
/dev/sda       操作系统中第一块硬盘的名称以及所在路径
linux操作系统中一切皆文件(文件名)        sd(硬盘类型)    a(第一块)

为什么很多时候实际容量比厂家标注的要小?
因为厂家按照1000作为进制,而操作系统按照1024作为进制

内存大小

 cat /proc/meminfo     只需要关注第一行,Memtotal

CPU型号

cat /proc/cpuinfo

关机的命令

reboot   重启
poweroff  关机

操作系统的目录结构及文件属性

 linux操作系统树状结构
目录==文件夹
起始      /                  是一切的起源
cd    change directory
cd ..       返回上一级目录
pwd  显示当前路径
ls   list,列出当前目录中的内容
/bin  普通用户和管理员都可以执行的命令
/sbin   只有管理员才能执行的命令 关机重启
/boot  引导 主引导目录 独立的分区 启动菜单 内核
/dev  device-设备  设备文件存放目录
/etc  配置文件存放目录
/home  普通用户的家目录
/root   管理员的家
/lib  /lib64  一些库文件
/media  光驱的挂载目录
/mnt  临时设备挂载目录
/proc  里面的数据都在内存里,进程的所在目录
/tmp  临时文件存放目录
/usr  软件安装目录
/var  尝变文件存放目录 日志文件 邮件文件

快捷键使用及文件系统分类

安装vmware-tools 实现虚拟机和真实机之间的文件复制
进入文件夹,可以通过绝对路径/相对路径进入
Tab   可以补全命令字/路径/文件
Ctrl+L  清屏
Ctrl+C  终止当前进程

linux通过文件颜色分辨文件类型

蓝色  目录
黑色  普通文件
浅蓝色  符号链接(快捷方式)
黑底黄字  设备文件 硬盘 sda
绿色  可执行文件
红色  压缩包
紫色  图片&模块文件

增删改查基础命令

查看目录下有哪些内容  ls
查看文件内容  cat
创建文件  touch    echo “hello” > 文件
创建目录  mkdir 目录名
改:剪切和复制  mv(也可以重命名)  cp
创建符号链接  ln -s /tmp/class1/class11.txt /root/Desktop/ [链接名字]        (就是快捷方式,一定要用绝对路径)
删除  rm  可选项 -f (强制删除,但是目录下面有东西时不行)  -fr/-rf (r递归删除,可以删除目录)

命令字帮助信息查询   

linux命令字格式 : 命令字 [选项] [文件或者目录]
那么如何查看一个命令字的帮助手册
man  menu-菜单
eg.     man ls
退出这个详细的查看模式按q
查询就输入 /-l    就能查到很多包含 -l 的东西, 用 n 键跳下一个
ls -a  查看隐藏文件
ls -l  查看文件的详细信息
ls -lh  显示文件的大小
ls -R  递归显示目录中子目录的内容


 

当前操作系统有内部命令和外部命令(安装的第三方软件带来的,通常都带有帮助手册)
内部命令  命令解释器自带的命令  help cd (查看cd的使用)

压缩与解压

/tmp 目录中建立一个大小为100m的文件bigfile
dd if=/dev/zero of=/tmp/bigfile bs=1M count=100

 

 

 if = inputfile    of = outputfile   bs 单位  count 计数器

gzip bigfile (用来压缩该文件)

 

 

 红色代表是压缩文件.

用 file bigfile.gz 命令 分析该压缩文件

 

 

 可以看出该文件是gzip压缩的

那么怎么解压缩呢?

gunzip bigfile.gz

 得到解压文件


 

还有个bzip2,压缩与解压缩命令分别如下:

root@ryan-virtual-machine:/tmp# bzip2 bigfile
root@ryan-virtual-machine:/tmp# bunzip2 bigfile.bz2

 还有查看目录大小,一般不用ls

用 du -sh /tmp

root@ryan-virtual-machine:/tmp# ls -lhd /tmp
drwxrwxrwt 18 root root 4.0K 8月 31 19:48 /tmp
root@ryan-virtual-machine:/tmp# du -sh /tmp
101M /tmp

 怎么压缩个目录呢>>>这俩工具都不能压缩目录呀?

如何压缩目录

先进行打包(tar),再压缩.

tar -cf /tmp/allfile.tar /tmp/allfile          (c是create)

对allfile文件夹打包成allfile.tar

不打开包的情况下看看包里有啥: tar -tvf allfile.tar

怎么解包呢?

tar -xf allfile.tar -C [目标目录]

有没有直接打包压缩?

tar -zcf /tmp/allfile.tar.gz allfile

可以直接解压解包?

tar -zxf allfile.tar.gz -C [目标路径]

-z使用的gzip压缩, -j 使用的是bzip2

vim编辑器使用

vi编辑器, vim的升级版

在/tmp目录中建立一个名为test.txt的文件并写入hello

三种工作模式:  命令模式  输入模式  末行模式

命令模式->输入模式 : i

输入模式->末行模式 : Esc到命令模式 ,然后输入 : 再加命令 q (推出) / wq (保存退出) / !q (不保存退出)

:set nu  显示行号

:% s/l/x/g  %代表每一行, s代表替换, g是代表无论出现多少的 l 都会被替换成 x              :% s/old/new/g , 每一行中的old替换成new

命令模式有非常多的快捷编辑快捷键

2yy复制当前行及下一行

p为粘贴到当前行下

dd 删除当前行

gg回到第一行

G回到最后一行

50G去五十行

我想删除50-60的所有行, 光标放在50行, 输入50dd

想要删除50-55行的数据  用          :50,55d

linux软件安装

软件的分类:

源码包 :

 代码公开,需要自己编译安装,一般以压缩包形式提供,开源,可以进行二次编辑, 并且会有很多人维护

可以指定安装的路径和编辑所需要的功能

现在有一个 httpd-2.2.15.tar.gz

先解包                 tar -zxf httpd-2.2.15.tar.gz -C /usr/src                 (/usr/src是源码存放路径)

README可以看到软件功能, 安装是哪个文件指导我们呢?   INSTALL

通过配置脚本指定安装路径和功能, 并且声称makefile编译脚本文件

/configure –prefix=/usr/local/webserver

通过make命令控制makefile文件进行顺序编译

最后将编译好的文件拷贝到安装路径下         make install

封装后的软件包 : 

源码包安装步骤略显繁杂,不同linux厂家对软件进行了封装.

特点后缀              

rpm  red hat package manager

deb  debian

源码包可以不考虑系统的版本, 封装后就不能无视啦  封装好的软件包都是压缩文件

ls | grep “tree”    解释:      | 是管道符, 作用是将前一个命令的输出作为后一个命令的输入, grep是过滤, .

安装rpm包软件步骤

针对软件安装,首先要确认有没有安装过该软件.   (CentOS)   rpm -qa  列出所有已经安装过的rpm软件包       (Ubuntu) dpkg -l

确认该软件的作用 .          (CentOS) rpm -qpi [软件名]    查看软件详细信息  

确认该软件安装的路径  封装后的软件包安装路径固定

安装软件        (CentOS) rpm -ivh [软件名]   (Ubuntu)  apt-get installl

 

怎么卸载  (CentOS) rpm -e [软件名]  (Ubuntu) apt-get uninstall

通过yum安装软件

卸载软件需要先卸载依赖它的软件

安装软件需要先安装依赖

不想这样安装卸载了, 想根据依赖关系表安装、卸载软件

linux操作系统中的用户分类

ryan  普通用户 比管理员低, 也可以呃登陆系统

root  超级管理员

用户的分类和组

/etc/passwd  保存了操作系统中所有用户的信息

 

 

用户名

密码占位符

用户的uid  0表示超级用户   500-60000表示普通用户  1-499表示程序用户, 不允许登陆系统

基本组的gid  先有组, 才有用户

用户信息记录字段

用户的家目录

用户登陆系统后使用的命令解释器

/etc/shadow      保存了用户密码信息

 

 

 用户名

用户的密码加密后的字符串

距离1970/1/1 密码最近一次的修改时间

密码的最短有效期

密码的最长有效期

密码过期前7天警告

密码的不活跃期

用户的失效时间

调整及建立用户属性

建立一个class1的组,组id为1005,class2的组id 2000
建立tom用户要求其基本组是class1组, 附加组为class2组, tom用户的uid为600
建立一个程序用户uid为250 用户名为testuser 没有家目录
将tom用户设定密码为123 并设定密码最长有效期为90天 将用户密码进行锁定使其无法登陆系统
删除tom用户和testuser用户 删除class1组和2组

groupadd class1 
cat /etc/group  发现建立的组id不符合要求

groupmod -g 1005 class1  我改!

groupadd -g 2000 class2  这次直接干!

useradd -g class1 tom  还要uid?还要附加组

usermod -G 2000 -u 600 tom

 

 

 useradd -u 250 -M -s /sbin/nologin testuser  -M是没有家目录, -s /sbin/nologin 是不能登录

 

 

 chage -M 90 tom

 passwd -l tom  锁定tom

passwd -u tom  解锁tom

passwd -S tom  查看用户密码信息

userdel -r testuser

userdel -r tom

groupdel class1

groupdel class2

调整文件及目录权限

直接查看文件权限的命令

root@ryan-virtual-machine:/tmp# ls -l test.txt-rw-r--r-- 1 root root 6 8月  31 20:25 test.txt

 

查看文件夹权限呢

 

 

 -rw-r–r– 1 root(所属者) root(所属组) 6(关联的数据 / 目录中的子目录格式) 8月 31 20:25 test.txt

 权限一共10个字母 :    d rwx — —

字段1 : 文件类型   -普通文件 d目录 l符号链接 b块设备

字段2 : 文件所属者对该文件的权限

    r          w        x

文件       读取        写入      执行

目录   可以查看目录内容       可以增删文件  可以进入目录

字段3 : 文件所属组的权限

字段4 : 其他用户的权限(既不是文件所有者也不是文件所属组中的用户)


 

chmod 用户 算数运算符 权限 文件

用户  : u(所属者)   g(所属组)   o(其他用户的权限)   a(all)

算术运算符 : -去除权限  +添加权限  =指定权限

权限 :     rwx


 

改变所属者为tom 所属组改为tom组

chown tom /tmp/test.txt

chgrp tom /tmp/test.txt

 

 

 7代表 111 , 是4+2+1 ,代表 rwx全有


 

粘滞位针对目录进行授权, 目录中创建的文件只有建立者可以删除

chmod o+t test  这个 t 

 

 

 tmp文件夹就有粘滞位, 每个进程只能删除自己的文件


 

sgid是针对目录建立的权限, 在该目录中建立的文件所属组继承父目录的属组

chmod g+s test


 

suid针对可执行文件建立.运行这个程序的用户就会继承这个文件所属者的权限, 这个跟系统的安全有很大关系

chmod u+s [文件名]

 

不再允许添加新用户的请求

创建新用户时候, 没有指定组的话, 先在 /etc/group创建一个用户同名组

再在/etc/passwd注册用户信息

再在/etc/shadow注册密码信息

在/home下生成家目录文件

只要/etc/passwd和/etc/shadow目录锁定 ,就可以不再添加新用户. 

chattr +i /etc/passwd /etc/shadow  这就成啦   i 就是不可变属性

解除的话就 -i 即可

umask值

 

目录的最高权限  0777-0022 = 0755

文件 666 – 022 = 644

umask值最好是027, 让其他用户没有任何权限

在操作系统里怎么修改这个值呢??

一个是在        /etc/profile

还有一个在  /etc/bashrc

 

建立用户默认密码有效期90天

还在  /etc/profile         文件里修改      PASS_MAX_DAYS

 

Linux基本命令学习

原文地址:https://www.cnblogs.com/coderge/p/13595307.html

TiDB on Kubernetes 最佳实践

上一篇

三星对Galaxy S21 Ultra动大手术:背部四摄砍掉ToF、新增S Pen支持

下一篇

你也可能喜欢

Linux基本命令学习

长按储存图像,分享给朋友