目录

基本命令

关机和重启

  • 关机
shutdown -h now 立刻关机
shutdown -h 5 5分钟后关机
poweroff 立刻关机
  • 重启
shutdown -r now 立刻重启
shutdown -r 5 5分钟后重启
reboot 立刻重启

帮助命令

  • –help命令
shutdown --help:
ifconfig --help:查看网卡信息
  • man命令(命令说明书)
man shutdown

注意:man shutdown打开命令说明书之后,使用按键q退出

用户管理命令

添加用户:useradd 命令

 useradd zhangdapao	

修改密码:passwd 命令

passwd zhangdapao

查看登录用户:who 命令

显示所有登录用户信息

who

【Linux】常用操作命令-LMLPHP

查看登录用户详细信息 :w

【Linux】常用操作命令-LMLPHP

切换用户

【Linux】常用操作命令-LMLPHP

目录操作命令

cd

cd命令用于切换当前工作目录到指定的目录。例如,输入"cd /home/user"可将当前目录切换到/home/user目录

cd ..		返回上一级目录
cd../.. 	返回上两级目录
cd ~		进入个人主目录,也叫作home目录
cd -		返回上次所在的目录
cd / 切换到根目录
cd /usr 切换到根目录下的usr目录

pwd命令

pwd: pwd命令用于显示当前工作目录的完整路径

目录查看 ls [-al]

ls命令: 用于显示指定目录下的文件和目录列表。如果没有指定目录,则默认显示当前目录下的文件和目录列表。

ls		    查看当前目录下的所有目录和文件
ls -l(ll)	查看文件和目录的详细资料
ls -a		查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -R		连同子目录的内容一起列出(递归列出文件)
ls [0-9]    显示包含数字的文件名和目录名
ls -l 或 ll 列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls /指定目录 查看指定目录下的所有目录和文件 如:ls /usr

目录操作【增,删,改,查】

增:创建目录【增】 mkdir

mkdir aaa 在当前目录下创建一个名为aaa的目录
mkdir /usr/aaa 在指定目录下创建一个名为aaa的目录
mkdir -p a/b 在a目录下创建b目录,如果当前目录下连a目录都没有,则先创建a目录再创建b目录

删:删除目录或文件【删】rm

rm: rm命令用于删除指定的文件或目录。

-f		若目标已经存在,不会询问。
-i		若目标文件已经存在,则询问是否覆盖
-u		若目标文件已经存在。且比目标文件新,才会更新
删除文件:
rm 文件 删除当前目录下的文件
rm -f 文件 删除当前目录的的文件(不询问)

删除目录:
rm -r aaa 递归删除当前目录下的aaa目录
rm -rf aaa 递归删除当前目录下的aaa目录(不询问)

全部删除:
rm -rf * 将当前目录下的所有目录和文件全部删除
rm -rf /* 【自杀命令!慎用!慎用!慎用!】将根目录下的所有文件全部删除

注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了方便大家的记忆,无论删除任何目录或文件,都直接使用 rm -rf 目录/文件/压缩包

改:目录修改【改】mv 和 cp

  1. 重命名目录
    命令:mv 当前目录 新目录
    例如:mv aaa bbb 将目录aaa改为bbb
    注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作

  2. 剪切目录
    命令:mv 目录名称 目录的新位置
    示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面 mv /usr/tmp/aaa /usr
    注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

  3. 拷贝目录
    命令:cp -r 目录名称 目录拷贝的目标位置 -r代表递归
    示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面 cp /usr/tmp/aaa /usr
    注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归

cp: cp命令用于复制指定的文件或目录。例如,输入"cp file.txt /home/user"可将当前目录下名为file.txt的文件复制到/home/user目录下。

-a :将文件的特性一起复制
-p :连同文件的属性一起复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为
-u :目标文件与源文件有差异时才会复制

**mv: ** mv命令用于移动指定的文件或目录。例如,输入"mv file.txt /home/user"可将当前目录下名为file.txt的文件移动到/home/user目录下。

-f		若目标已经存在,不会询问。
-i		若目标文件已经存在,则询问是否覆盖
-u		若目标文件已经存在。且比目标文件新,才会更新

查:搜索目录【查】find

find: find命令用于在文件系统中查找文件。例如,输入"find / -name file.txt"可在文件系统的根目录下查找所有名为file.txt的文件,并将结果输出到屏幕上。“-type"表示按照文件类型查找,”-mtime"表示按照文件修改时间查找等。
命令:find 目录 参数 文件名称

find / -name file1 	从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 	搜索属于用户 'user1' 的文件和目录
find /usr/bin -type f -atime +100 		搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 		搜索在10天内被创建或者修改过的文件
whereis halt 	显示一个二进制文件、源码或man的位置
which halt 	显示一个二进制文件或可执行文件的完整路径

示例:find /usr/tmp -name 'a*' 查找/usr/tmp目录下的所有以a开头的目录或文件

文件操作命令

文件操作【增,删,改,查】

增:新建文件【增】touch

命令:touch 文件名
示例:在当前目录创建一个名为aa.txt的文件 touch aa.txt

若当前目录已存在aa.txt,再执行这个命令不会报错,但是也不会重新再创建aa.txt

> aa.txt这个命令:若当前目录不存在aa.txt则新建一个,若已存在则会创建一个新的空aa.txt文件覆盖原来的文件

删: 删除文件 【删】 rm

命令:rm -rf 文件名

改:修改文件【改】 vi或vim

vi编辑器的3种模式:基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下

1.命令行模式(command mode)

控制屏幕光标的移动,字符、字或行的删除,查找,移动复制某区段及进入Insert mode下,或者到 last line mode。
命令行模式下的常用命令:

  1. 控制光标移动:↑,↓,j
  2. 删除当前行:dd
  3. 查找:/字符
  4. 进入编辑模式:i o a
  5. 进入底行模式::
2.编辑模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。
编辑模式下常用命令:

  • ESC 退出编辑模式到命令行模式;
3.底行模式(last line mode)

将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
底行模式下常用命令:
【1】退出编辑: :q
【2】强制退出: :q!
【3】保存并退出: :wq

打开文件

命令:vi 文件名
示例:打开当前目录下的aa.txt文件 vi aa.txt 或者 vim aa.txt

注意:使用vi编辑器打开文件后,并不能编辑,因为此时处于命令模式,点击键盘i/a/o进入编辑模式。

编辑文件

使用vi编辑器打开文件后点击按键:i ,a或者o即可进入编辑模式。
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入

定位命令

【Linux】常用操作命令-LMLPHP

复制和剪切命令

【Linux】常用操作命令-LMLPHP

保存或者取消编辑
保存文件:

第一步:ESC 进入命令行模式
第二步:: 进入底行模式
第三步:wq 保存并退出编辑

取消编辑:

第一步:ESC 进入命令行模式
第二步:: 进入底行模式
第三步:q! 撤销本次修改并退出编辑

查:文件的查看【查】

文件的查看命令:cat/more/less/tail

cat:看最后一屏

cat命令用于查看指定文件的内容。例如,输入"cat file.txt"可显示出名为file.txt的文件的内容。

cat file1 	从第一个字节开始正向查看文件的内容
tac file1 	从最后一行开始反向查看一个文件的内容
cat -n file1 	标示文件的行数
more file1 	查看一个长文件的内容
head -n 2 file1 	查看一个文件的前两行
tail -n 2 file1 	查看一个文件的最后两行
tail -n +1000 file1  	从1000行开始显示,显示1000行以后的
cat filename | head -n 3000 | tail -n +1000  	显示1000行到3000行
cat filename | tail -n +3000 | head -n 1000  	从第3000行开始,显示1000(即显示3000~3999行)

示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容

cat sudo.conf
more:百分比显示

示例:使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q可以退出查看

more sudo.conf
less:翻页查看

示例:使用less查看/etc/sudo.conf文件,可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看

less sudo.conf
tail:指定行数或者动态查看

示例:使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束

tail -10 sudo.conf

权限修改

chmod

权限:rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。
chmod命令 :chmod命令用于修改指定文件或目录的权限。例如,输入"chmod 755 file.txt"可将名为file.txt的文件的权限设置为755,即所有者具有读、写和执行权限,组用户和其他用户只有读和执行权限。

示例1:
ls -lh 显示权限
chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r,4 )、写(w,2)和执行(x,1)的权限
chmod go-rwx directory1  删除群组(g)与其他人(o)对目录的读写执行权限
示例2

给aaa.txt文件权限改为可执行文件权限,aaa.txt文件的权限是-rw-------

第一位:-就代表是文件,d代表是文件夹
第一段(3位):代表拥有者的权限
第二段(3位):代表拥有者所在的组,组员的权限
第三段(最后3位):代表的是其他用户的权限

  • rw- — —
    命令:chmod +x aaa.txt
    或者采用8421法
    命令:chmod 100 aaa.txt

chown命令

chown命令: chown命令用于修改指定文件或目录的所有者。例如,输入"chown user file.txt"可将名为file.txt的文件的所有者设置为user

(改变文件的所有者)
chown user1 file1 改变一个文件的所有人属性
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chown user1:group1 file1 改变一个文件的所有人和群组属性

chgrp命令

(改变文件所属用户组)

chgrp group1 file1 改变文件的群组

paste命令

paste: paste命令用于将两个或多个文件按行合并,并将结果输出到标准输出。其语法为

paste [option]... [file]...

paste file1 file2 合并两个文件或两栏的内容
paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分

sort命令

sort: sort命令用于对文件进行排序,其语法为:

sort [option]... [file]... :其中,option表示选项,file表示要排序的文件名。如果不指定文件名,则默认从标准输入读取数据。
-r:降序排列。
-n:按数值大小排序。
-u:去重,只输出不重复的行。
-k:指定排序的键,可以是行中的某个字段。


sort file1 file2 排序两个文件的内容
sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)
sort file1 file2 | uniq -u 删除交集,留下其他的行
sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)

comm命令

comm命令用于比较两个已排序的文件,并输出它们的交集、差集和并集。其语法为:

comm [option]... file1 file2
其中,option表示选项,file1和file2表示要比较的两个文件。常用选项包括:
-1:只输出file1中有而file2中没有的行。
-2:只输出file2中有而file1中没有的行。
-3:只输出file1和file2中都存在的行。
-i:在比较时忽略大小写。
-u:将所有不同的行都输出。

comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容
comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容
comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分

压缩文件操作

打包和压缩

Windows的压缩文件的扩展名 .zip/.rar
linux中的打包文件:aa.tar
linux中的压缩文件:bb.gz
linux中打包并压缩的文件:.tar.gz

Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。

命令:tar -zcvf 打包压缩后的文件名 要打包的文件

	z:调用gzip压缩命令进行压缩
	c:打包文件
	v:显示运行过程
	f:指定文件名

示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
tar -zcvf ab.tar aa.txt bb.txt或:tar -zcvf ab.tar *

解压

命令:tar [-zxvf] 压缩文件
其中:x:代表解压

  • 示例1:
    将/usr/tmp 下的ab.tar解压到当前目录下 tar -zxvf /usr/tmp/ab.tar
  • 示例2:
  • 将/usr/tmp 下的ab.tar解压到根目录/usr下:tar -xvf ab.tar -C /usr
    C代表指定解压的位置

tar命令总结

tar命令: 用于打包和压缩文件和目录。例如,输入"tar -cvzf archive.tar.gz /home/user"可将/home/user目录及其下的所有文件打包成名为archive.tar.gz的压缩文件。
(对文件进行打包,默认情况并不会压缩,如果指定了相应的参数,它还会调用相应的压缩程序(如gzip和bzip等)进行压缩和解压)

参数介绍

-c :新建打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir

tar.gz格式文件

# 压缩时不会占用太多cpu
# 压缩
tar -zcvf archive_name.tar.gz filename
# 解压缩
# -C dir指定解压路径,默认情况下直接解压到当前目录下。
tar -zxvf archive_name.tar.gz -C new_dir

tar格式文件

# tar格式文件用的非常广泛,消耗CPU较少。
# 它只是一个打包工具,不负责压缩,打包之后整体占用空间不变,编码也不会变。
# 打包
tar -cvf archive_name.tar directory_to_compress
# 解包
tar -xvf archive_name.tar -C dir

zip格式文件

# zip是使用最多的文档压缩格式
# 方便跨平台使用,但是压缩率不是很高
# 压缩
zip -r archive_name.zip filename
# 将几个文件和目录同时压缩成一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1
# 解压
unzip archive_name.zip

查找命令

grep 文本搜索

grep命令是一种强大的文本搜索工具。

ps -ef | grep sshd  查找指定ssh服务进程 
ps -ef | grep sshd | grep -v grep 查找指定服务进程,排除gerp身 
ps -ef | grep sshd -c 查找指定进程个数 

grep命令用于在指定文件中查找匹配的文本。例如,输入"grep keyword file.txt"可在名为file.txt的文件中查找包含关键词"keyword"的文本行。

(分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工等等)
grep Aug /var/log/messages  在文件 '/var/log/messages'中查找关键词"Aug"
grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇
grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行
grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"
sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2"
sed '/^$/d' example.txt 从example.txt文件中删除所有空白行

find

find命令在目录结构中搜索文件,并对搜索结果执行指定的操作。
find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

find . -name "*.log" -ls  在当前目录查找以.log结尾的文件,并显示详细信息。 
find /root/ -perm 600   查找/root/目录下权限为600的文件 
find . -type f -name "*.log"  查找当目录,以.log结尾的普通文件 
find . -type d | sort   查找当前所有目录并排序 
find . -size +100M  查找当前目录大于100M的文件

find命令用于在文件系统中查找文件。例如,输入"find / -name file.txt"可在文件系统的根目录下查找所有名为file.txt的文件,并将结果输出到屏幕上。“-type"表示按照文件类型查找,”-mtime"表示按照文件修改时间查找等。

find / -name file1 	从 '/' 开始进入根文件系统搜索文件和目录
find / -user user1 	搜索属于用户 'user1' 的文件和目录
find /usr/bin -type f -atime +100 		搜索在过去100天内未被使用过的执行文件
find /usr/bin -type f -mtime -10 		搜索在10天内被创建或者修改过的文件
whereis halt 	显示一个二进制文件、源码或man的位置
which halt 	显示一个二进制文件或可执行文件的完整路径

locate

locate 让使用者可以很快速的搜寻某个路径。默认每天自动更新一次,所以使用locate 命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。如果数据库中没有查询的数据,则会报出locate: can not stat () `/var/lib/mlocate/mlocate.db’: No such file or directory该错误!updatedb即可!

updatedb
locate /etc/sh 搜索etc目录下所有以sh开头的文件 
locate pwd 查找和pwd相关的所有文件

whereis

whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件

将和ls文件相关的文件都查找出来

whereis ls 

which

which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

which pwd  查找pwd命令所在路径 
which java  查找path中java的路径 

su、sudo

su

su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。

su test:切换到test用户,但是路径还是/root目录
su - test : 切换到test用户,路径变成了/home/test
su : 切换到root用户,但是路径还是原来的路径
su - : 切换到root用户,并且路径是/root

su不足:如果某个用户需要使用root权限、则必须要把root密码告诉此用户。
退出返回之前的用户:exit

sudo

sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。

进入sudo配置文件命令vi /etc/sudoer或者visudo

案例:
允许hadoop用户以root身份执行各种应用命令,需要输入hadoop用户的密码。
hadoop  ALL=(ALL)   ALL 
 
案例:
只允许hadoop用户以root身份执行ls 、cat命令,并且执行时候免输入密码。 
配置文件中: 
hadoop  ALL=NOPASSWD:  /bin/ls, /bin/cat 

系统服务

service iptables status  --查看iptables服务的状态
service iptables start  --开启iptables服务
service iptables stop  --停止iptables服务
service iptables restart  --重启iptables服务
 
chkconfig iptables off  --关闭iptables服务的开机自启动
chkconfig iptables on  --开启iptables服务的开机自启动

网络管理

主机名配置

[root@node1 ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=node1

ifconfig:查看网卡信息

【Linux】常用操作命令-LMLPHP

重启网络

service network restart

ping:查看与某台机器的连接情况

ping baidu.com

netstat -an:查看当前系统端口

【Linux】常用操作命令-LMLPHP

搜索指定端口

比如搜索8080端口

netstat -an | grep 8080

kill命令

kill:(用于向某个工作(%jobnumber)或者是某个PID(数字)传送一个信号,它通常与ps和jobs命令一起使用),语法为:

kill [signal] PID

其中,signal表示要发送的信号,PID表示进程的ID。如果不指定信号,则默认发送SIGTERM信号,这是终止进程的常用信号。常用信号包括:

SIGTERM:默认信号,用于终止进程。
SIGKILL:强制终止进程,不允许进程进行清理操作。
SIGHUP:挂起进程。
SIGSTOP:停止进程。

通常情况下,杀死某个进程:在这里插入代码片kill -9 pid
killall命令用于向进程发送信号以终止进程,与kill命令不同的是,killall命令可以根据进程名或命令名来终止进程

top命令

top: top命令用于显示系统中最耗费资源的进程。例如,输入"top"可实时显示当前系统中CPU和内存使用率最高的进程。top命令还可以用来监视系统的性能。

shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
time 测算一个命令(即程序)的执行时间

防火墙

开启防火墙

systemctl start 服务名

关闭防火墙(服务器重启后还会自动开启防火墙)

systemctl stop firewalld

禁止防火墙开机启动

systemctl disable firewalld

开放端口

sudo firewall-cmd --zone=public --add-port=端口号/协议 --permanent
例如,要开放TCP端口80,可以使用以下命令:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
03-09 20:48