Como explicado em man sort :
-n, --numeric-sort
compare according to string numerical value
Então você quer:
$ sort -nk1,1 file
1,2,3
2,1,1
10,2,1
Observe também que, por padrão, os campos são delimitados em branco, portanto, essas linhas nesse arquivo têm apenas um campo. Por exemplo, o primeiro campo da primeira linha é 1,2,3 , não 1 . Você precisaria adicionar -t , para ,-separated fields:
sort -t, -nk1,1 file
Com -n , sort considera apenas a sequência de caracteres que formam um número válido no início da chave de classificação (ignorando espaços em branco à esquerda). Para essa primeira linha, sem -t, , dependendo da implementação sort e da localidade, 1,2,3 será considerado como 1 ou 1.2 (quando o separador decimal do usuário for , ) ou 123 (quando o separador de milhar do usuário é , e sort ignora qualquer ocorrência dele).