Linux常用命令

咕哒 2024年02月23日 123次浏览

链接Linux服务器

Linux服务器默认使用ssh进行连接管理,Windows下可使用xshell,fineshell等终端工具,亦可使用Windows自带的ssh直接链接

ssh root@172.16.0.1

root代表认证用户名,@链接主机

连接后显示

[root@localhost ~]#

root:代表当前登录的用户名

localhost:代表当前主机名

:当前目录,代表用户家目录

#:特权用户标志

前要

Linux下一切皆文件

tab键的用途:用于补全命令或路径,两次tab键可以显示所有当前开头的命令

Linux大多数正常执行的命令是没有回显的,所以没说错即为对

.开头的文件或文件夹在Linux下表示隐藏

命令的参数都是可选的,可以没有参数。亦可以把多个参数简写在一起

例如ls -l -h -a可以简写为ls -lha

文件目录类

mkdir:创建文件夹

mkdir [参数] 文件夹名
	mkdir hello
	mkdir -p hello/test	# 创建hello目录并在hello目录里创建test目录

参数:

​ -p:递归创建

cd:切换目录

cd 目录名
	cd hello	# 进入hello目录
	cd ..		# 进入上一级目录
	cd /		# 进入根目录
	cd -		# 返回上一目录(回退)
	cd ~		# 回到用户家目录

ls:列出目录内容

ls [参数] 目录名
	ls hello
	ls /

参数:

​ -a:显示隐藏文件/目录

​ -l:显示详细信息(简写ll)

​ -t:按创建时间降序

​ -h:以人类可读的方式显示文件大小

pwd:显示当前位置

pwd

touch:创建空文件

可以修改文件或目录的最后修改时间,如果文件不存在,则创建文件。

touch [参数] 文件名
	touch hello.txt
	touch 1.txt 2.txt 3.txt	# 创建多个文件

参数:

​ -a:修改文件的读取时间

​ -m:修改文件的更改时间

​ -c:文件不存在时,不创建文件

cp:复制文件(夹)

cp [参数] 源文件 目标
	cp hello.txt /home/hello.txt
	cp -r test /home

参数:

​ -r:复制目录

​ -f:覆盖时不提示

​ -p:带属性复制(权限,修改时间)

mv:移动文件(夹)

mv [参数] 源文件 目标
	mv hello.txt /home/hello.txt
	mv -f test /home

参数:

​ -f:取消覆盖询问

​ -b:覆盖前创建一个备份

​ -n:不覆盖文件或目录

​ -u:移动的文件或目录无重复时,才会移动

​ -v:显示移动过程

rm:删除文件(夹)

rm [参数] 文件(夹)
	rm hello.txt
	rm -rf /test

参数:

​ -r:删除目录(递归删除)

​ -f:删除是不再确认

​ -v:显示删除过程

du:查看文件(夹)大小

du [参数] 文件(夹)
	du
	du -h /opt

参数:

​ -a:显示文件大小

​ -h:以K、M、G为单位

find:查找文件

find [参数] 查找位置 文件名
	find /home -name a.txt
	find /home -name '*.txt'	# 在home目录下搜索所有.txt后缀的文件
	find /home/ -type f -atime -1

参数:

​ -name:指定文件名

​ -iname:在name的基础上,忽略大小写

​ -type:指定文件类型(f表示文件,d表示目录)

​ -ctime:过去n天内创建的文件

​ -atime:过去n天内被读取过的文件

​ -mtime:过去n天内被修改过的文件

​ -amin:过去n分钟内被读取过的文件

​ -cmin:过去n分钟内被修改过的文件

文件内容类

cat:查看文件所有内容

cat [参数] 文件名
	cat hello.txt
	cat -n hello.txt

参数:

​ -n:显示行数

​ -b:类似-n,但不对空白行编号

​ -s:将连续的空白行替换成一行

wc:统计行数字数

wc [参数] 文件名
	wc a.txt

参数:

​ -c:只显示Bytes数

​ -l:只显示行数

​ -w:只显示字数

more:逐页查看

more [参数] 文件名
	more a.txt
	more +10 a.txt

参数:

​ +num:从第 num 行开始显示

​ -f:计算行数时,因单行字数太长,而自动换行为两行及以上的,算作一行。

​ -s:连续两行以上的空白行,替换为一行空白行

head:查看开头部分

head [参数] 文件名
	head -10 a.txt

参数:

​ -n:显示n行

​ -c:显示多少个字节

​ -v:显示文件名

tail:查看结尾部分

tail [参数] 文件名
	tail -10 a.txt
	tail -f -s 2 a.txt

参数:

​ -n:显示最后n行

​ -f:持续查看(Ctrl+c退出)

​ -s:配合-f,间隔指定时间更新一次

vi/vim:文本编辑器

vim部分系统默认不预装

vim 文件名

打开编辑器后可使用快捷键操作

​ i:在光标所在字符前进入插入模式(可写内容)

​ o:在光标所在行后面新增一行插入

​ dd:删除当前整行,d3d删除3行

​ gg:跳至文首

​ G:跳至文末

​ : 进入底部模式:wq 保存退出 :q! 不保存退出

权限管理类

chmod:设置权限

chmod u+x a.txt
chmod 777 test.txt

参数:

​ -u 文件所有者

​ -g 文件所有者所在的组

​ -o 其他用户

​ -a 所有用户(a=u+g+o)

​ -R 递归设置(对目录下所有文件和目录都设置权限)

​ +增加权限

​ -减少权限

​ =设置权限

数字形式表示权限:

​ r 读权限(4)

​ w 写权限(2)

​ x 执行权限(1)

chown:修改所属用户

chown user a.txt
chouw user:user a.txt	# 同时修改属主和属组

参数:

​ -R 递归设置(对目录下所有文件和目录都设置权限)

chgrp:修改所属组

chgrp user001 a.txt

参数:

​ -R 递归设置(对目录下所有文件和目录都设置权限)

用户/用户组

useradd:添加用户

参数:

​ -u 指定用户ID

​ -d 指定用户主目录

​ -g 指定用户所属组

​ -G 指定用户所属的附加组

​ -s 指定Shell文件

userdel:删除用户

usermod:修改用户

参数:

​ -u 修改用户ID

​ -l 修改用户名称

​ -g 修改用户组

​ -G 修改用户附加组

​ -d 修改用户登入时的目录

​ -s 修改用户的shell

​ -e 修改账号的有效期

​ -L 锁定用户密码

​ -U 解除锁定

passwd:修改密码

​ -f 强制用户下次登录时修改口令

​ -d 使用户无口令

​ -l 锁定用户(无法登录)

​ -u 解锁用户

su:切换用户

系统管理类

ifconfig:查看IP地址

ip a:查看IP地址

yum:Redhat及SUSU的包管理器

​ 列出所有可更新的软件清单命令:yum check-update

​ 更新所有软件命令:yum update

安装指定的软件命令:**yum install <package_name>**

​ 更新指定的软件命令:yum update <package_name>

​ 列出所有可安裝的软件清单命令:yum list

​ 删除软件包命令:yum remove <package_name>

​ 查找软件包命令:yum search

​ 清除缓存命令:

yum clean packages: 清除缓存目录下的软件包

yum clean headers: 清除缓存目录下的 headers

yum clean oldheaders: 清除缓存目录下旧的 headers

# 安装vim
yum install -y vim

uname:查看系统信息

uname -a

参数:

​ -a (all):全部信息

​ -m:电脑类型

​ -n:主机名称

​ -s:系统名

whoami:查看当前登录的用户

date:日期时间

date	# 查看当前时间
date -s 20240102	# 修改当前日期
date -s 20:11		# 修改当前时间

last:最近登录

[root@localhost ~]# last
root     pts/0        192.168.31.179   Mon Sep 2620:29   still logged in   
root     tty1                          Mon Sep 2620:29   still logged in

j结果字段解释:

第一列:用户名

第二列:终端位置,pts/0(伪终端)指SSH远程登录;tty指本地登录或直连

第三列:登录的IP地址,本地终端登录则显示空

第四列:登录开始时间

第五列:登录结束(退出)时间

第六列:登录持续时间,still logged in 表示处于登录状态

lastd:最近登录失败信息

lastlog:最后一次登录信息

ps:查看进程

ps -ef | grep 关键词

参数:

​ -A 列出所有的进程

​ -e 显示全部进程

​ -f 显示全部列

​ -w 显示加宽可以显示较多的资讯

​ -au 显示较详细的资讯

​ -aux 显示所有包含其他使用者的进程

​ -u 指定用户

结果字段说明:

​ UID:执行进程的用户id

​ PID:进程id

​ PPID:父进程id(没有父进程则称为僵尸进程)

​ C:cpu的占用率

​ STIME:进程的启动时间

​ TTY:终端设备(?表示该进程不是由终端设备发起)

​ CMD:进程名称或路径

top:动态查看进程(任务管理器)

P键 按照CPU使用率降序

M键 按照内存降序

q键 退出

核心字段:

S:进程运行状态(S表示睡眠,R表示运行)

%CPU:cpu占用率

%MEM:内存占用率

COMMAND:进程名称或路径

kill:结束进程

kill 2566		# 结束进程ID2566的进程
kill -9 2566 	# 强制结束
killall httpd 	# 按进程名结束

reboot:重启

poweroff:关机