10 Linux Commands to Improve Your Efficiency

Linux is the most suitable operating system for development. It gives all operational power to the user, and whatever operations are performed will reflect in the system’s structure. Openness, freedom, and honesty are its greatest charms.

Moreover, more and more enterprises are choosing Linux as their server operating system, so for those of us who are learning, understanding Linux is an extremely important topic.
>>>>
Today, I have collected 10 Linux commands for everyone, hoping that you can gain a deeper understanding of Linux’s related features through this article:

01 pgrep

The ‘p’ in pgrep hints that it is related to processes, and since it includes ‘grep’, this command is indeed related to listing process IDs. For example:

$ pgrep -u hchen2244122444

This command is equivalent to:

ps -ef | egrep '^hchen' | awk '{print $2}'

02 pstree

This command can list processes in a tree format. As shown below:

[hchen@RHELSVR5 ~]$ pstree
init-+-acpid
     |-auditd-+-python
     |        `-{auditd}
     |-automount---4*[{automount}]
     |-backup.sh---sleep
     |-dbus-daemon
     |-events/0
     |-events/1
     |-hald---hald-runner---hald-addon-acpi
     |-httpd---10*[httpd]
     |-irqbalance
     |-khelper
     |-klogd
     |-ksoftirqd/0
     |-ksoftirqd/1
     |-kthread-+-aio/0
     |         |-aio/1
     |         |-ata/0
     |         |-ata/1
     |         |-ata_aux
     |         |-cqueue/0
     |         |-cqueue/1
     |         |-kacpid
     |         |-kauditd
     |         |-kblockd/0
     |         |-kblockd/1
     |         |-kedac
     |         |-khubd
     |         |-6*[kjournald]
     |         |-kmirrord
     |         |-kpsmoused
     |         |-kseriod
     |         |-kswapd0
     |         |-2*[pdflush]
     |         |-scsi_eh_0
     |         |-scsi_eh_1
     |         |-xenbus
     |         `-xenwatch
     |-migration/0
     |-migration/1
     |-6*[mingetty]
     |-3*[multilog]
     |-mysqld_safe---mysqld---9*[{mysqld}]
     |-smartd
     |-sshd---sshd---sshd---bash---pstree
     |-svscanboot---svscan-+-3*[supervise---run]
     |                     |-supervise---qmail-send-+-qmail-clean
     |                     |                        |-qmail-lspawn
     |                     |                        `-qmail-rspawn
     |                     `-2*[supervise---tcpserver]
     |-syslogd
     |-udevd
     |-watchdog/0
     |-watchdog/1
     -xinetd

03 bc

This command is mainly used for high-precision mathematical calculations, such as calculating square roots. Below is a script we wrote using the bc command (filename: sqrt)

#!/bin/bash
if [ $# -ne 1 ]
then    echo 'Usage: sqrt number'
    exit 1
else    echo -e "sqrt($1)\nquit\n" | bc -q -fi

Thus, we can use this script to perform square root calculations:

[hchen@RHELSVR5]$ ./sqrt 366
[hchen@RHELSVR5]$ ./sqrt 2.0000
1.4142
[hchen@RHELSVR5]$ ./sqrt 10.0000
3.1622

04 split

If you have a large file and want to split it into smaller files, then this command does just that.
[hchen@RHELSVR5 applebak]# ls -l largefile.tar.gz
-rw-r--r-- 1 hchen hchen 436774774 04-17 02:00 largefile.tar.gz
[hchen@RHELSVR5 applebak]# split -b 50m largefile.tar.gz LF_
[hchen@RHELSVR5]# ls -l LF_*
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_aa
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ab
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ac
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ad
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ae
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_af
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ag
-rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ah
-rw-r--r-- 1 hchen hchen 17344374 05-10 18:35 LF_ai
To merge the files back, simply use the following command:
[hchen@RHELSVR5]#  cat LF_* >largefile.tar.gz

05 nl

<span>nl</span> command is similar to the <span>cat</span> command, except it adds line numbers. As shown below:

[hchen@RHELSVR5 include]# nl stdio.h | head -n 10     1  /* Define ISO C stdio on top of C++ iostreams.          2     Copyright (C) 1991,1994-2004,2005,2006 Free Software Foundation, Inc.          3     This file is part of the GNU C Library.          4     The GNU C Library is free software; you can redistribute it and/or          5     modify it under the terms of the GNU Lesser General Public          6     License as published by the Free Software Foundation; either          7     version 2.1 of the License, or (at your option) any later version.          8     The GNU C Library is distributed in the hope that it will be useful,

06 mkfifo

Those familiar with Unix should know that this is a system call or command to create a named pipe.
Normally, we use the pipe symbol “|” to chain commands using unnamed pipes.
However, using mkfifo allows us to use named pipes. Here is an example:
Below is how to create a named pipe:
[hchen@RHELSVR5 ~]# mkfifo /tmp/hchenpipe
[hchen@RHELSVR5 ~]# ls -l /tmp
prw-rw-r-- 1 hchen  hchen  0 05-10 18:58 hchenpipe
Then, we run the following command in one shell, which will not return until someone reads information from this named pipe.
[hchen@RHELSVR5 ~]# ls -al &gt; /tmp/hchenpipe

In another command window, we read the information from this pipe (which will cause the previous command to return):

[hchen@RHELSVR5 ~]# head /tmp/hchenpipe
drwx------ 8 hchen hchen    4096 05-10 18:27 .
drwxr-xr-x 7 root  root     4096 03-05 00:06 ..
drwxr-xr-x 3 hchen hchen    4096 03-01 18:13 backup
-rw------- 1 hchen hchen     721 05-05 22:12 .bash_history
-rw-r--r-- 1 hchen hchen      24 02-28 22:20 .bash_logout
-rw-r--r-- 1 hchen hchen     176 02-28 22:20 .bash_profile
-rw-r--r-- 1 hchen hchen     124 02-28 22:20 .bashrc
-rw-r--r-- 1 root  root    14002 03-07 00:29 index.htm
-rw-r--r-- 1 hchen hchen   31465 03-01 23:48 index.php

07 ldd

This command can show you the dynamic link libraries used by an executable file. For example:

[hchen@RHELSVR5 ~]# ldd /usr/bin/java        linux-gate.so.1 =&gt;  (0x00cd9000)        libgij.so.7rh =&gt; /usr/lib/libgij.so.7rh (0x00ed3000)        libgcj.so.7rh =&gt; /usr/lib/libgcj.so.7rh (0x00ed6000)        libpthread.so.0 =&gt; /lib/i686/nosegneg/libpthread.so.0 (0x00110000)        librt.so.1 =&gt; /lib/i686/nosegneg/librt.so.1 (0x009c8000)        libdl.so.2 =&gt; /lib/libdl.so.2 (0x008b5000)        libz.so.1 =&gt; /usr/lib/libz.so.1 (0x00bee000)        libgcc_s.so.1 =&gt; /lib/libgcc_s.so.1 (0x00aa7000)        libc.so.6 =&gt; /lib/i686/nosegneg/libc.so.6 (0x0022f000)        libm.so.6 =&gt; /lib/i686/nosegneg/libm.so.6 (0x00127000)        /lib/ld-linux.so.2 (0x00214000)

08 col

This command can convert man files into plain text files. As shown in the example below:

# PAGER=cat
# man less | col -b &gt; less.txt

09 xmlwf

This command can check if an XML document has all tags properly formatted. For example:

[hchen@RHELSVR5 ~]# curl 'https://coolshell.cn/?feed=rss2' &gt; cocre.xml  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                 Dload  Upload   Total   Spent    Left  Speed100 64882    0 64882    0     0  86455      0 --:--:-- --:--:-- --:--:-- 2073k
[hchen@RHELSVR5 ~]# xmlwf cocre.xml
[hchen@RHELSVR5 ~]# perl -i -pe 's@&lt;link&gt;@&lt;br&gt;@g' cocre.xml
[hchen@RHELSVR5 ~]# xmlwf cocre.xml
cocre.xml:13:23: mismatched tag

10 lsof

This command can list open files.

[root@RHELSVR5 ~]# lsof | grep TCP
httpd       548    apache    4u     IPv6   14300967    TCP *:http (LISTEN)
httpd       548    apache    6u     IPv6   14300972    TCP *:https (LISTEN)
httpd       561    apache    4u     IPv6   14300967    TCP *:http (LISTEN)
httpd       561    apache    6u     IPv6   14300972    TCP *:https (LISTEN)
sshd       1764      root    3u     IPv6       4993    TCP *:ssh (LISTEN)
tcpserver  8965      root    3u     IPv4  153795500    TCP *:pop3 (LISTEN)
mysqld    10202     mysql   10u     IPv4   73819697    TCP *:mysql (LISTEN)
sshd      10735      root    3u     IPv6  160731956    TCP 210.51.0.232:ssh-&gt;123.117.239.68:31810 (ESTABLISHED)
sshd      10767     hchen    3u     IPv6  160731956    TCP 210.51.0.232:ssh-&gt;123.117.239.68:31810 (ESTABLISHED)
vsftpd    11095      root    3u     IPv4  152157957    TCP *:ftp (LISTEN)

THE END—

Editor ∑Gemini
Source: Public Account Lao Jiu Classroom

Recommended Articles

☞ How Top Mathematicians Do Mathematics? A Journey of Discovery with Contemporary Master Alain Connes
☞ Some Advice from a Yale University Professor to Graduate Students
☞ Mathematics Can Be So Beautiful
☞ Mathematics and Love
☞ The Discovery of Calculus is the Greatest Victory of the Human Spirit
☞ Parents and Children Winning Nobel Prizes: Counting Families Engaged in Physics and Mathematics
10 Linux Commands to Improve Your Efficiency

Leave a Comment