Linux 最常用命令大全(Ubuntu)

首先放上一张包含了Linux核心命令的脑图:

在这里插入图片描述
下面的文章再对重点命令和上图没列出的命令进行单独讲解。

1.文件操作命令

下面是 Linux 主要的文件目录:

/root:系统管理员的主文件夹
/home:用户主目录(自行创建的用户的用户目录就在该文件夹下)

/usr/local:用户自行安装的软件
/opt:放置第三方的软件

/etc:配置文件
/dev:任何设备与接口都以文件形式存放在此目录

/bin:单用户维护模式下还能够被操作的命令
/boot:开机所需文件——内核,开机菜单及所需配置文件等

/tmp:任何人均可使用的“共享”临时目录
/var:主要存放经常变化的文件,如日志

1.1 文件读写操作

1.读(cat/more/less/head/tail)

pwd // 当前位置

ls    // 当前目录下所有文件(夹)
ls -l // 以列的形式显示
ls -a // 当前目录下所有文件夹,包含.(点)开头的隐藏文件
ls -F // 以"/"形式显示文件夹,比如 usr/ etc/ 
ls -R // 递归展示子目录,相当于可以显示当前路径内的所有子文件
ls -r // 倒序展示,,默认的顺序是(a,b,c,d)正序的

cat [选项].. [文件] // 读一个文件
cat -n 			   // 查看并显示行号
cat >b<<EOF 	   // 以覆盖的形式向文件(b)写入,写入EOF时结束(注:1.如果文件不存在会创建,2.该命令可用来清空文件)
cat a > b 		   // 用文件a的内容覆盖文件b的内容
cat a >> b         // 将文件a的内容追加到文件b后面
    
more a.txt // 分页读,一次性加载完
less a.txt // 分页度,逐页加载,适合读大文件
cat  a.txt | more  // 只读,-n行号,more分页
    
head (-n 5) a.txt 	   // 首读,默认10
tail(-n 5) (-f) a.log // 尾读,默认 10,-f 实时更新

PS:这张图片出自这篇博客

2.写(vim/echo/>/>>)

vim:
    yy / 5yy:  // 复制5行
    p:		    // 粘贴
    dd:        // 删除
    G/gg:      // 首/尾
    a:	        // 撤销
    /~~:       // 查找~(n下一个,N上一个)
    set nu:    // 行号
    
echo // 打印到控制台
    
> 	// 重定向:覆盖,可配合所有读操作(ls /a > a.txt)
>>  // 重定向:追加

3.执行

sh a.sh  // 前台执行,也可以(./)
    
nohup command>out.file 2>&1 & // 后台执行
    // nohup: no hang up 不挂起
    // 2>&1: 标准错误与标准输出合并,合并到out.file
    // &: 后台运行
    
ps -ef|grep 关键字|awk '{print %2}'|xargs kill -9 // 查找,进程号,并关闭

1.2 文件的CRUD

1.增(mkdir/touch)

mkdir a 	  // 创建目录a
mkdir -p a/b  // 创建级联目录a/b,-p多级目录
touch a.txt   // 创建空文件

2.删(rm)

rm a.txt    // 删除a.txt
rm -r a/    // 删除目录a
rm -f a.txt // -f强制删除

3.改(mv/cp/解压)

mv a.txt /root // 移动到指定目录
mv a.txt b.txt // 同一目录下的移动表示重命名
mv a/ /root/b  // 移动a目录到b目录(注:如果b目录不存在,则会在移动时创建,最终的结果是a目录所有内容进入b目录) 
    
cp a.txt /root // 拷贝文件到指定目录
cp -r a/ /root // 拷贝 a 文件夹到 /root 目录
    
tar -zcvf a.tar.gz  a.txt b.txt // 打包成tar.gz,将当前目录下的a.txt,b.txt打包成a.tar.gz
tar -zxvf a.tar.gz			    // 解压tar.gz
    
zip a.txt            // 打包成a.zip
zip -r a.zip /a  	 // 将a目录打包成a.zip
unzip (-d /a) a.zip  // 解压zip,-d指定解压目录
    
gzip a.txt    // 打包成a.gzip
gunzip a.gzip // 解压a.gzip

4.查(find/locate/grep/history)

find /a -name a.txt		// 在/a目录下按名查找(注:还可以采用通配符,比如*.conf、redis*)
find . -user a 		   	// 在当前目录下按user查找
find /a -size +20M 		// 在/a目录下按文件大小查找
    
updatedb	 // 创建locate库
locate a.txt // 寻找指定文件,快
    
grep // 管道连接符
    
histroy (5) // 查看历史指令,5只显示近5个
!178	    // 执行178号历史了命令

2.应用操作命令

2.1 安装卸载

apt-get 相当于Ubuntu的软件管家,而CentOS的软件管家是yum

apt-get update				    // 更新源
apt-get install (--reinstall) a // 安装,--reinstall重新安装
apt-get remove (--purage) a 	// 卸载,--purage包括配置文件
apt-get pgrade a 				// 更新已安装
apt-get source a 				// 下载源码包
    
apt-cache search a // 搜索安装包
apt-cache show a   // 获取包相关信息

// 配置环境变量,
export JAVA_HOME=/root/jdk-XXX_linux-x64 
export PATH=$JAVA_HOME/bin:$PATH // 命令行使用export只在当前会话有效,退出命令行后就失效
source .bashrc					 // 可以通过编辑.bashrc实现永久配置

另外,关于系统环境变量的配置,比如 jdk,maven,git,可以通过以下方式(以配置jdk为例)

1.首先打开编辑环境变量的文件(注:在用第一次配置时该文件为空)
vim ~/.bash_profile 	

2.然后输入要配置的环境
export JAVA_HOME=$/usr/local/java/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin
注:1)export 命令的意思是导入
    2)mac 的 jdk 默认地址是 Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
    3)建议不要直接配置 PATH 而是先配置 JAVA_HOME,因为在开发时可能会用到 JAVA_HOME

3.使配置的环境变量生效
source ~/.bash_profile

4.检查jdk环境是否配置成功
java -version

5.另外,上述配置只是当前会话有效,所以,为了它在整个系统设生效,我们还需(注:这里只用配置一次)
vim ~/.zshrc
在最后加上一句
source ~/.bash_profile
然后使该配置生效
source ~/.zshrc

2.2 运行管理

systemctl status ~		       // 查看指定程序状态
systemctl enable/disable ~ 	   // 自启
systemctl start/restart/stop ~ // 开始/停止/重启
    
ufw stauts			   // 防火墙状态
ufw enable/disable     // 防火墙开关
ufw allow 22 (from ip) // 开放端口,from指定ip
ufw deny smtp 		   // 禁止的服务

两点注意:

  1. Centos 等系统的防火墙是 iptables
  2. 如果没有 systemctl 命令,可以用 service 命令,但格式变为 service iptables stop/status。

2.3 查看运行情况

ps 
  -a:显示当前终端所有进程信息
  -u:以用户格式显示
  -x:显示后台运行参数
  -e:所有进程
  -f:全格式
  -T:显示现行终端机下的所有进程
pstree  // 进程树
    
kill (-9) a // 杀死指定进程,一般要指定杀死级别(默认15)
killall	    // 全部杀死
      
netstat -tlpn // 查看网络状态
	-t:显示TCP传输协议的连线状态
	-l:显示监控中的服务器的Socket
	-p:显示正在使用Socket的程序识别码和程序名称
	-n:显示网络硬件外围设备的符号连接名称
	
top // 查看cpu状态

// 定时任务相关
crontab [-u username] [-l|-e|-r]
	-u :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;
	-e :编辑 crontab 的工作内容
	-l :查阅 crontab 的工作内容
	-r :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑

2.4 系统操作

shutdown (-h now/1) // 关机,-h定时关闭(现在/1min)
halt 	// 立即关机
reboot 	// 重启
sync    // 数据同步
设置运行级别
磁盘操作

3.权限相关命令

3.1 用户管理

useradd a  // 创建用户
    -m:创建用户目录(注:如果不-m,则不会创建在/home下创建用户目录)
    -d /home/abc : 自行指定用户主目录(注:如果此目录不存在,就需要加上-m参数,表示创建该目录(abc),并指定它为(a)用户目录)
    -g abc :加入指定用户组(注:用户创建后默认自为一组,比如此时用户a的组为a)
    
passwd a // 设置密码(注:之后会弹出提示--输入新的 UNIX 密码)
    
userdel (-r) a // 删除用户,-r删掉用户目录
    
id 用户名 // 查看指定用户,包括uid和gid(组)

usermod -g 用户组 用户名 // 更改用户组
usermod -d 目录 用户名   // 更改用户登录目录(注:默认是自己的用户目录(/home/~),root 用户是 /root)
    
su -xf a // 用户切换,exit退出,高(root)->低(普通用户)不用密码
sudo	 // 以root身份执行

注:Linux系统中的每个用户都在/etc/passwd文件中有一个对应的记录行,它记录了这个用户的一些基本属性。

3.2 用户组管理

groupadd 用户组 // 创建用户组
groupdel 用户组 // 删除用户组

3.3 文件管理

chown (-r) 用户名 文件名 // 更改文件所有者
    
chgrp (-r) 组名 文件名  // 更改文件所属用户组
    
chmod u=rwx,g=rx,o=r 文件名 // 更改文件权限 u=所有者,g=同组,o=other
chmod 7 5 1 文件名   	   // r=4,w=2,x=1

常用命令基本就这些,文末再放个参考链接

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A minor

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值