Linux常用命令(二)
接着上一篇,继续肝
事件日期类
date 设置系统时间
命令 | 描述 |
---|---|
date | 直接数出 时间信息 如:2022年 08月 18日 星期四 10:20:30 CST |
date +%Y | 显示当前年份 |
date+%m | 显示当前月份 |
date+%d | 显示当前月的第几天数 |
date “+%Y-%m-%d %H:%M:%S” | 输出 年月日时分秒 |
date +%s | 当前秒数时间戳 |
date -d “1 days ago” | 返回前一天的时间 (1可以自定义) |
date -d “-2 hours ago” | 返回两小时后的时间(-2可以自定义) |
date -s “2017-06-19 20:52:15” | 将系统时间设为 2017-06-19 20:52:15 |
hwclock -s | 通过硬件配置系统时间 |
ntpdate ntp1.aliyun.com | 联网 同步时间 (阿里云服务) |
cal 查看日历
命令 | 描述 |
---|---|
cal | 当前做在的月份日历 |
cal -1, –one | 只显示当前月份(默认) |
cal -3, –three | 显示上个月、当月和下个月 |
cal -s, –sunday | 周日作为一周第一天 |
cal -m, –monday | 周一用为一周第一天 |
cal -j, –julian | 输出儒略日 |
cal -y, –year | 输出整年(当前年) |
cal -V, –version | 显示版本信息并退出 |
cal -h, –help | 显示此帮助并退出 |
cal 2001 | 输出2001整年日历 |
用户管理
useradd 添加新用户
命令 | 描述 |
---|---|
useradd [用户名] | 添加新用户 |
useradd -d /home/dave david | 创建 dave 文件夹 但是 用户名是 david |
useradd -g [组名] [用户名] | 创建 [用户名] 这个用户,并且组名是 [组名] |
passwd [用户名] | 给新用户设置密码 |
exit | 登出 |
id 查看用户是否存在
命令 | 描述 |
---|---|
id [用户名] | 查看用户是否存在 |
查看创建了哪些用户
命令 | 描述 |
---|---|
cat /etc/passwd | 查看创建了哪些用户 |
who 查询登录用户信息
命令 | 描述 |
---|---|
who am i | |
whoami |
- 一个有着哲学问题的命令 文字解释很复杂 请自行测试
sudo 设置普通用户具有root权限
命令 | 描述 |
---|---|
sudo [用户名] | 将 [用户名] 设为可以使用 root 权限 |
执行完毕后 填写用户密码 之后 提示
tony 不在 sudoers 文件中。此事将被报告。
那就需要 在
sudoers
中添加配置
首先切换回 root 权限
在终端输入
vim /etc/sudoers
找到
root ALL=(ALL) ALL
这一行 复制并粘贴到下一行修改为 下面的格式 [用户名] 是你想要哪个用户可以使用root权限的用户名
1 | root ALL=(ALL) ALL |
:wq!
强制保存退出即可
删除用户
命令 | 描述 |
---|---|
userdel [用户名] | 删除 [用户名] |
userdel -r [用户名] | 删除 [用户名] 会删除 /home 下面的目录 |
userdel [用户名] 删除用户不会删除
/home
目录下的 文件 如果想要删除
1 | cd /home |
用户组管理命令
每个用户都有一个用户组组,系统可以对一个用户组中的所有用户集中管理 不同 Linux 系统对用户组的规定有所不同
如 Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建
用户组的管理涉及用户组的添加、删除、和修改 实际上就是对/etc/group
文件的更新
groupadd 新增组
命令 | 描述 |
---|---|
groupadd [组名] | 添加 [组名] 组 |
usermod 修改用户
命令 | 描述 |
---|---|
usermod -g [用户组] [用户名] | 修改用户的对应的用户组 |
查看所有用户组
命令 | 描述 |
---|---|
cat /etc/group | 查看所有用户组 |
groupmod 替换组名
命令 | 描述 |
---|---|
groupmod -n [新组名] [旧组名] | 替换组名 |
groupdel 删除用户组
命令 | 描述 |
---|---|
groupdel [组名] | 删除 [组名] 组 |
文件权限类
文件属性
Linux 系统是一中经典的的多用户系统,不同的用户处于不同的地位,拥有不同的的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一个文件(包括文件目录)的权限作了不同的规定。在Linux中我们可以使用
ll
或者ls -l
命令来显示一个文件的属性以及文件所属的用户和组。
从左到右的10个字符表示
如果没有权限就会出现 [ - ] 而已。从左至右用0-9这些数字来表示
0首尾表示类型
在Linux中第一个字符代表这个文件是目录、文件、链接文件等
- -代表文件
- d 代表目录
- l 代表链接目录
1-3位确定属主(该文件的所有者)拥有该文件的权限。–User
4-6位确定属主组(所有者的同组用户)拥有该文件的权限 –Group
7-9位确定其他用户拥有该权限文件的权限 –Other
rwx作用文件和目录的不同解释
- 作用到文件:
- [ r ] 代表可读(read),看读取,查看
- [ w ] 代表可写(write),可以修改,但不代表可以删除该文件,删除一个文件的前提条件是对该文件所在目录有写权限,才能删除该文件
- [ x ] 代表可执行(execute),可以被系统执行
- 作用到目录
- [ r ] 代表可以读取(read),ls 查看目录内容
- [ w ] 代表可以写:可以修改,目录内 创建+删除+重命名目录
- [ x ] label 代表可执行:可以进入该目录
chmod 改变权限
第一种方式修改权限
命令 | 描述 |
---|---|
chmod [{ugoa}{+-=}{rwx}] |
chmod a=rwx hello.txt 表示 hello 文件 ugo 权限设置为rwx
chmod u+rwx hello.txt + 表示添加权限
chmod a-rwx hello.txt - 表示删除权限
第二种修改权限方法
命令 | 描述 |
---|---|
chmod [mod=421] [文件或目录] |
经验技巧:
u: 所有者 g:所有组 o:其他人 a:所有人
r=4 w=2 x=1 rwx=4+2+1=7
修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限
chmod -R 777 [目录]
chown 改变文件所有者
命令 | 描述 |
---|---|
chown [新所有者] [文件] | 文件所有者改为[新所有者] |
chown -R [新所有者] [目录] | 目录下面所有文件的所有者改为[新所有者] |
搜索查找类
find 查找文件或者目录
find 指令将从指定目录下递归遍历其个个子目录,将满足条件显示在终端
命令 | 描述 |
---|---|
find [指定范围] [选项] | 搜索[指定范围] |
find [绝对或相对路径] -name [名称] | 查找 [绝对或相对路径] 目录下名称为 [名称] (路径可以省略不写默认当前文件夹) |
find [绝对或相对路径] -name “*.cfg” | 查找 [绝对或相对路径] 目录下名称为 后缀名为 .cfg |
find [路径] -user [用户名] | 查找 [路径] 目录下 [用户名] 创建的文件 |
find [路径] -size +10k | 查找 [路径] 目录下 文件大于 10K的 |
locate 快速定位文件路径
locate 指令利用事先建立的系统中的所有文件名称及路径的 locate 数据库事先快速定位给定的文件。locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
命令 | 描述 |
---|---|
locate [搜索文件] |
经验技巧:
由于 locate 指令基于数据库进行查寻,所以第一次运行前,必须使用
updatedb
gerp 内容过滤和“|”管道符
命令 | 描述 |
---|---|
grep [关键词] [文件名] | 查找 [文件名]内 [关键词] 直接输出结果 |
grep -n [关键词] [文件名] | 输出结果显示行号 |
经验技巧
ls | grep .cfg
将
ls
的结果 过滤.cfg
并且输出终端grep -n hello fileHello | wc
wc
是统计词频的,可不是你想的那样😜