@@ -42,6 +42,73 @@ $ find . -name "\*.html"
42
42
./projects.html
43
43
```
44
44
45
+ #### Search for a Pattern (grep)
46
+
47
+ ``` Bash
48
+ # Search for a pattern in a file
49
+ # By default, this is not a regular expression pattern (see the '-E' flag)
50
+ $ grep " string" file.txt
51
+
52
+ # Search for a pattern in text read from a pipe (equivalent to above)
53
+ $ cat file.txt | grep " string"
54
+
55
+ # Search for multiple patterns in a file
56
+ $ grep -e " string1" -e " string2" file.txt
57
+
58
+ # Search for the pattern case-insensitive
59
+ $ grep -i " String" file.txt
60
+
61
+ # Print line number for every matched pattern
62
+ $ grep -i " String" file.txt
63
+
64
+ # Search for anything that doesn't match the specified pattern
65
+ $ grep -v " ath10k" dmesg.txt
66
+
67
+ # When piping data from a file that's actively being written to
68
+ # make sure to pass the '--line-buffered' argument. Otherwise,
69
+ # it may not match the specified pattern, even if it's written
70
+ # to the file
71
+ $ tail -F log_file.txt | grep --line-buffered " canary"
72
+
73
+ # Search for pattern in the output of text continuously read from a pipe
74
+ # (don't forget the '--line-buffered'!) then write the output to both
75
+ # the terminal (stdout) and a text file
76
+ $ journalctl -f | grep --line-buffered " mt7921" | tee out.txt
77
+ ```
78
+
79
+ #### Login to a Remote System (ssh)
80
+
81
+ ``` Bash
82
+ # Login into a remote system over SSH
83
+ # Destination system is typically an IP address, hostname, or alias
84
+
85
+
86
+ # Remote in using a non-standard port (default is 22)
87
+ # Note that the 'scp' command uses the '-P' option for port
88
+ ssh -p 2222 user@server
89
+
90
+ # Remote in using SSH URI (equivalent to previous command)
91
+ ssh ssh://user@server:2222
92
+
93
+ # Generate a new SSH public/private key pair
94
+ #
95
+ # This is used both for authentication purposes on a remote system
96
+ # and identifying a remote system to your system (~/.ssh/known_hosts)
97
+ ssh-keygen -t ed25519
98
+
99
+ # Copy an SSH public key to a remote system
100
+ #
101
+ # This allows you to login using the associated private key.
102
+ # The '-i' flag specifies the specific key to copy. Otherwise,
103
+ # the default is used (if no '.pub' specified, it's automatically added)
104
+ #
105
+ # You can also alternatively use the 'ssh' command to manually copy
106
+ # your public key into the 'known_hosts' file on the remote system,
107
+ # but this does it for you. Using 'scp':
108
+ # cat .ssh/id_ed25519.pub | ssh user@server 'cat >> ~/.ssh/authorized_keys'
109
+ ssh-copy-id -i ~ /.ssh/id_ed25519.pub user@server
110
+ ```
111
+
45
112
<!-- System Administration: Non-Systemd -->
46
113
47
114
## System Administration: Non-Systemd
0 commit comments