感觉linux基本命令好多都忘了, 今天简单的整理了一下. 如有不足还望指点!

1.基本命令

2.文件操作

3.用户以及用户权限

4.进程相关

查看centos版本信息: cat  /etc/os-release(注意cat后面有个空格)

 

Linux磁盘管理常用三个命令为df、du和fdisk。

  • df:列出文件系统的整体磁盘使用量

熟悉采用的Linux操作和Hadoop操作的实验环境是什么 熟悉常用的linux操作_bc

 

  • du:检查磁盘空间使用量

熟悉采用的Linux操作和Hadoop操作的实验环境是什么 熟悉常用的linux操作_端口号_02

 

  • fdisk:用于磁盘分区

熟悉采用的Linux操作和Hadoop操作的实验环境是什么 熟悉常用的linux操作_用户组_03

关机

sudo halt 立即关机
sudo poweroff 立即关机
shutdown -h now(root用户)
shutdown -h 60 表示60分钟后自动关机

重启

sudo reboot
shutdonw -r now(用户)
shutdown -r  60  (root)  表示60分钟之后重启

 

 

基本命令

1.cd --进入目录    

cd      相对路径或者绝对路径
cd ..   进入上一级目录
cd -    回到上一次操作的目录
cd ~    进入用户下面的根目录

2.pwd --查看当前目录路径 

3.ls --查看目录或文件    

-a 显示隐藏文件
-l  显示文件或者文件夹的详细信息
-R 递归显示,包括子文件或者子目录
-t   按时间排序

4.mkdir --创建目录 

-m

-p   创建目录, 若无父目录则创建

5.rmdir --删除目录  

-p 递归删除所有空目录

6.touch --创建空文件 

-t  指定时间
-r  参考文件的时间作为当前创建文件的日期

7.cat --查看文件内容 

-n    显示行号

-b    

-s   

tac  从最后一行开始显示,可以看出 tac 是 cat 的倒著写!

nl   显示的时候,顺道输出行号!

 

8.find --查找文件或目录   

find [搜索路径] [搜索关键词]

-a  逻辑与

-o  逻辑或

-name 文件名

-size 文件大小

-ctaime 文件修改时间


 

 tail 查看文件内容

-f 常用于查看正在改变的日志文件

# 要实时监视apache访问日志文件并显示包含IP地址192.168.43.157的行
tail -f /var/log/httpd/access_log |grep 192.168.43.157

 

9.rm --删除文件或目录 

-r  递归删除

-f  强制删除

-i  

 

10.cp --复制 

-r   递归复制

-f   覆盖复制

-i   提示是否覆盖

-p   保留文件夹的权限

 

11.mv --移动文件/重命名   

-b

-f

-i

 

grep 查找文件里符合条件的内容

# 要实时监视apache访问日志文件并显示包含IP地址192.168.43.157的行
tail -f /var/log/httpd/access_log |grep 192.168.43.157

# 系统报警显示了时间,但是日志文件太大无法直接 cat 查看。(查询含有特定文本的文件,并拿到这些文本所在的行)
grep -n '2019-10-24 00:01:11' *.log

 

top 动态查看进程

ps  静态查看进程

 

kill 杀死进程/结束进程

 

netstat -anp | grep 端口号  查看某端口号 是否被占用    LISTEN 表示被占用

netstat -nultp 查看当前所有已经使用的端口号

 

文件操作

文件权限

ls -alh 文件 ---查看文件详情

ls -l --查看所有文件文件夹详情

熟悉采用的Linux操作和Hadoop操作的实验环境是什么 熟悉常用的linux操作_端口号_04

 第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为[ d ]则是目录
  • 当为[ - ]则是文件;
  • 若是[ l ]则表示为链接文档(link file);
  • 若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

后面每三个为一组,总共为三组且均为‘’ rwx ‘’;分别代表着 ‘主权限’ , ‘组权限’ , ‘’其他用户权限‘’

  • ' r '代表可读(read)
  • ' w '代表可写(write)
  • ' x '代表可执行(execute)
  • ' - ' 代表无权限

熟悉采用的Linux操作和Hadoop操作的实验环境是什么 熟悉常用的linux操作_bc_05

 

熟悉采用的Linux操作和Hadoop操作的实验环境是什么 熟悉常用的linux操作_端口号_06

(2中分别表示文件的创建者和拥有者)

 

变更文件拥有者 

sudo chown zhuyalong iphone11 -- zhuyalong为变更后的所有者,iphone11为文件名

 

修改文件权限

 chmod 777  test.py -- 777为文件权限级别,test.py为文件名

vim使用

sudo  apt  install  vim --安装vim编辑器

vim三种模式:命令模式、插入模式、编辑模式。使用ESC 或 来切换模式。

命令模式下:

:q                      退出

:q!                     强制退出

:wq                   保存并退出

:set number     显示行号

:set nonumber  隐藏行号

/apache            在文档中查找apache 按n跳到下一个,shift+n上一个

yyp                   复制光标所在行,并粘贴

h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)

 

打包压缩相关命令

gzip:

bzip2:

tar:                打包压缩

     -c              归档文件

     -x              压缩文件

     -z              gzip压缩文件

     -j              bzip2压缩文件

     -v              显示压缩或解压缩过程 v(view)

     -f              使用档名

例:

tar -cvf /home/abc.tar /home/abc              只打包,不压缩

tar -zcvf /home/abc.tar.gz /home/abc        打包,并用gzip压缩

tar -jcvf /home/abc.tar.bz2 /home/abc      打包,并用bzip2压缩

当然,如果想解压缩,就直接替换上面的命令  tar -cvf  / tar -zcvf  / tar -jcvf 中的“c” 换成“x” 就可以了。

用户以及用户权限

创建用户:

sudo adduser zhuaylong --创建名为 zhuyalong 的用户

 

创建用户组 :

groups  zhuyalong -- 查看用户zhuyalong 属于哪个用户组

其中冒号之前表示用户,后面表示该用户所属的用户组。这里可以看到 zhuyalong 用户属于 zhuyalong 用户组,每次新建用户如果不指定用户组的话,默认会自动创建一个与用户名相同的用户组。

 

cat  /etc/group --查看所有用户组

/etc/group 的内容包括用户组(Group)、用户组口令、GID(组 ID) 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:

group_name:password:GID:user_list

你看到上面的 password 字段为一个 x,并不是说密码就是它,只是表示密码不可见而已。

 

将某用户加入sudo用户组
默认情况下新创建的用户是不具有 root 权限的,也不在 sudo 用户组,可以让其加入 sudo 用户组从而获取 root 权限:

sudo usermod -G sudo zhuyalong

 

删除用户和用户组

sudo deluser lilei -- 删除 'lilei' 用户

sudo deluser lilei --remove-home  -- 使用 --remove-home 参数在删除用户时候会一并将该用户的工作目录一并删除。如果不使用那么系统会自动在 /home 目录为该用户保留工作目录。

groupdel

 

 修改用户密码

sudo passwd 修改当前用户密码

sudo passwd 【用户】 修改用户密码

 

切换当前用户

su --切换root用户,su zhuyalong --切换为 zhuyalong 用户

 

进程相关

top    动态查看进程

熟悉采用的Linux操作和Hadoop操作的实验环境是什么 熟悉常用的linux操作_bc_07

 

我们看看第top显示的 第一排:

内容

解释

top

表示当前程序的名称

15:39:50

表示当前的系统的时间

up 269 days,11:25

表示该机器已经启动了多长时间

1 user

表示当前系统中只有一个用户

load average: 0.56,0.47,0.40

分别对应 1、5、15 分钟内 cpu 的平均负载

 

 

 

 

 

 

 

(#查看物理 CPU 的个数 cat /proc/cpuinfo | grep "physical id" | sort | uniq |wc -l

"physical id" | grep "0" | wc -l)

来看 top 的第二行数据,基本上第二行是进程的一个情况统计

内容

解释

Tasks: 26 total

进程总数

1 running

1 个正在运行的进程数

25 sleeping

25 个睡眠的进程数

0 stopped

没有停止的进程数

0 zombie

没有僵尸进程数

 

 

 

 

 

 

 

来看 top 的第三行数据,这一行基本上是 CPU 的一个使用情况的统计了

内容

解释

Cpu(s): 1.0%us

用户空间进程占用 CPU 百分比

1.0% sy

内核空间运行占用 CPU 百分比

0.0%ni

用户进程空间内改变过优先级的进程占用 CPU 百分比

97.9%id

空闲 CPU 百分比

0.0%wa

等待输入输出的 CPU 时间百分比

0.1%hi

硬中断(Hardware IRQ)占用 CPU 的百分比

0.0%si

软中断(Software IRQ)占用 CPU 的百分比

0.0%st

(Steal time) 是 hypervisor 等虚拟服务中,虚拟 CPU 等待实际 CPU 的时间的百分比

 

 

 

 

 

 

 

 

 

 

 

来看 top 的第四行数据,这一行基本上是内存的一个使用情况的统计了:

内容

解释

8176740 total

物理内存总量

8032104 used

使用的物理内存总量

144636 free

空闲内存总量

313088 buffers

用作内核缓存的内存量

 

 

 

 

 

 

来看 top 的第五行数据,这一行基本上是交换区的一个使用情况的统计了:

内容

解释

total

交换区总量

used

使用的交换区总量

free

空闲交换区总量

cached

缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖

 

 

 

 

 

 

 

再下面就是进程的一个情况了

列名

解释

PID

进程 id

USER

该进程的所属用户

PR

该进程执行的优先级 priority 值

NI

该进程的 nice 值

VIRT

该进程任务所使用的虚拟内存的总数

RES

该进程所使用的物理内存数,也称之为驻留内存数

SHR

该进程共享内存的大小

S

该进程进程的状态: S=sleep R=running Z=zombie

%CPU

该进程 CPU 的利用率

%MEM

该进程内存的利用率

TIME+

该进程活跃的总时间

COMMAND

该进程运行的名字

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ps  静态查看进程

kill 杀死进程/结束进程

netstat -anp | grep 端口号  查看某端口号 是否被占用    LISTEN 表示被占用

netstat -nultp 查看当前所有已经使用的端口号