修改用户名
例:将admin改为test(ubuntu)
修改 /etc/passwd用户信息文件
1
vim /etc/passwd
1
2
3#admin:x:1001:1001:admin,,,:/home/admin:/bin/bash
#把用户名admin改成rest
#test:x:1001:1001:admin,,,:/home/test:/bin/bash注:
1
2admin:x:1001:1001:admin,,,:/home/admin:/bin/bash
中的admin,,,不可修改,若修改后重启,你将会因为密码错误而不能成功登入系统(只得去机房重新注册用户了)修改 /etc/shadow用户密码文件
1
vim /etc/shadow
1
2
3#admin:Dnakfw28zf38w:8764:0:168:7:::
#由于密码加密方式存放,只修改用户名即可(密码不变)
#test:Dnakfw28zf38w:8764:0:168:7:::再修改 /etc/group用户组文件
1
vim /etc/group
1
2
3#admin:x:1:root,bin,admin
#修改admin组为test组
#test:x:1:root,bin,test修改用户的家目录
1
mv /home/admin /home/test
xx is not in the sudoers file 问题解决
首先利用whereis 命令查找sudoers配置文件的目录(默认会在/etc/sudoers)
1
whereis sudoers
然后就可以利用vi编辑器来把用户添加到sudoers之中
1
vi /etc/sudoers
然后找到root ALL=(ALL) ALL 或者 root ALL=(ALL:ALL) ALL所在的位置,把所要添加的用户添加到文件之中
下面是添加完的结果。
1
2
3
4Allow root to run any commands anywhere
root ALL=(ALL) ALL
maliang ALL=(ALL) ALL(这一行是添加的内容,maliang是我的用户名)
修改用户密码
在终端运行
1 | passwd username |
1 | 改变口令为 username。 |
修改主机名
1 | # 修改配置文件(追加到最后一行的下一行) |
开启root用户和使用root用户登陆
以普通用户登录系统,创建root用户的密码
1
sudo passwd root
修改文件
sudo vi /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
文件,增加两行:1
2greeter-show-manual-login=true
allow-guest=false保存
修改
/etc/pam.d/gdm-autologin
、/etc/pam.d/gdm-password
文件和/root/.profile
文件(ubuntu-18.04需要此步骤)1
vi /etc/pam.d/gdm-autologin
注释掉:
auth required pam_succeed_if.so user != root quiet_success
保存1
vi /etc/pam.d/gdm-password
注释掉:
auth required pam_succeed_if.so user != root quiet_success
保存1
vim /root/.profile
将文件末尾的
mesg n || true
这一行修改成tty -s && mesg n || true
保存重启系统,输入root用户名和密码,登录系统
解决Ubuntu18.04不能用Xshell使用root用户登录
今天使用Xshell6连接Ubuntu18.04时,连接普通用户可以,但是连接root用户不行(但是实体机或者虚拟机可以root用户登录)
解决方案是:
在Ubuntu18.04中 修改
/etc/ssh/sshd_config
这个文件:1
vim /etc/ssh/sshd_config
这是没修改前的:
1
2
3
4
5
6
7
8
9...
# Authentication:
#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
...修改后的:
1
2
3
4
5
6
7
8
9
10...
# Authentication:
LoginGraceTime 2m
#PermitRootLogin prohibit-password
PermitRootLogin yes
StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
...然后再在终端输入一下命令:
/etc/init.d/ssh restart
来重启ssh服务重新使用root连接,就可以了
找出文件所在的位置
1 | whereis sudoers(你要找的文件名) |
linux find 命令查找文件和文件夹
查找目录:find /(查找目录范围) -name '查找关键字' -type d
查找文件:find /(查找目录范围) -name '查找关键字' -print
查看端口占用并杀死(kill)
Linux
1 | # 查看 |
1 | # 杀死 |
Window
第一步,打开cmd命令窗口,输入命令,根据端口号查找对应的进程号
1
netstat -ano | findstr 80 //列出进程极其占用的端口,且包含 80
结果如下:
发现 8080 端口被 PID(进程号)为 9268 的进程占用。
第二步, 据进程号寻找进程名称
1
tasklist | findstr 9268
根据进程号从任务管理器中查找该程序,手动杀死即可。
但是我发现,
【有时候】
在任务管理器中找不到该程序。只好从命令行杀死该程序了,命令如下:1
taskkill -PID <进程号> -F //强制关闭某个进程
这样就把占用8080端口的进程给干掉了,终于可以愉快的不用重启电脑了。
如何从Yum库下载rpm包但不安装
方法一(推荐)
1 | # 将一个包(包含所有依赖)下载到一个指定的目录(如/opt/gccmkdir/): |
方法二
1 | # --resolve 表示为下载依赖 |
方法三(推荐)
1 | # 把/etc/yum.conf配置中的keepcache=0参数修改为keepcache=1 |
apt-get 与 yum安装有啥区别
rpm包和deb包是两种Linux系统下最常见的安装包格式,在安装一些软件或服务的时候免不了要和它们打交道。
rpm包主要应用在RedHat系列包括 Fedora等发行版的Linux系统上,
deb包主要应用于Debian系列包括现在比较流行的Ubuntu等发行版上。
我们知道如果要安装现成的这两种包的话,安装rpm包的命令是“rpm -参数”,安装deb包的命令是“dpkg -参数”。而Linux系统很方便和人性化的一点就是很多软件或服务根本就不用我们去下载,直接使用相应的命令就可以管理了,可能这就是传说中的 “云”的概念。
1 | yum可以用于运作rpm包,例如在Fedora系统上对某个软件的管理: |
1 | apt-get可以用于运作deb包,例如在Ubuntu系统上对某个软件的管理: |
安装rpm包
进入系统下存放对应.rpm文件的目录,执行
1 | cd /opt/gccmkdir/ |
注:rpm -Uvh *.rpm –nodeps –force
- -Uvh就是升级软件包–Update
- *.rpm就是所有的.rpm包;
- –nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了–nodeps你就能装上了;
- –force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用–force强制安装。
查看Linux版本方法
方法一
1 | # lsb_release -a |
方法二
1 | # cat /etc/redhat-release |
方法三
1 | # rpm -q centos-release |
查看物理CPU个数、核数、逻辑CPU个数、CPU信息(型号)、内存信息
1 | # 总核数 = 物理CPU个数 * 每颗物理CPU的核数 |
linux运行jar包
要运行java的项目需要先将项目打包成war包或者jar包,打包成war包需要将war包部署到tomcat服务器上才能运行。而打包成jar包可以直接使用java命令执行。在linux系统中运行jar包主要有以下四种方式。
1
java -jar XXX.jar
这是最基本的jar包执行方式,但是当我们用ctrl+c中断或者关闭窗口时,程序也会中断执行。
1
java -jar XXX.jar &
&代表在后台运行,使用ctrl+c不会中断程序的运行,但是关闭窗口会中断程序的运行。
1
nohup java -jar XXX.jar &
使用这种方式运行的程序日志会输出到当前目录下的nohup.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。
1
nohup java -jar XXX.jar >temp.out &
‘>temp.out’的意思是将日志输出重定向到temp.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。
XShell上传、下载本地文件到linux服务器
在linux主机上,安装上传下载工具包rz及sz; 如果不知道你要安装包的具体名称,可以使用yum provides */name 进行查找系统自带软件包的信息
1 | [root@host ~]# yum provides */rz |
一般会列出软件包的名称及版本,还有安装路径;查询到软件包名后,使用yum install -y 包名 进行安装。
lrzsz包安装完成后包括上传rz、下载sz命令
1 | [root@host ~]# yum install -y lrzsz |
上传命令为rz;下再命令为sz
1 | #上传(windows->linux)文件-弹出窗口选择需要上传的文件 |
1 | #指定下载(linux->windows)哪个文件-弹出窗口选择需要保存的路径 |
ubuntu安装ssh服务
SSH分客户端openssh-client和openssh-server
如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则
sudo apt-get install openssh-client
)如果要使本机开放SSH服务就需要安装openssh-serversudo(
apt-get install openssh-server
)1
apt-get install openssh-server
有时候当你执行sudo apt-get XXX
这种命令时出现类似下面的输出错误:
1 | E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable) |
或者
1 | E: Could not ge lock /var/lib/apt/lists/lock - open (11: Resource temporarily |
解释
出现这个问题的原因是,还有一个线程在使用apt-get进行下载的操作。但是奇怪的是,我就是没有找到其他使用了apt-get指令的终端界面。那么如何解决这个问题呢,难道要重新启动电脑吗,重启电脑是可以解决这个问题,但是我接下来教你的方法,才是真正的解决方法。
解决办法
先搜索所有运行着的线程
1 | ps -A | grep apt-get |
你会得到类似下面的输出:
1 | root 752 0.0 0.0 4508 1628 ? Ss 01:13 0:00 /bin/sh /usr/lib/apt/apt.systemd.daily |
第2列就是线程号(kill processnumber)。我们将apt相关的进程给关闭掉,需要使用sudo
权限:
1 | sudo kill 2098 |
输出:
bash: kill: (2098) - Operation not permitted
然后确认sshserver是否启动了:
1 | ps -e |grep ssh |
如果看到sshd那说明ssh-server已经启动了
CentOS7中找不到ifconfig和netstat命令
把net-tools包装上就好了
1 | yum install net-tools |
用ifconfig
或者ip a
命令,获取不到IP地址
问题描述:用ifconfig
或者ip a
命令,获取不到ip
地址,即网卡未启动,无法用Xshell
远程连接。
解决方案:
进入
/etc/sysconfig/network-scripts
目录,发现有一个或多个ifcfg-...
,即网卡(驱动)存在但未启用。1
ls /etc/sysconfig/network-scripts
修改
/etc/sysconfig/network-scripts/ifcfg-...
文件, 把ONBOOT=no
改为ONBOOT=yes
保存退出wq
1
2
3vi /etc/sysconfig/network-scripts/ifcfg-em1
...
# 把`ONBOOT=no`改为`ONBOOT=yes`保存退出service network restart
重启。出现:1
Restarting network (via systemctl): [ 确定 ] OK
输入
ifconfig
或者ip a
命令,出现ip
地址。用Xshell
连接成功。
CentOS下彻底删除
MySQL和重新安装MySQL
删除MySQL
1 | yum remove mysql mysql-server mysql-libs mysql-server; |
安装MySQL
1 | yum install mysql mysql-server mysql-libs mysql-server |
如何判断Linux是32位还是64位
方法1:getconf LONG_BIT
查看
1 | getconf LONG_BIT |
方法2:uname
命令查看
1 | uname -a |
方法3: arch
命令查看
1 | arch |
方法4: file
命令查看
1 | file /sbin/init |
方法5: 通过查看CPU的信息来判定Linux系统是否是64位操作系统
1 | # 如果结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit |
怎样查看MySql数据库物理文件存放位置
1 | mysql> show global variables like "%datadir%"; |
CentOS7查看修改时区
timedatectl
查看时间各种状态1
2
3
4
5
6
7Local time: 四 2014-12-25 10:52:10 CST
Universal time: 四 2014-12-25 02:52:10 UTC
RTC time: 四 2014-12-25 02:52:10
Timezone: Asia/Shanghai (CST, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: notimedatectl list-timezones
: 列出所有时区timedatectl set-local-rtc 1
将硬件时钟调整为与本地时钟一致, 0 为设置为 UTC 时间timedatectl set-timezone Asia/Shanghai
设置系统时区为上海校准时间
1
2
3yum -y install ntp
#通过阿里云时间服务器校准时间
ntpdate ntp1.aliyun.com
Linux文件和目录的权限
文件权限
1 | 在linux系统中,文件或目录的权限可以分为3种: |
查看文件的权限(ls -l 或 ls ll 或 ls -al)
1 | [root@yisu-5d5ba64634728 bin]# ls -ll |
设置文件/目录的权限(ls -l 或 ls ll 或 ls -al)
1 | # 语法: |
Warning:Permanently added (RSA) to the list of known hosts
vi /etc/ssh/ssh_config
找到#StrictHostKeyChecking ask去掉注释
,并把ask改为no
即可