¿Qué significa el |símbolo al sudo ps -ef | grep processnamemando?
También, ¿alguien puede explicar este comando? He usado este comando solo para obtener el PID y matar ese proceso, pero también vi sudo ps -ef | grep processname | grep -v grepy tengo la impresión de que -v grepes como matar el PID generado anteriormente grep. Si es así, ¿cómo funciona?
command-line
bash
process
Aamir
fuente
fuente

sudocorrerps -ef. También un truco común para evitar el tercer comando es encerrar un carácter del nombre del proceso entre corchetes:ps -ef | grep [p]rocessnameps -ef | grep '[p]rocessname'grep [p]rocessname, le está diciendo al shell que busque un archivo en el directorio actual con el nombreprocessnamey sustituya el patrón con el nombre de ese archivo. Si noprocessnameexiste un archivo con nombre , el shell puede pasar el patrón literalmente a grep. Pero eso depende de su configuración. Por lo que su versión se romperá si un archivo llamadoprocessnameexiste o si alguna de las siguientes opciones de shell ha sido habilitadofailglob,nullglob,nocaseglob.Respuestas:
Primero se ejecuta
sudo ps -efy pasa la salida al segundo comando.El segundo comando filtra todas las líneas que contienen la palabra "nombre de proceso".
ps -ef | grep processname | grep -v grepenumera todas las líneas que contienenprocessnamey no contienengrep.De acuerdo a
man grepDe acuerdo a
man psPuede combinar parámetros
-efsignifica lo mismo que-e -f.En realidad,
ps -ef | grep processnameenumere todas las ocurrencias del proceso llamadoprocessname.fuente
ps -efhace exactamente ??| grep processNameen la terminal también obtenemos salida de grep, que en sí mismo es un proceso, así que -v mata esta salidaSe llama
pipe. Da la salida del primer comando como la entrada al segundo comando.En su caso significa:
El resultado de
sudo ps -efse alimenta como la entrada degrep processnamesudo ps -ef:Esto enumera todos los procesos en ejecución. Escriba
man psel término para más.grep processnameEntonces, esta lista de procesos se alimenta a grep que solo busca el programa definido por
programname.Ejemplo
Escribiendo
sudo ps -ef | grep firefoxen mi terminal vuelve:fuente
-v grepfunciona ..grep -vse usa. Para filtrar la última línea.grep -vfiltra las líneas de salida que contienen el patrón.Voy a tratar de responder esto con una respuesta práctica directa:
¡La pipa
|te permite hacer cosas increíbles en el caparazón! Es el único operador que considero el más útil y poderoso.¿Qué tal contar archivos en un directorio? sencillo:
ls | wc -l.. redireccionar la salida delsunwcparámetro ingenioso-lpara líneaso el recuento de líneas en un archivo?
¿Qué pasa si quiero buscar algo? 'grep' puede buscar ocurrencias de cadenas:
simplemente redirige la salida del comando a la izquierda de la tubería al comando a la derecha de la tubería.
un nivel más: ¿con qué frecuencia ocurre algo en un archivo?
puedes usar el | por casi todo :)
fuente
grep -c "aRandomStringYouWantToSearchFor" "someFile";-)kill $(ps aux | awk '/someString/ { print $2}' | sed -n '1p')no, porque no serviría para nada.Otras respuestas ya han respondido a su pregunta principal, pero me gustaría abordar esto también;
En general, matar un proceso a menudo es una exageración y deja los recursos asignados por un proceso en un estado desordenado, a menudo puede terminarlo ;
Además de esto, solo use
pkillpara matar / terminar un proceso.pkilladmite especificar un nombre de proceso exacto o una expresión regular:fuente
kill -9menos que sepa específicamente que ninguna otra señal funcionará. Véase también iki.fi/era/unix/award.html#killkillhace. La especificación-9es una opción adicional adicional y con mayor frecuencia desastrosa.kill, simple y llanamente. Dejando a un lado cualquier terminología, su respuesta no debería aconsejar a las personas que usen la-9opción a menos que pongan una advertencia carnosa.