那些我们常见的Linux命令

今天偷个懒,这是之前收集到一些日常linux操作会用到的命令,在这里做个记录哈~ 此后根据使用情况再持续更新!

系统信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 显示机器的处理器架构
arch
# 显示机器的处理器架构
uname -m
# 显示正在使用的内核版本
uname -r
# 显示硬件系统部件(SMBIOS/DMI)
dmidecode -q
# 显示CPU info的信息
cat /proc/cpuinfo
# 校验内存使用
cat /proc/meminfo
# 查看内核版本
cat /proc/version
# 显示系统日期
date
# 显示2021年的日历表
cal 2021
# 设置日期和时间-月日时分年.秒
date 041217002007.00
# 将时间修改保存到BIOS
clock -w

关机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 立刻关机
shutdown -h now
# 关机
init 0
# 关机
telinit 0
# 按预定时间关机
shutdown -h hours:minutes &
# 取消按预定时间关机
shutdown -c
# 重启
shutdown -r now
# 重启
reboot
# 注销
logout

文件与目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 显示工作路径
pwd
# 查看目录中的文件(可区分开是否文件夹)
ls -F
# 显示文件和目录的详细资料
ls -l
# 显示隐藏文件
ls -a
# 显示包含数字的文件名和目录名
ls *[0-9]*
# 显示文件和目录由根目录开始的树形结构(需要安装tree)
tree
# 创建一个目录树
mkdir -p /tmp/dir1/dir2
# 强制删除文件
rm -f file
# 强制删除文件夹
rm -rf dir
# 删除多个文件夹
rm -rf dir1 dir2
# 复制一个文件夹
cp -a dir1 dir2
# 复制一个文件夹及其子文件
cp -r dir1 dir2
# 创建一个指向文件或目录的软链接
ln -s file1 lnk1
# 创建一个指向文件或目录的物理链接
ln file1 lnk1
# 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
touch -t 0712250000 file1
# 列出已知的编码
iconv -l

文件搜索

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 从'/'开始进入根文件系统搜索文件和目录
find / -name file1
# 搜索属于用户'user1'的文件和目录
find -user user1
# 在目录'/home/user1'中搜索带有'.bin'结尾的文件
find /home/user1 -name \\*.bin
# 搜索在过去100天内未被使用的执行文件
find /usr/bin -type f -atime +100
# 搜索在10天内被创建或者修改过的问题件
find /usr/bin -type f -mtime -10
# 搜索以'.rpm'结尾的文件并定义其权限
find / -name \\*.rpm -exec chmod 755 '{}'\\
# 搜索以'.rpm'结尾的文件,忽略光驱、捷盘等可移动设备
find / -xdev -name \\*.rpm
# 显示一个二进制文件、源码或man的位置
whereis halt
# 显示一个二进制文件或可执行文件的完整路径
which halt

挂载一个文件系统

1
2
3
4
5
6
7
8
# 挂载一个叫做hda2的盘 -确定目录 '/mnt/hda2'已经存在
mount /dev/hda2 /mnt/hda2
# 卸载一个叫做hda2的盘 -先从挂载点'/mnt/hda2'退出
umount /dev/hda2
# 当设备繁忙时强制卸载
fuser -km /mnt/hda2
# 挂载一个usb 捷盘或闪存设备
mount /dev/sda1 /mnt/usbdisk

磁盘空间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 显示已经挂载的分区列表
df -h
# 以尺寸大小排列文件和目录
ls -lSr |more
# 估算目录'dir1'已经使用的磁盘空间
du -sh dir1
# 以容量大小为依据依次显示文件和目录的大小
du -sk * |sort -rn
# 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)
rpm -q -a --qf'%10{SIZE}t%{NAME}n'|sort -k1,1n
# 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)
dpkg-query -W -f='${Installed-Size;10}t${Package}n'|sort -k1,1n
# 查看磁盘空间占用最大的文件并【排序
du -h --max-depth=1 | grep 'G' | sort -nr

用户和群组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 创建一个新用户组
groupadd group_name
# 删除一个用户组
groupdel group_name
# 重命名一个用户组
groupmod -n new_group_name okd_group_name
# 创建一个属于"admin"用户组的用户
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1
# 创建一个用户
useradd user1
# 删除一个用户(-r排除主目录)
userdel -r user1
# 修改用户属性
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1
# 修改口令
passwd
# 修改一个用户的口令(只允许root执行)
passwd user1
# 设置用户口令的失效期限
chage -E 2005-12-31 user1

文件的权限 - 使用 “+” 设置权限,使用 “-“ 用于取消

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 显示权限
ls -lh
# 将终端划分成5栏显示
ls /tmp | pr -T5 -W$COLUMNS
# 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
chmod ugo+rwx directory1
# 删除群组(g)与其他人(o)对目录的读写执行权限
chmod go-rwx directory1
# 改变一个文件的所有人属性
chown user1 file1
# 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chown -R user1 directory1
# 改变文件的群组
chgrp group1 file1
# 改变一个文件的所有人和群组属性
chown user1:group1 file1

root用户都删除不了的文件

1
2
3
4
5
6
7
8
9
10
11
# 给文件设置ATTRIBUTES 
# a 属性的文件只能在添加模式下打开用于写入.只有超级用户可以设置或清除该属性
# c 设置了`c'属性的文件在磁盘上由内核自动进行压缩处理
# d 设置了`d'属性的文件不能对其运行 dump(8) 程序进行备份
# i 设置了`i'属性的文件不能进行修改:你既不能删除它,也不能给它重新命名,你不能对该文件创建链接,而且也不能对该文件写入任何数据.只有超级用户可以设置或清除该属性
# s 当删除设置了`s'属性的文件时,将对其数据块清零并写回到磁盘上
# S 当修改设置了`S'属性的文件时,修改会同步写入到磁盘上;这与应用到文件子系统上的`sync'挂载选项有相同的效果
# u 当删除设置了`u'属性的文件时, 将会保存其内容.这使得用户可以请求恢复被删除的文件
chattr +a test.txt #添加a属性
chattr -a test.txt #去掉a属性
lsattr test.txt #查看文件的属性

那些我们常见的Linux命令
https://gcoder5.com/2023/03/18/那些我们常见的Linux命令/
作者
Gcoder
发布于
2023年3月18日
许可协议