Loading

Linux常用命令大全

前言:

本人Linux小白一个,然后这个学期开了Hadoop课程,以前没有学过Linux操作系统,所以现在和大家慢慢学习,将最常用的几个命令不断写下来与大家分享,欢迎大家补充,错误之处还请大家指正!谢!

先说下Linux吧,我安装的是CentOS7.6版本,其他版本都可以比如呢Ubuntu,Deepin等等都是Linux内核的Linux操作系统。建议新手使用用户界面的操作系统然后用命令行操作电脑,等到以后熟悉就可以抛弃用户界面了,那时候,学成归来你就知道用户界面的鸡肋在哪里了。这里先点下,用户界面占用资源太大,且速度慢,等等原因。真正感受要自己体会才知道,比如我们的安卓手机,64G的一买来肯定没有64G,因为系统必须占用一部分。然后为什么不用Windows操作系统呢,其实也可以用,比如Windows的服务器版本,但是很多企业的服务器绝不用Windows。这里说几点原因,不是很全欢迎指正:

1、Linux很稳定。Linux能连续工作若干年都不用重启。 我印象最深刻的是,学校会议室的Winds电脑,常年不关,但是过段时间就会发生蓝屏,服务器常年运行很少重启也就是这个道理。就是Linux很简洁,占用内存少,而Windows垃圾占用内存不断增加会导致最后蓝屏。
2、Linux在安全性与性能上也好于Windows。 
3、Linux开源免费,而Windows收费。
4、Linux作为服务器还能更容易维护。一个运维工程师同时维护上百台Linux服务器并不是一件很难的事情。

个人认为最主要就是 安全性、简介性、稳定性、开源性。

好了,新手一开始真的不知道从哪里下手Linux,有人建议背命令行开始,有人建议直接操作,我认为先从原理是理解一下,再和Windows进行对比,很多地方与Windows一样的操作,知道相同的不同点就很简单了。我们的目的就是学习使用命令行去操作一台电脑,将可视化的界面换成命令,那么常用操作就是  点击进入、返回、打开文件、编辑文件、创建文件、删除文件、移动文件、保存文件、常用Linux状态查看 等等一些。要知道我们使用鼠标点Windows界面也其实就是电脑将操作自动翻译成命令行而已。所以学会基本的命令行就能操作Linux系统,其他的一些不常用的直接问度娘就好。如果是做Linux开发的朋友,本篇文章不一定能满足您,你需要专门学习Linux基本原理等等课程。

一、明白我们身处哪个目录下

打开一台Linux操作系统计算机(无界面),我们在哪里必须弄清楚。先明白一点我们对计算机的操作基本上是对各种配置文件的操作。开机登录就能看到如下界面:  特别要解释的就是 cheney 与 ~ 这两个东西。

以cheney用户登录:

以root用户登录:

cheney 是我的计算机用户,相当于Windows的默认用户 Administrator 等。~ 表示家目录,$ 表示普通用户,#表示root用户,关于这个先不懂没问题,后面就懂了。root 用户就是权限最大的用户,一般一台电脑只有一个,一般可以理解为在腾讯马化腾才能拥有的权限,其他人只能拥有一部分普通用户权限,但是root权限马化腾可以无条件访问或者说更改普通用户的内容。

目录解释:我们一开电脑所处的的 ~目录 也就是家目录处于home下,这目录下有不同的用户,但是root用户是隐藏不可见的。红色的cheney用户目录就是我自己的用户,我们点击我的电脑里面的文件就是cheney下面的目录。/ 就是根目录,可以理解为 / 为一个大房子的门,而用户是这个房子里的每一个房间,我们一打开电脑就出生在对应的房间里,我们可以跑到大房子的门边去,但是普通用户进入别的用户房间需要权限,root不需要任何权限可以进入任何房间。

点击图形界面桌面的主文件(相当于Windows的我的电脑),就进入cheney下的目录,如下所示:

 

 

二、体验目录结构

 

1、cd 是用来切换目录的,类似鼠标双击进入与单击后退


cd xx 进入xx目录
cd /  进入根目录
cd    进入用户主目录
cd ~  进入用户主目录
cd -  返回进入此目录之前所在的目录
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思)
cd ../.. 返回上两级目录

2、ls 是显示当前目录下的文件

ls(选项)(参数)
-a 显示所有档案及目录(ls默认不会列出隐藏文件);

好了  只用这两个就能穿梭在Linux文件系统中了,如下图:

三、常用Linux命令

 

3、mkdir 创建目录(文件夹)。如果没有指定绝对路径则是在当前目录下创建,否则在对应目录下创建目录。

mkdir  example   #当前目录下创建example文件夹
mkdir /home/cheney/example    #在绝对路径下创建example文件夹
mkdir -p /home/cheney/text/example 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录

4、rm 删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。被rm删除的文件或者目录无法恢复!

参数:
-f:强制删除文件或目录
-i:删除已有文件或目录之前先询问用户
-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理

rm example.txt   #删除文件
rm -rf 目录      #删除目录

5、cp 复制文件。

参数:
-f:强行复制文件或目录,不论目标文件或目录是否已存在
-i:覆盖既有文件之前先询问用户
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理



cp -r text.txt  /home/cheney/文档
#将当前目录下的text.txt文件复制到/home/cheney/文档下
cp /home/cheney/text.txt 
#将文件/home/cheney/text.txt复制到当前目录

5、mv  移动文件或者重命名

mv 目录名 文件名	出错
mv 文件名 文件名	将源文件名改为目标文件名
mv 文件名 目录名	将文件移动到目标目录
mv 目录名 目录名	目标目录已存在,将源目录
                移动到目标目录;目标
                目录不存在则改名


mv /usr/student/*  . 
#将/usr/student下的所有文件和目录移到当前目录下。当前目录(用.表示)

mv ex3 new1
#将文件ex3改名为new1

6、pwd 以绝对路径的方式显示用户当前工作目录

 

7、tree 以树状图列出目录的内容

 

8、chmod 变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。
示例:

chmod +x what_cpu_do.sh 给脚本what_cpu_do.sh增加可执行权限
chmod u+x,g+w test  //为文件test设置自己可以执行,组员可以写入的权限

 

9、file 查看给定文件的类型。

file text.txt

10、cat 连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。

cat example.txt

 

11、tail 输出文件中的尾部内容,默认在屏幕上显示指定文件的末尾10行。
常用选项:

-f:显示文件最新追加的内容(查看服务器上动态刷新的日志时经常使用)。
-n:输出文件的尾部N(N位数字)行内容

12、head 显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
常用选项:

-n<数字>:指定显示头部内容的行数
-c<字符数>:指定显示头部内容的字符数
-v:总是显示文件名的头信息
-q:不显示文件名的头信息

13、tar tar命令可以为linux的文件和目录创建档案。

-c:建立新的备份文件
-z:通过gzip指令处理备份文件
-v:显示指令执行过程
-f:指定备份文件
-x:从备份文件中还原文件

tar -cvf log.tar log2012.log 仅打包,不压缩!
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩 
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩

14、kill 命令用来删除执行中的程序或工作

kill -9 强制终止进程
kill -15 正常终止进程

15、ping 用来测试主机之间网络的连通性。

ping www.baidu.com

16、telnet 用于登录远程主机,对远程主机进行管理。常用它来检测端口。

telnet www.baidu.com:8086

17、su 用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码

sudo 以其他身份来执行命令,预设的身份为root。

在/etc/sudoers中设置了可执行sudo指令的用户。du 查看使用空间。

-a 显示目录中个别文件的大小
-b 显示目录或文件大小时,以byte为单位
 -c 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和
-k 以KB(1024bytes)为单位输出
-m 以MB为单位输出
-s 仅显示总计,只列出最后加总的值
-h 以K,M,G为单位,提高信息的可读性

18、grep用来定位文本中要查询的字符串的行数


1、输出所在行数
grep  -n  "xxx"   str.txt  

2、查找时不区分大小写:
grep –i "被查找的字符串" 文件名
 
3、查找匹配的行数:
grep -c "被查找的字符串" 文件名
 
4、从文件内容查找不匹配指定字符串的行:
grep –v "被查找的字符串" 文件名
 
5、从根目录开始查找所有扩展名为.log的文本文件,并找出包含”ERROR”的行
find / -type f -name "*.log" | xargs grep "ERROR"
例子:从当前目录开始查找所有扩展名为.in的文本文件,并找出包含”thermcontact”的行
find . -name "*.in" | xargs grep "thermcontact"
 
6、快速查找当前文件内容并做修改
vi 文件名
按ESC键 输入 “/查找的内容”按回车键可定位查找第一个,如果需要查找下一个需要不停的按n键
再按回车键就结束查找定位
按Esc键,输入以下命令
:s/text1/text2 用于将光标所在段落搜索到的第一个”text1“替换为”text2“;
:s/text1/text2/g 用于将光标所在段落的所有”text1“替换为”text2“;
:m,ns/text1/text2/g 用于将从 m行开始至n 行结束的所有搜索到的”text1“替换为”text2 “。其中可以使用$表示末行,即“1,$ ”表示替换文档中的所有符合条件的字符.

19、kill 杀死进程

$ pgrep firefox
1827

看到了什么?没错火狐的PID,接下来又要打字了:

$kill -s 9 1827

 

 

 

posted @ 2019-10-14 21:21  cheney-pro  阅读(39)  评论(0)    收藏  举报