Uma longa lista
Usando o grep
Você pode usar a expansão de shell em /proc e canalizá-la para grep :
$ echo /proc/* | grep -oP "(?<=/proc/)\D.*? " | paste -s -d ''
Exemplo
$ echo /proc/* | grep -oP "(?<=/proc/)\D.*? " | paste -s -d ''
acpi asound buddyinfo bus cgroups ....
O recurso acima faz uso da capacidade de grep de usar o mecanismo de expressões regulares (PCRE) do Perl. É a -P que muda para grep . O -o informa grep para retornar apenas as sequências que correspondem ao padrão. Nós então fazemos uso da habilidade do Perl de olhar para trás. Então, quando encontramos uma string que possui /proc , nós cuidamos do /proc para qualquer string que não comece com um dígito ( \D ). Estas são as cadeias que são retornadas (as iniciais não de dígitos).
A pasta faz algumas limpezas para nós removendo todos os caracteres de nova linha que o grep adicionou ao começar a exibir seus resultados.
Usando sed
Uma alternativa para esse método seria usar sed (ei isso rima).
$ echo /proc/* | sed 's@/proc/[0-9]\+ @@g;s@/proc/@@g'
Esta abordagem encontra todas as strings começando com /proc/ & dígitos & um espaço e substitui-los com nada, efetivamente excluí-los. Depois disso, fazemos outro comando sed , que faz o mesmo com as sequências /proc/ , e ficamos com apenas as sequências iniciais não dígitos.
Várias colunas
Para "agrupar" a saída em colunas, o comando paste faz isso com bastante facilidade. Aqui estou fazendo 2 colunas, mas você pode alterar o comando paste para gerar mais ou menos adicionando traços adicionais ( - ). O column -t no final força a saída a alinhar nas colunas.
$ ls /proc | grep -v "^[0-9].*" | paste - - | column -t
Exemplo
Primeiras 5 linhas de saída graças ao head -5 .
$ ls /proc | grep -v "^[0-9].*" | paste - - |column -t | head -5
acpi asound
buddyinfo bus
cgroups cmdline
cpuinfo crypto
devices diskstats
Aqui está a mesma coisa com 4 colunas:
$ ls /proc | grep -v "^[0-9].*" | paste - - - - |column -t | head -5
acpi asound buddyinfo bus
cgroups cmdline cpuinfo crypto
devices diskstats dma dri
driver execdomains fb filesystems
fs interrupts iomem ioports
OBSERVAÇÃO: Per @ JosephR., se você encontrar algum problema com os comandos acima que estão analisando a saída de ls , poderá prefixá-lo com o comando Bash, command , que irá ignorar quaisquer aliases que você possa ter em vigor para ls .
Exemplo
$ command ls /proc | grep -v "^[0-9].*" | paste - - - - |column -t | head -5
acpi asound buddyinfo bus
cgroups cmdline cpuinfo crypto
devices diskstats dma dri
driver execdomains fb filesystems
fs interrupts iomem ioports