correct spelling mistakes
diff --git a/examples/networking/dns_matching/dns_matching.py b/examples/networking/dns_matching/dns_matching.py
index a9234fc..eb2e29e 100755
--- a/examples/networking/dns_matching/dns_matching.py
+++ b/examples/networking/dns_matching/dns_matching.py
@@ -69,7 +69,7 @@
   add_cache_entry(cache, e)
 
 print("\nTry to lookup some domain names using nslookup from another terminal.")
-print("For exmaple:  nslookup foo.bar")
+print("For example:  nslookup foo.bar")
 print("\nBPF program will filter-in DNS packets which match with map entries.")
 print("Packets received by user space program will be printed here")
 print("\nHit Ctrl+C to end...")
diff --git a/man/man8/memleak.8 b/man/man8/memleak.8
index 8191b38..fa52c8c 100644
--- a/man/man8/memleak.8
+++ b/man/man8/memleak.8
@@ -70,7 +70,7 @@
 Attach to allocation functions in specified object instead of resolving libc. Ignored when kernel allocations are profiled.
 .TP
 INTERVAL
-Print a summary of oustanding allocations and their call stacks every INTERVAL seconds.
+Print a summary of outstanding allocations and their call stacks every INTERVAL seconds.
 The default interval is 5 seconds.
 .TP
 COUNT
diff --git a/man/man8/tcplife.8 b/man/man8/tcplife.8
index 059caa9..00a9933 100644
--- a/man/man8/tcplife.8
+++ b/man/man8/tcplife.8
@@ -105,7 +105,7 @@
 This traces the kernel TCP set state function, which should be called much
 less often than send/receive tracing, and therefore have lower overhead. The
 overhead of the tool is relative to the rate of new TCP sessions: if this is
-high, over 10,000 per second, then there may be noticable overhead just to
+high, over 10,000 per second, then there may be noticeable overhead just to
 print out 10k lines of formatted output per second.
 
 You can find out the rate of new TCP sessions using "sar \-n TCP 1", and
diff --git a/src/cc/frontends/clang/loader.cc b/src/cc/frontends/clang/loader.cc
index 0d80634..dd6ede3 100644
--- a/src/cc/frontends/clang/loader.cc
+++ b/src/cc/frontends/clang/loader.cc
@@ -135,7 +135,7 @@
 
   // -fno-color-diagnostics: this is a workaround for a bug in llvm terminalHasColors() as of
   // 22 Jul 2016. Also see bcc #615.
-  // Enable -O2 for clang. In clang 5.0, -O0 may result in funciton marking as
+  // Enable -O2 for clang. In clang 5.0, -O0 may result in function marking as
   // noinline and optnone (if not always inlining).
   // Note that first argument is ignored in clang compilation invocation.
   vector<const char *> flags_cstr({"-O0", "-O2", "-emit-llvm", "-I", dstack.cwd(),
diff --git a/src/cc/frontends/p4/test/testP4toEbpf.py b/src/cc/frontends/p4/test/testP4toEbpf.py
index bc6301a..0e9a298 100755
--- a/src/cc/frontends/p4/test/testP4toEbpf.py
+++ b/src/cc/frontends/p4/test/testP4toEbpf.py
@@ -37,7 +37,7 @@
     errors = 0
 
     if not is_root():
-        print "Loading EBPF programs requires root priviledge."
+        print "Loading EBPF programs requires root privilege."
         print "Will only test compilation, not loading."
         print "(Run with sudo to test program loading.)"
 
diff --git a/src/cc/libbpf.c b/src/cc/libbpf.c
index 78ca5c6..44329da 100644
--- a/src/cc/libbpf.c
+++ b/src/cc/libbpf.c
@@ -161,7 +161,7 @@
       // of map's value. So we pass an invalid pointer for value, expect
       // the call to fail and check if the error is ENOENT indicating the
       // key doesn't exist. If we use NULL for the invalid pointer, it might
-      // trigger a page fault in kernel and affect performence. Hence we use
+      // trigger a page fault in kernel and affect performance. Hence we use
       // ~0 which will fail and return fast.
       // This should fail since we pass an invalid pointer for value.
       if (bpf_lookup_elem(fd, key, (void *)~0) >= 0)
diff --git a/src/lua/bcc/vendor/json.lua b/src/lua/bcc/vendor/json.lua
index 1a6c29d..3e4648d 100644
--- a/src/lua/bcc/vendor/json.lua
+++ b/src/lua/bcc/vendor/json.lua
@@ -19,7 +19,7 @@
 so: `[2, 3, false, "hi"]`. Any other type of Lua table is encoded as a json
 object, encoded like so: `{"key1": 2, "key2": false}`.
 
-Because the Lua nil value cannot be a key, and as a table value is considerd
+Because the Lua nil value cannot be a key, and as a table value is considered
 equivalent to a missing key, there is no way to express the json "null" value in
 a Lua table. The only way this will output "null" is if your entire input obj is
 nil itself.
diff --git a/src/lua/bpf/bpf.lua b/src/lua/bpf/bpf.lua
index f37ab57..6e5afc1 100644
--- a/src/lua/bpf/bpf.lua
+++ b/src/lua/bpf/bpf.lua
@@ -475,7 +475,7 @@
 
 local function LOAD(dst, src, off, vtype)
 	local base = V[src].const
-	assert(base.__dissector, 'NYI: load() on variable that doesnt have dissector')
+	assert(base.__dissector, "NYI: load() on variable that doesn't have dissector")
 	-- Cast to different type if requested
 	vtype = vtype or base.__dissector
 	local w = ffi.sizeof(vtype)
@@ -971,7 +971,7 @@
 			bb_end(Vstate[code.bc_pc])
 		end
 		-- Perform fixup of jump targets
-		-- We need to do this because the number of consumed and emited
+		-- We need to do this because the number of consumed and emitted
 		-- bytecode instructions is different
 		local fixup = code.fixup[code.bc_pc]
 		if fixup ~= nil then
diff --git a/src/python/bcc/table.py b/src/python/bcc/table.py
index 7eeb059..a985791 100644
--- a/src/python/bcc/table.py
+++ b/src/python/bcc/table.py
@@ -302,7 +302,7 @@
         it will be used to produce a bucket value for the histogram keys.
         If the value of strip_leading_zero is not False, prints a histogram
         that is omitted leading zeros from the beginning. The maximum index
-        allowed is log2_index_max (65), which will accomodate any 64-bit
+        allowed is log2_index_max (65), which will accommodate any 64-bit
         integer in the histogram.
         """
         if isinstance(self.Key(), ct.Structure):
diff --git a/tests/python/test_brb.c b/tests/python/test_brb.c
index b9e8e06..2141735 100644
--- a/tests/python/test_brb.c
+++ b/tests/python/test_brb.c
@@ -120,7 +120,7 @@
     /* handle ethernet packet header */
     {
         dmac.addr = ethernet->dst;
-        /* skb->tc_index may be preserved accross router namespace if router simply rewrite packet
+        /* skb->tc_index may be preserved across router namespace if router simply rewrite packet
          * and send it back.
          */
         if (skb->tc_index == 1) {
diff --git a/tools/cpuunclaimed_example.txt b/tools/cpuunclaimed_example.txt
index 1e6499e..64158a9 100644
--- a/tools/cpuunclaimed_example.txt
+++ b/tools/cpuunclaimed_example.txt
@@ -53,7 +53,7 @@
 [...]
 
 It shows that 7 of the 8 CPUs (87.5%) are idle at the same time there are
-queued threads waiting to run on CPU. This is an artifical situation caused
+queued threads waiting to run on CPU. This is an artificial situation caused
 by binding threads to the same CPU, to demonstrate how the tool works.
 
 
diff --git a/tools/dcstat.py b/tools/dcstat.py
index c74c79b..5ecddd1 100755
--- a/tools/dcstat.py
+++ b/tools/dcstat.py
@@ -64,7 +64,7 @@
  * __d_lookup_rcu()). It's counted via calls to lookup_fast().
  *
  * The implementation tries different, progressively slower, approaches to
- * lookup a file. At what point do we call it a dcache miss? I've choosen when
+ * lookup a file. At what point do we call it a dcache miss? I've chosen when
  * a d_lookup() (which is called during lookup_slow()) returns zero.
  *
  * I've also included a "SLOW" statistic to show how often the fast lookup
diff --git a/tools/offwaketime_example.txt b/tools/offwaketime_example.txt
index 72bec06..8291e2f 100644
--- a/tools/offwaketime_example.txt
+++ b/tools/offwaketime_example.txt
@@ -171,7 +171,7 @@
 in reverse order.
 
 The number beneath the stacks is the total time spent from the blocking event
-to the wakeup event. This is summed for all occurances with the same stack
+to the wakeup event. This is summed for all occurrences with the same stack
 pairs.
 
 
diff --git a/tools/solisten.py b/tools/solisten.py
index 44f3f9b..b322af9 100755
--- a/tools/solisten.py
+++ b/tools/solisten.py
@@ -6,7 +6,7 @@
 # USAGE: solisten.py [-h] [-p PID] [--show-netns]
 #
 # This is provided as a basic example of TCP connection & socket tracing.
-# It could be usefull in scenarios where load balancers needs to be updated
+# It could be useful in scenarios where load balancers needs to be updated
 # dynamically as application is fully initialized.
 #
 # All IPv4 listen attempts are traced, even if they ultimately fail or the
diff --git a/tools/tcplife.lua b/tools/tcplife.lua
index d1ce055..7dc9364 100755
--- a/tools/tcplife.lua
+++ b/tools/tcplife.lua
@@ -321,7 +321,7 @@
    parser:flag("-T --time", "include time column on output (HH:MM:SS)")
    parser:flag("-t --timestamp", "include timestamp on output (seconds)")
    parser:flag("-w --wide", "wide column output (fits IPv6 addresses)")
-   parser:flag("-s --csv", "comma seperated values output")
+   parser:flag("-s --csv", "comma separated values output")
    parser:option("-p --pid", "trace this PID only"):convert(tonumber)
    parser:option("-L --localport", "comma-separated list of local ports to trace.")
    parser:option("-D --remoteport", "comma-separated list of remote ports to trace.")
diff --git a/tools/tcplife.py b/tools/tcplife.py
index 490e568..547b71d 100755
--- a/tools/tcplife.py
+++ b/tools/tcplife.py
@@ -50,7 +50,7 @@
 parser.add_argument("-w", "--wide", action="store_true",
     help="wide column output (fits IPv6 addresses)")
 parser.add_argument("-s", "--csv", action="store_true",
-    help="comma seperated values output")
+    help="comma separated values output")
 parser.add_argument("-p", "--pid",
     help="trace this PID only")
 parser.add_argument("-L", "--localport",
diff --git a/tools/tcplife_example.txt b/tools/tcplife_example.txt
index 457fe78..fe4e52b 100644
--- a/tools/tcplife_example.txt
+++ b/tools/tcplife_example.txt
@@ -117,7 +117,7 @@
   -T, --time            include time column on output (HH:MM:SS)
   -t, --timestamp       include timestamp on output (seconds)
   -w, --wide            wide column output (fits IPv6 addresses)
-  -s, --csv             comma seperated values output
+  -s, --csv             comma separated values output
   -p PID, --pid PID     trace this PID only
   -L LOCALPORT, --localport LOCALPORT
                         comma-separated list of local ports to trace.