参考教程:趣谈 Linux 操作系统
# 用户名和密码
passwd
命令
用来修改用户的登录密码
在New password
后面输入需要新设置的密码就好了,注意输入的密码不会显示在屏幕上,回车确认后会出现Retype new password
需要你再次输入新设置的密码
# 改变当前用户的密码 | ||
passwd | ||
Changing password for user root. | ||
New password: | ||
# 改变指定用户的密码 | ||
passwd <username> | ||
Changing password for user <username>. | ||
New password: |
useradd
命令
用来新建一个用户
如果不使用 -g 参数指定新建用户的属组的话,默认会创建一个当前用户同名的属组
# 不指定新建用户属组 | ||
useradd lighthouse | ||
# 指定新建用户属组 | ||
useradd -g root lighthouse |
用户信息存放的位置
在 Linux 中和用户相关的信息一般存放在
/etc/passwd
和/etc/group
里面
cat /etc/passwd | ||
root:x:0:0:root:/root:/bin/bash | ||
... | ||
lighthouse:x:1000:1000::/home/lighthouse:/bin/bash | ||
... |
在
/etc/passwd
中第一位对应的是当前 Linux 系统中存在的用户名,如root
和lighthouse
,第二位x
代表用户的密码(密码不会存储在这里),第三位和第四位分别代表用户ID
和组ID
,接下来的/root
或/home/lighthouse
代表的是它们对应用户的主目录
,最后的/bin/bash
代表用户登录后使用bash进行命令行交互
# 浏览文件
cd
命令
用户切换目录
# 切换到当前目录 | ||
cd . | ||
# 切换到上级目录 | ||
cd ../ |
pwd
命令
输出当前工作目录的路径
# 输出当前工作目录 | ||
pwd | ||
/root |
ls
命令
列出当前工作目录下的文件
# 列出文件 | ||
ls | ||
bot.log github-project | ||
# 以列表的形式列出 (可以使用 ls -al 列出隐藏文件) | ||
ls -l | ||
total 196 | ||
-rw-r--r-- 1 root root 188890 Apr 28 12:39 bot.log | ||
drwxr-xr-x 6 root root 4096 Apr 14 11:20 github-project |
文件列表信息说明
第一个字段的第一个字符是文件类型
:如果是 “-”,表示普通文件;如果是 d,就表示目录(当然除此之外,还有很多种文件类型)第一个字段剩下的9个字符是模式
:其实是权限位,3 个一组,每一组rwx
表示读(read)写(write)执行(execute)
。如果是字母,就说明有这个权限;如果是横线,就是没有这个权限。这三组分别表示文件所属的用户权限
、文件所属的组权限
以及其他用户的权限
。例如,上面的例子中,-rw-r–r--
代表这是一个普通文件,对于所属用户,可读可写不能执行;对于所属的组,仅仅可读;对于其他用户,也是仅仅可读- 第二个字段是
硬链接数目
- 第三个字段是
所属用户
,第四个字段是所属组
- 第五个字段是
文件大小
,第六个字段是文件被修改的日期
,最后是文件名
修改文件信息
- 通过
chmod
命令修改文件权限信息
# 创建一个演示文件 | ||
touch demo.txt | ||
# 列出当前目录下的文件 | ||
ls -l | ||
-rw-r--r-- 1 root root 188890 Apr 28 12:39 bot.log | ||
-rw-r--r-- 1 root root 0 Apr 28 17:44 demo.txt | ||
drwxr-xr-x 6 root root 4096 Apr 14 11:20 github-project | ||
# 修改 demo.txt 文件的权限 | ||
chmod 711 demot.txt | ||
# 重新列出当前目录下的文件 | ||
ls -l | ||
-rw-r--r-- 1 root root 188890 Apr 28 12:39 bot.log | ||
-rwx--x--x 1 root root 0 Apr 28 17:44 demo.txt | ||
drwxr-xr-x 6 root root 4096 Apr 14 11:20 github-project |
chmod 711
的含义:我们知道文件权限位是 3 个一组,一共 3 组,每组中的 r、w、x 对应的值分别是 4、2、1(每组权值累加即代表该组权限),因此 711
就相当于 rwx--x--x
,即赋予文件所属用户可读、可写、可执行权限;文件所属组可执行权限;其他用户可执行权限
- 通过
chown
命令修改文件所属用户
# 列出当前目录下的文件 | ||
ls -l | ||
total 196 | ||
-rw-r--r-- 1 root root 188890 Apr 28 12:39 bot.log | ||
-rwx--x--x 1 root root 0 Apr 28 17:44 demo.txt | ||
drwxr-xr-x 6 root root 4096 Apr 14 11:20 github-project | ||
# 修改 demo.txt 文件所属用户 | ||
chown lighthouse demo.txt | ||
# 重新列出当前目录下的文件(demo.txt 所属用户已经改为 lighthouse) | ||
ls -l | ||
total 196 | ||
-rw-r--r-- 1 root root 188890 Apr 28 12:39 bot.log | ||
-rwx--x--x 1 lighthouse root 0 Apr 28 17:44 demo.txt | ||
drwxr-xr-x 6 root root 4096 Apr 14 11:20 github-project |
- 通过
chgrp
命令修改文件所属组
# 列出当前目录下的文件 | ||
ls -l | ||
total 196 | ||
-rw-r--r-- 1 root root 188890 Apr 28 12:39 bot.log | ||
-rwx--x--x 1 lighthouse root 0 Apr 28 17:44 demo.txt | ||
drwxr-xr-x 6 root root 4096 Apr 14 11:20 github-project | ||
# 修改 demo.txt 文件所属组 | ||
chgrp lighthouse demo.txt | ||
# 重新列出当前目录下的文件(demo.txt 所属组已经改为 lighthouse) | ||
ls -l | ||
total 196 | ||
-rw-r--r-- 1 root root 188890 Apr 28 12:39 bot.log | ||
-rwx--x--x 1 lighthouse lighthouse 0 Apr 28 17:44 demo.txt | ||
drwxr-xr-x 6 root root 4096 Apr 14 11:20 github-project |
以可以通过 chown user:group filename
一次性修改文件的所属用户和所属组
# 安装软件
- CentOS 体系
- 使用
rpm包
,通过命令rpm -i xxx.rpm
进行安装,rpm -qa
可以查看安装的软件列表,rpm -e xxx
来删除已经安装的软件 - 通过
yum
包管理器安装,执行命令yum install xxx
即可。比如,yum install zip.x86_64 unzip.x86_64
- 使用
- Ubuntu 体系
- 使用
deb
包,通过命令dpkg -i xxx.deb
进行安装,dpkg -l
查看安装的软件列表,dpkg -r xxx
来删除已经安装的软件 - 通过
apt
包管理器安装,执行命令apt install xxx
即可。比如,apt install zip unzip
- 使用
其实无论是先下载再安装,还是通过软件管家进行安装,都是下载一些文件,然后将这些文件放在某个路径下,然后在相应的配置文件中配置一下。例如,在
Windows
里面,最终会变成C:\Program Files
下面的一个文件夹以及注册表里面的一些配置。对应Linux
里面会放的更散一点。例如,主执行文件会放在/usr/bin
或者/usr/sbin
下面,其他的库文件会放在/var
下面,配置文件会放在/etc
下面
- 通用方案
通过将安装好的路径直接下载下来,然后解压缩成为一个整的路径
如果是tar.gz
这种格式的,通过tar xvzf xxx.tar.gz
就可以解压缩了
通过压缩包进行安装的方式,需要自行设置环境变量。比如,安装 JDK 需要将export JAVA_HOME=/root/jdk-XXX_linux-x64
和export PATH=$JAVA_HOME/bin:$PATH
环境变量加入到当前用户主目录
下的.bashrc
文件中(如果使用的是 bash 进行进行命令行交互)