阿里云服务器双11活动(全网最低价)—1核2G3年180元(不限CPU性能)【限时抢购】

Linux常用命令集合汇总

958次阅读
一条评论

基本命令

创建文件

touch test.txt

创建文件夹

mkdir nginx-1.20.2

删除文件夹

rm -rf 文件夹

查找文件

# 全局查找my.cnf文件
find  / -name my.cnf

查看当前路径

pwd

查看子目录

查看当前目录下所有子目录和文件

ls

切换路径

cd  /www/wwwroot/task.vpssw.com

查看进程

ps -def | grep "kooteam.jar" 

杀进程

kill -s 9 pid   //pid是进程id

下载文件

wget http://nginx.org/download/nginx-1.20.2.tar.gz

vim编辑

未修改退出

文件内容没有修改,正常退出

:q

不保存退出

文件内容有修改,不保存退出

:q!

正常保存修改

:wq

强制保存修改

强制执行命令

方法一:

使 用 :wq! 保存退出

方法二:

vim进入文件,输入i编辑好文件,按esc,输入冒号,再输入底下代码
:w !sudo tee %

特别说明:强制保存修改对只读属性(i属性)的文件无效!

用户

添加用户并设置密码

# 用户名称自己自定义取一个
 adduser 用户名
# 为普通用户设置新密码 
 passwd 用户名

普通用户授予root权限

# 编辑sudoers文件
vim /etc/sudoers

## Allow root to run any commands anywhere 
root    ALL=(ALL)       ALL
用户名1  ALL=(ALL)       ALL
用户名2   ALL=(ALL)       ALL
## Allows members of the 'sys' group to run networking, software, 

# 在root后面添加格式:
# 用户名  ALL=(ALL)     ALL
# 保存文件并退出。

用户切换

# 普通用户切换到root用户(需要输入普通用户密码)
 sudo -i
# root权限切换到普通用户
 su - 用户名
sudo : 暂时切换到超级用户模式以执行超级用户权限,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。
su : 切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。
sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。

sudo -i 直接运行sudo命令加-i参数
sudo su 运行sudo命令给su命令提权,运行su命令。
sudo -i 运行结果 PWD=/root
sudo su 运行结果 PWD=/home/用户名(当前用户主目录)

权限

chmod命令

查看文件权限

ls -l 文件

查看文件权限代码

文件/文件系统的详细信息显示

stat /usr/bin/sudo
[root@iZuf6bm7y86rsciyk4lvriZ ~]# stat /usr/bin/sudo
  文件:"/usr/bin/sudo"
  大小:147336          块:288        IO 块:4096   普通文件
设备:fd01h/64769d      Inode:270076      硬链接:1
权限:(4755/-rwsr-xr-x)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2022-01-22 20:14:08.349319244 +0800
最近更改:2020-04-01 12:37:10.000000000 +0800
最近改动:2022-01-22 20:14:05.280197848 +0800
创建时间:-

给文件赋权限

Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令

chmod -R 755 文件

chattr命令

i:不可修改权限 例:chattr u+i filename 则filename文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i filename就可以了。查看文件是否设置了i权限用lsattr filename。
去除i权限使用chattr -i filename

# 查看chattr属性
lsattr /etc/sudoers
# 给文件添加上i属性(只读属性)
chattr +i /etc/sudoers
# 给文件去除上i属性(只读属性)
chattr -i /etc/sudoers

数据库

MySQL

登录MySQL

mysql -u root -p

MySQL实例

mysql> use mysql;//mysql是mysql系统创建的数据库实例

修改root密码

mysql> alter user'root'@'%' IDENTIFIED BY '新密码';

刷新权限

mysql> flush privileges;

退出

mysql> quit

Nginx

重启

/usr/local/nginx/sbin/nginx -s reload重新加载

容器

Docker

查看容器

docker ps   //查看正在运行的docker容器

操作容器

docker exec -it 7fcfae372bc5 /bin/bash   //7fcfae372bc5为具体容器的id  进入某个docker容器内部

退出容器

先按Ctrl+P,再按Ctrl+Q  //退出容器,ps能查到,还在后台运行

拷贝文件

074af74c669d 是容器id,也可以换成容器名称,可以使用sudo docker ps -a查看
sudo docker cp 074af74c669d:/etc/bash.bashrc  /tmp
或者反过来
sudo docker cp /tmp/index.html 074af74c669d:/etc/
# 其中/tmp是宿主主机的绝对路径。不是相对路径。

常见问题

linux切换新增用户无法连接,报权限不足su: /bin/bash: Permission denied

连接主机...
连接主机成功
Last login: Sun Jan 23 01:17:20 2022 from 113.116.51.113

Welcome to Alibaba Cloud Elastic Compute Service !

/bin/bash: Permission denied

连接断开

# 方法1:给/bin/bash,/bin/和/usr/相关目录赋权755
 chmod -R 755 /bin/  
 chmod -R 755 /bin/bash
# 方法2:关闭selinux
# 方法3:ssh允许root方式登录
# 查看文件目录权限代码
stat /bin/

[root@iZbp19eouywbq18gg9ydncZ ~]# stat /bin/
  文件:"/bin/"
  大小:28672           块:64         IO 块:4096   目录
设备:fd01h/64769d      Inode:655363      硬链接:2
权限:(0700/drwx------)  Uid:(    0/    root)   Gid:(    0/    root)
最近访问:2022-01-23 13:21:51.528694284 +0800
最近更改:2021-01-14 17:45:55.345385926 +0800
最近改动:2022-01-23 01:25:31.130072242 +0800
创建时间:-

sudo: /bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位

# 普通用户执行sudo -i命令遇到如下提示
[vpssw@iZuf6bm7y86rsciyk4lvriZ ~]$ sudo -i
sudo: /bin/sudo 必须属于用户 ID 0(的用户)并且设置 setuid 位
# 解决方法:root用户给这个/usr/bin/sudo赋 4755 权限
chmod 4755     /usr/bin/sudo
arison
版权声明:本站原创文章,由arison2021-04-21发表,共计7884字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
头像
Sea Life 评论达人 LV.1
2022-01-08 21:51:09 回复

Great content! Keep up the good work!