Linux常用命令

临界点日志  ·  2025-03-07

base64

参数

-d, --decode         # 解码
-w, --wrap=COLS      # 在指定的字符数后自动换行(默认为76), 0 为禁用自动换行

示例

echo -n "dGVzdA==" | base64 -d 
cat file.txt | base64 -w 0
chmod

变更文件或目录的权限

参数

--reference=RFILE:使用参考文件或参考目录RFILE的权限来设置目标文件或目录的权限。
-R, --recursive:对目录以及目录下的文件递归执行更改权限操作。

用户、用户组:

  • u符号代表当前用户。
  • g符号代表和当前用户在同一个组的用户,以下简称组用户。
  • o符号代表其他用户。
  • a符号代表所有用户。

权限:

  • r符号代表读权限以及八进制数4
  • w符号代表写权限以及八进制数2
  • x符号代表执行权限以及八进制数1
  • X符号代表如果目标文件是可执行文件或目录,可给其设置可执行权限。
  • s符号代表设置权限suid和sgid,使用权限组合u+s设定文件的用户的ID位,g+s设置组用户ID位。
  • t符号代表只有目录或文件的所有者才可以删除目录下的文件。

权限操作:

  • +符号代表添加目标用户相应的权限。
  • -符号代表删除目标用户相应的权限。
  • =符号代表添加目标用户相应的权限,删除未提到的权限。

示例

#增加执行权限
chmod +x ./file
# 当前用户具有所有权限,组用户有读写权限,其他用户只有读权限。
chmod u=rwx, g=rw, o=r ./test.log
# 等价的八进制数表示:
chmod 764 ./test.log
# 将目录以及目录下的文件都设置为所有用户拥有读写权限。
# 注意,使用'-R'选项一定要保留当前用户的执行和读取权限,否则会报错!
chmod -R a=rw ./testdir/
chown

变更文件或目录的拥有者或所属群组

参数

-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
--reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;

示例

chown user1 file.txt
chown -R user1:group1 /path/to/directory
chown :group1 file.txt
clock

调整 RTC(电脑内建的硬件时间) 时间

参数

--utc  把硬件时钟上的时间时为CUT,有时也称为UTC或UCT。

示例

clock # 获取当前的时间
cmp

比较两个文件是否有差异

示例

cmp testfile testfile1   
cp

复制

参数

-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。

示例

# 将 aaa 目录下的,所有`.`开头的文件,复制到 bbb 目录中。
cp -r aaa/.* ./bbb
# 记住后面目录最好的'/' 带上 `-a` 参数
cp -a aaa ./bbb/ 
# 拷贝文件并备份目标文件,备份文件后缀名为.bak
cp -b -S .bak ./file.txt ../bak/file.txt
crontab

提交和管理用户的需要周期性执行的任务

参数

-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;

扩展知识

查看/etc/crontab文件,其中包含了执行周期的说明

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
curl

利用URL规则在命令行下工作的文件传输工具

参数

-s   --silent                                   # 静默模式。不输出任何东西 
-k   --insecure                                 # 允许不使用证书到SSL站点 

示例

curl -s -o /dev/null https://example.com
df

显示磁盘的相关信息

参数

-h或--human-readable:以可读性较高的方式来显示信息;
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;

示例

df -h
diff

比较给定的两个文件的不同

参数

-u,-U<列数>或--unified=<列数>:以合并的方式来显示文件内容的不同;
-y或--side-by-side:以并列的方式显示文件的异同之处;

示例

diff -u a.txt b.txt
diff -y a.txt b.txt 
diff3

比较3个文件不同的地方

dnf

新一代的RPM软件包管理器

du

显示每个文件和目录的磁盘使用空间

参数

-H, --si                               与-h参数相同,但是K,M,G是以1000为换算单位。
-h, --human-readable                   以K,M,G为单位,提高信息的可读性。
-s, --summarize                        仅显示总计,只列出最后加总的值。

示例

du -sh * | sort -rh # 文件从大到小排序
echo

输出指定的字符串或者变量

参数

-e:启用转义字符。
-E: 不启用转义字符(默认)
-n: 结尾不换行

示例

echo 'The value of $PATH is' $PATH

#颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37
echo -e "\x1b[30;1m 0 黑色 \x1b[0m"\
"\x1b[31;1m 1 红色 \x1b[0m"\
"\x1b[32;1m 2 绿色 \x1b[0m"\
"\x1b[33;1m 3 黄色 \x1b[0m"\
"\x1b[34;1m 4 蓝色 \x1b[0m"\
"\x1b[35;1m 5 洋红 \x1b[0m"\
"\x1b[36;1m 6 青色 \x1b[0m"\
"\x1b[37;1m 7 白色 \x1b[0m"
env

显示系统中已存在的环境变量

find

在指定目录下查找文件

参数

-name<范本样式>:指定字符串作为寻找文件或目录的范本样式;
-type<文件类型>:只寻找符合指定的文件类型的文件;

示例

#当前目录搜索所有txt文件,且文件内容包含 “140.206.111.111”
find . -type f -name "*.txt" | xargs grep "140.206.111.111"
free

显示内存的使用情况

参数

-s<间隔秒数> # 持续观察内存使用状况;
-h, --human # 自动缩放到最短三位单位的并打印输出
              total        used        free      shared  buff/cache   available
Mem:           7.7G        2.3G        1.4G        345M        4.0G        4.7G
Swap:          2.0G        512M        1.5G

输出结果说明:

Mem

total: 系统总物理内存(不含Swap),即操作系统可用的全部内存。

used: 已被使用的内存(包括应用程序占用和缓存/缓冲区)。

free: 完全未被使用的内存(空闲内存)。注意:Linux会利用空闲内存做缓存,因此单纯看`free`可能不准确。

shared: 被多个进程共享的内存(如tmpfs、共享库等)。

buff/cache

    buff:内核缓冲区(Buffer)占用的内存(如磁盘块读写临时缓存)。

    cache:页面缓存(Page Cache)占用的内存(如文件缓存、Slab分配器等)。

available: 系统可用内存的**估算值**(包括`free`和可回收的缓存/缓冲区)。这是应用程序实际可用的内存,比`free`更关键。

示例

free -h
free -s 10 # 周期性的查询内存使用信息,每10s 执行一次命令
groupadd

用于创建一个新的工作组

参数

-g:指定新建工作组的id;
-r:创建系统工作组,系统工作组的组ID小于500;

示例

groupadd -g 344 jsdigname #建立一个新组,并设置组ID加入系统:
groupdel

用于删除指定的工作组

示例

groupdel damon  //删除这个工作组
groupadd

管理用户主要组的成员

参数

-a, --add user_name # 将用户添加到组成员列表。如果 /etc/gshadow 文件存在,并且该组在 /etc/gshadow 文件中没有条目,则将创建一个新条目。
-d, --delete user_name
# 从组成员列表中删除用户。
# 如果 /etc/gshadow 文件存在,用户将从组的成员和管理员列表中删除。
# 如果 /etc/gshadow 文件存在,并且该组在 /etc/gshadow 文件中没有条目,则将创建一个新条目。
-g, --group group_name # 超级用户可以指定要修改的组成员列表。
-l, --list             # 列出组成员列表。
-p, --purge            # 从组成员列表中清除所有用户。
# 如果 /etc/gshadow 文件存在,并且该组在 /etc/gshadow 文件中没有条目,则将创建一个新条目。

示例

groupmems -g staff -a student
groupmems -g staff -l 
groupmems -a mike -g SUPPORT
groupmems --add mike -g SUPPORT 
groupmems -d mike SUPPORT -g SUPPORT
groupmems --delete mike SUPPORT -g SUPPORT
groupmems -p -g SUPPORT
groupmems --purge -g SUPPORT
groupmems -l -g SUPPORT
groupmems --list -g SUPPORT
 Linux
上一篇:第一个说说
下一篇:双影奇境
评论