tboimah | Good morning | 11:35 |
---|---|---|
*** tboimah has quit (None) | 11:36 | |
ubuntourist | Hi | 11:52 |
ubuntourist | I need to take care of something for a minute or two. I'll be back soon. | 11:52 |
ubuntourist | ...and, I am back. | 11:57 |
tboimah | Good morning Mr. cool. | 11:58 |
ubuntourist | So. How many people are we expecting to join IRC this morning? | 11:58 |
tboimah | 7 people | 11:58 |
scooper | OK are we set now to commence classes | 11:59 |
scooper | If I may ask is that you Cole?? | 11:59 |
LittleWebster | free2 : mulbah : ubuntourist : scooper : tboimah | 12:00 |
LittleWebster | Tick Tock! | 12:00 |
LittleWebster | It's 12:00 UTC o'clock and NOVA Web Development's meeting is starting. | 12:00 |
LittleWebster | This is the agenda for today: | 12:00 |
LittleWebster | BRIEF State of the Tech report from scooper (5 minutes max) (added by ubuntourist) | 12:00 |
LittleWebster | Progress reports from everybody (Again, keep it brief.) (added by ubuntourist) | 12:00 |
LittleWebster | Lots of command-line-interface (CLI) interactive show and tell (I hope) and Q&A (added by ubuntourist) | 12:00 |
LittleWebster | Have a nice day, Websters! | 12:00 |
ubuntourist | "Mr. Cool" 😉 Maybe I should change my name to that... 😉 (It's "Cole" not "Cool" but I like "Cool" too. 😉) | 12:00 |
scooper | I m sorry that was a typing error | 12:00 |
ubuntourist | scooper, Yep me. | 12:01 |
scooper | SO what are we using for video teaching today?? Mr. COle | 12:01 |
ubuntourist | OK, scooper, if everyone's there, let's start. | 12:02 |
scooper | +1 everybody is here | 12:02 |
ubuntourist | scooper, I looked through the last two IRC logs and it looked like video was just too much work. Much time was spent failing to get a good connection. | 12:03 |
ubuntourist | scooper, I'm sorry I did not look at the logs sooner. I think there will need to be some mid-week experimentation to see if there is a way to improve the siituation. | 12:04 |
scooper | SO what are the ways forward for today presentation?? | 12:04 |
ubuntourist | scooper, I'm working on setting up an audio solution first beecause there will be lower bandwidth / data requirements. | 12:05 |
scooper | Ok Sir | 12:05 |
ubuntourist | scooper, I don't have a presentation ready. Sorry. But, because this is all "command line" stuff today, I'm hoping I can type fast enough and you all can copy from the IRC chat into a terminal window when needed. | 12:06 |
free2 | hi | 12:06 |
ubuntourist | So. First: | 12:06 |
scooper | Hi free2 can you please introduce yourself?? | 12:07 |
ubuntourist | scooper, Any tech updates for the entire lab / classroom? If not, we'll move on to student progress reports. | 12:07 |
free2 | I searched for web development channels and joined to see what happens here | 12:07 |
scooper | Let move on to students progress cole | 12:07 |
ubuntourist | Who's first? Just a brief summary of what you've learned or where you got stuck. | 12:08 |
ubuntourist | ACTION waits for someone to report... | 12:09 |
ubuntourist | OK. I'll go down the list alphabetically. dcammue you're the lucky first person. 😉 | 12:10 |
tboimah | okay I work on the robots program that was given to us by jeff and i done with challenge 1,2,3,4,5,and 6, but challenge 7 i have a problem, and not to forget i read on vimtutor and also on some unix command, Thanks. | 12:13 |
ubuntourist | tboimah, Thanks. I'll be focusing on Unix command line stuff in a minute. (I don't use vim. There is a long-running "joke" about editor wars and which editor is best. But I won't get into that.) | 12:14 |
ubuntourist | Anyone else? | 12:15 |
svaye_ | me/ I read the program that Jeff send us and I understood what made the player to move by touching a key,but I got stuck at challenge 7, and I am still figuring out how to make the robot move. | 12:15 |
ubuntourist | svaye_, Good. So, for two people, step 7 is the issue. Anyone else? | 12:15 |
ubuntourist | (I have not looked at the robot challenges, but Jeff will be looking at this log and can help with that.) | 12:17 |
tboimah | okay | 12:17 |
ubuntourist | dcammue, fkoikoi, janet, mulbah, are you awake? 😉 | 12:18 |
tboimah | they are stay tapping. | 12:18 |
fkoikoi | Hi, I worked on the robot program from challenge 1 to 6 and i am having problem with challenge 7. I am still trying to make the robot move. | 12:18 |
janet | Hi mr cole, last week was great i learn and study on vimtutor, i also continue with challenge 7 but am having a problem with moving the robot. | 12:19 |
dcammue | Good morning Sir, I did the program, and I manage to place the player on the graphics window and also make it to move around the screen. I place the robot there too, but the function that make the robot follow the player is where I having problem with the program.Thanks | 12:19 |
ubuntourist | Ah. Sorry. I have been working with computers a long time, and so, I've forgotten how it was when I was a slow typist. My apologies to all. | 12:20 |
tboimah | no problem it will get better. | 12:21 |
mulbah | I think i'm makeing process on my note because in done with challenge 5 and 6 but challenge 7 is giveing me had time to make the robot move and i'm also reading my vimtutor and unix comman | 12:21 |
ubuntourist | OK. So, everyone's stuck on Challenge 7. If you are not already doing this, you may want to sit around and experiment together, suggesting ideas to each other. | 12:22 |
ubuntourist | Moving on to Unix. | 12:23 |
mulbah | +1 | 12:23 |
dcammue | +1 | 12:23 |
tboimah | okay | 12:23 |
fkoikoi | +1 | 12:23 |
tboimah | we are waiting. | 12:24 |
ubuntourist | Jeff may have already said something like "It's all just bits" when talking about computers. A similar statement can be made when talking about Unix and Linux and all the operating systems like that: | 12:24 |
ubuntourist | "Everything is a file". Unix is designed so that even things that don't seem like files can be treated as files. | 12:25 |
ubuntourist | Your keyboard is a "file". Your screen is a "file". Your printer is a "file". The internet is a "file". | 12:26 |
ubuntourist | Don't get to confused by that yet, but what it means is that Unix is really good at taking the result (output) of one program or application, and feeding it as input to the next application. | 12:27 |
ubuntourist | So. A quick example. Get your terminal windows ready, and we'll do a little bit of typing. | 12:27 |
fkoikoi | +1 | 12:28 |
tboimah | +1 it's ready | 12:28 |
dcammue | okay | 12:28 |
ubuntourist | First, let me ask: Have you used the "find" command yet? (Just a +1 for "yes" and a -1 for "no") | 12:28 |
mulbah | ACTION +1 | 12:28 |
janet | sure | 12:28 |
fkoikoi | -1 | 12:29 |
tboimah | +1 | 12:29 |
mulbah | ACTION +1 | 12:29 |
janet | -1 | 12:29 |
tboimah | did you means the ls command | 12:29 |
dcammue | -1 | 12:30 |
ubuntourist | tboimah, Nope. "ls" lists the files in a directory. Sometimes, you don't know which directory a file is in, but you want to locate it. "find" does that. | 12:30 |
ubuntourist | So, type: | 12:31 |
ubuntourist | find / -name "hosts" | 12:31 |
tboimah | done | 12:32 |
ubuntourist | You will probably see a lot of errors about "permission denied". This means that Linux is trying to search everywhere for files. But if you are not a systems administrator, you do not have permission to look at other people's files. | 12:33 |
tboimah | and i see a bunch of listed files | 12:33 |
ubuntourist | We don't care about those errors. We only want to look at what we are permitted to see, but don't want to see the warnings for stuff we're not allowed to look at. | 12:34 |
dcammue | +1 | 12:34 |
svaye_ | +1 | 12:35 |
fkoikoi | +1 | 12:35 |
tboimah | +1 | 12:35 |
dcammue | I saw similar things like that | 12:35 |
janet | +1 | 12:35 |
mulbah | +1 | 12:35 |
ubuntourist | So. Let's surpress the error. Really, what we are doing is telling Unix that error messages should go to a seperate file called the "Null device" which is like a place to send garbage / trash / rubbish. | 12:36 |
ubuntourist | Try again with: | 12:36 |
ubuntourist | find / -name "hosts" 2> /dev/null | 12:36 |
tboimah | done | 12:37 |
svaye_ | done | 12:38 |
dcammue | done | 12:38 |
mulbah | done | 12:39 |
ubuntourist | The list should be MUCH shorter. There are three common types of information travelling between you and your computer "Standard Input", "Standard Output" and "Standard Error" -- stdin, stdout, stderr. | 12:39 |
fkoikoi | done but mine is saying /etc/hosts | 12:40 |
ubuntourist | They are often represented with numbers. stderr is for output that is an error message, and is repeesented by the number "2". | 12:40 |
ubuntourist | The ">" redirects information. So "2>" means "Send the error messages somewhere else" and "/dev/null" is "to the rubbish pile". Don't show the error messages to me. Do not send them to my screen. | 12:42 |
ubuntourist | The first part: find / -name "hosts" "find": well, that's kind of obvious: It means you want to find something. "/" is where to start looking. And -name "hosts" is "what we are looking for". | 12:44 |
ubuntourist | I'm guessing you've alrready used "mkdir" and "cd", right? (I think those are early in Jeff's lessons.) | 12:45 |
fkoikoi | +1 | 12:45 |
janet | +1 | 12:45 |
dcammue | +1 | 12:45 |
svaye_ | +1 | 12:45 |
tboimah | +1 | 12:46 |
mulbah | +1 | 12:47 |
ubuntourist | OK, good. So, you have some idea about how directories work. "/" is called the "root" directory. All other directories are under or inside of the root directory. So, when you say "find /" followed by anything, | 12:47 |
ubuntourist | it means "look in ALL directories EVERYWHERE" not just my user directories. | 12:48 |
ubuntourist | "find", "grep", "wc" and a few other commands will come in very handy as you progress. And knowing how to combine them into one big command can be very useful. | 12:50 |
ubuntourist | So next: "wc" the Word Count program. It reports the number of characters, words, and lines in a file. | 12:51 |
ubuntourist | Help me out here: I don't have Jeff's lessons handy. What is the name of the first file that Jeff told you to create with vim? | 12:52 |
svaye_ | right now we are using thonny | 12:53 |
tboimah | when have not been using vim now it is thonny | 12:53 |
dcammue | we are using thonny. | 12:54 |
ubuntourist | Ah. Ok. Thonny's nice. I like it better than vim. 😉 | 12:54 |
svaye_ | the lesson is "the robots are coming" | 12:54 |
ubuntourist | Ok. Pick a file name for some file you have already created and type: | 12:55 |
ubuntourist | "wc" followed by the name of the file (without the quotes) Something like: | 12:55 |
ubuntourist | wc robot.txt | 12:55 |
ubuntourist | wc hello.html | 12:56 |
ubuntourist | wc my.file.that.I.made | 12:56 |
ubuntourist | (I don't know the names of your files.) | 12:56 |
ubuntourist | What do you see? | 12:56 |
svaye_ | numbers | 12:57 |
ubuntourist | Type the numbers you see into the chat. | 12:57 |
fkoikoi | 12 52 329 | 12:58 |
svaye_ | 5515 30754 1499211 and the file name | 12:59 |
ubuntourist | fkoikoi, svaye_ great! | 12:59 |
ubuntourist | svaye_, I'll be interested in which file you chose! | 12:59 |
mulbah | 59 206 1386 | 13:00 |
svaye_ | ThingsAboutShallon.sb3 | 13:00 |
ubuntourist | The first number is the number of lines in your file. The second number is the number of "words" in your file, and the third is the number of characters in your file. | 13:01 |
dcammue | 43 117 880 | 13:01 |
ubuntourist | svaye_, My guess is that you chose a file that is not human-readable, and that it is not really giving you the number of lines: 5515 lines is a lot of lines and 1499211 characters is a lot of characters! | 13:02 |
tboimah | 37 109 798 | 13:02 |
svaye_ | it was a program I created in scratch | 13:02 |
ubuntourist | svaye_, Ah, Yes. Scratch files are only readble in Scratch. Opening that file with Thonny will probably ruin it. | 13:03 |
janet | 21 28 331 | 13:04 |
svaye_ | how about this one 22 88 603 | 13:04 |
ubuntourist | It is often really handy to know how many lines are in a file. Or, how many files are in a directory. Most of you are getting files with somewhere between 10 to 50 lines. | 13:05 |
ubuntourist | Now, we're going to combine a few commands together: | 13:05 |
ubuntourist | We'll start with "ls" but with a few additions to it: | 13:06 |
ubuntourist | Type: ls -lR ~/ | 13:06 |
dcammue | ok | 13:06 |
tboimah | done | 13:07 |
dcammue | done | 13:07 |
janet | done | 13:07 |
svaye_ | done | 13:07 |
mulbah | done | 13:08 |
ubuntourist | This is a "long listing" that gives lots of information about your files, and shows all of your normal files in all of your normal directories. How many files and directories? Here's a quick estimate: | 13:08 |
ubuntourist | ls -lR ~/ | wc -l | 13:08 |
ubuntourist | (type that) | 13:08 |
fkoikoi | done | 13:09 |
tboimah | done | 13:10 |
janet | done | 13:10 |
ubuntourist | Instead of sending the output of the ls command to your screen, we sent the output to the "wc" command and told "wc" to use it as input and count the number of lines (wc -l only shows the line count not word and character counts.) | 13:10 |
mulbah | done | 13:10 |
ubuntourist | Any questions so far? Is this making sense? I've been doing a lot of talking / typing, but I want to make sure people are understanding. | 13:11 |
svaye_ | done | 13:11 |
dcammue | done | 13:11 |
fkoikoi | It is well understood | 13:11 |
tboimah | +1 i'm understanding you. | 13:12 |
dcammue | =1 | 13:12 |
dcammue | sorry | 13:12 |
dcammue | +1 | 13:12 |
svaye_ | I understand | 13:12 |
mulbah | +1 | 13:13 |
dcammue | I understand | 13:13 |
janet | sure,am understanding | 13:13 |
fkoikoi | I have a question | 13:14 |
ubuntourist | fkoikoi, go ahead. | 13:14 |
fkoikoi | what if you don't know where you place a file or directories and you want to locate it and also count the numbers of line and words? | 13:15 |
ubuntourist | I like questions even more than I like trying to make lessons! Jeff will confirm that, I think. 😉 | 13:16 |
ubuntourist | fkoikoi, Excellent question: THIS is where I'm hoping to get to by the end of today! You are predicting the end of today's lesson! | 13:16 |
ubuntourist | I'll jump ahead and give you an answer right now, and then we will disect it. | 13:17 |
fkoikoi | alright | 13:17 |
ubuntourist | Let's say we're looking for the number of user accounts on a computer. And we remember part of the file name that has the list, but we don't know the full name or where it is. | 13:20 |
ubuntourist | First, we know that the filename starts with "pass" but we can't remember the rest of it. | 13:20 |
ubuntourist | find / -name "pass*" 2> /dev/null | 13:21 |
ubuntourist | (Type that to search, from the root directory, all file names beginning with "pass" but don't show me the errors for files that I am not allowed to see.) | 13:22 |
svaye_ | find / -name "pass*" 2> /dev/null | 13:23 |
fkoikoi | I just tried it and it gives lots of file names beginning with the name or letters you type | 13:25 |
ubuntourist | Files that contain configuration information and important system information are usually in "/etc" | 13:25 |
ubuntourist | fkoikoi, Right. It's searching for ANY file ANYWHERE that starts with the letters "pass" | 13:26 |
ubuntourist | So, lets improve on that: | 13:26 |
ubuntourist | find /etc -name "pass*" 2> /dev/null | 13:26 |
fkoikoi | +1 | 13:26 |
ubuntourist | (Search only the "/etc/" directory and subdirectories under it.) | 13:27 |
dcammue | Yes it give me all of my files name starting with rob, because I type in rob which is half of my files name. | 13:27 |
fkoikoi | done | 13:28 |
tboimah | soe | 13:28 |
tboimah | done | 13:28 |
ubuntourist | OK. So now it should be a much shorter list. | 13:28 |
tboimah | +1 | 13:29 |
ubuntourist | Maybe 4 files listed. Something like that. | 13:29 |
tboimah | my is 3 | 13:29 |
fkoikoi | mine is 3 | 13:29 |
ubuntourist | Close enough. (My systems are more complicated and have a few more files.) | 13:29 |
ubuntourist | Now: | 13:30 |
ubuntourist | a complicated command: | 13:30 |
ubuntourist | Never mind. Too complicated for today. I changed my mind. I'm going to keep it simpler. | 13:31 |
dcammue | I have 3 | 13:31 |
svaye_ | mine is 3 | 13:31 |
tboimah | okay of you say. | 13:32 |
tboimah | okay if you say. | 13:32 |
ubuntourist | Now we know where the file might be, and what the name might be -- or we have a good guess: We found files that begin with "pass*" -- the part of the name that we remembered, and guessed that it was in the system configuration directory /etc. | 13:33 |
ubuntourist | Now we can use wc -l on each of them to get the number of lines in each. | 13:34 |
ubuntourist | wc -l /etc/passwd | 13:34 |
svaye_ | done | 13:34 |
ubuntourist | (That's the only one we'll need.) | 13:34 |
dcammue | 39 | 13:34 |
dcammue | 39 lines | 13:35 |
svaye_ | 48 lines | 13:35 |
tboimah | 47 | 13:35 |
ubuntourist | I want to keep things moving. So, don't waste your time now looking at the other files. | 13:35 |
janet | 47 | 13:35 |
fkoikoi | alright | 13:36 |
ubuntourist | OK. REALLY quick, because we're running out of time: | 13:36 |
dcammue | okay | 13:36 |
ubuntourist | I think of a the "grep" command as a partner to the "find" command: "grep" searches for information INSIDE files. For example, let's say that there is a word that you ALWAYS type incorrectly. | 13:37 |
ubuntourist | Maybe you have 30 files, and you want to search them all to see if you have the incorrectly spelled word in any of them. "grep" is your friend here. | 13:38 |
ubuntourist | Or maybe you want to find all the files with your name in them. | 13:39 |
ubuntourist | The simplest pattern is: | 13:39 |
ubuntourist | grep -r "my name" * | 13:40 |
ubuntourist | or | 13:40 |
ubuntourist | grep -r "rong speling" * | 13:40 |
tboimah | done | 13:43 |
svaye_ | done | 13:43 |
ubuntourist | grep is MUCH more powerful than that. I think it is supposed to stand for "General Regular Expression Processor". Regular Expressions (sometimes called "regex") are very powerful search patterns. | 13:43 |
ubuntourist | Combining a few ideas into one big one: | 13:44 |
ubuntourist | find / -name "pass" 2> /dev/null | grep "etc" | grep "passwd" | wc -l | 13:45 |
ubuntourist | Search the entire computer (all directories) for filenames that begin with pass. Take the output of that list and search for any lines that contain "etc". Take the output of THAT list and search for any lines that contain "passwd". | 13:46 |
ubuntourist | Take the output of THAT list and tell me how many lines match. | 13:47 |
tboimah | 0 | 13:47 |
ubuntourist | There are shorter ways to do the above, because we already know we want to look at /etc/passwd. But sometimes, we don't have all the information and have to build it up slowly. | 13:48 |
dcammue | 0 | 13:48 |
ubuntourist | tboimah, Oops... Then I've made a mistake. I need my morning caffeine... Let me check my work... | 13:48 |
janet | 0 | 13:49 |
ubuntourist | Ah, I forgot the asterisk... My bad. it should be -name "pass*" | 13:50 |
ubuntourist | find / -name "pass*" 2> /dev/null | grep "etc" | grep "passwd" | wc -l | 13:50 |
fkoikoi | 3 | 13:51 |
tboimah | 7 | 13:51 |
dcammue | 3 | 13:52 |
janet | 7 | 13:52 |
tboimah | now you asterisk your bed | 13:52 |
ubuntourist | Using the ">" is called a "redirect" and using the "|" is called "piping" (The "|" is a "pipe" that takes the output of one command and sends it through pipe to the next command. You are connecting the commands with pipes. | 13:52 |
svaye_ | 7 | 13:53 |
ubuntourist | There are MANY unix commands that you can pipe together. | 13:54 |
dcammue | hmm okay | 13:54 |
ubuntourist | So, scooper Pick someone to summarize what we've learned today. (Or one person, volunteer.) | 13:55 |
mulbah | 172 | 13:55 |
ubuntourist | (This is a 2-hour class, right?) | 13:55 |
mulbah | +1 | 13:56 |
fkoikoi | +1 | 13:56 |
svaye_ | +1 | 13:56 |
ubuntourist | mulbah, Wow! That's an unexpected result! There must be some interesting stuff installed on that computer... | 13:57 |
fkoikoi | tboimah will do the summarizing | 13:59 |
dcammue | Thomas is in progress with the summarize. | 14:00 |
ubuntourist | (Keep IRC lines short and frequent. Many short sentences, instead of one big, long paragraph. That way, people aren't waiting.) | 14:04 |
tboimah | okay to day wee learn about the find, grep, wc and we also learn how to locate a file a the amount of lines and we learn that their are three common types of information travelling between you and your computer and they are "standard input", "standard output" and "standard error. once again thanks for the time, we appreciate that. | 14:04 |
ubuntourist | Sounds good. If you have time and a good connection, search the internet for beginners guides and tutorials for both "unix pipe" and "grep". "grep" will probably be harder, | 14:05 |
tboimah | okay | 14:06 |
ubuntourist | because there is more to understand about the ways to make regular expression patterns. | 14:06 |
ubuntourist | scooper, I'm working on setting up "mumble" which is a low-bandwidth, low-latency audio chat system. | 14:06 |
ubuntourist | scooper, My hope is that it will be stable for audio. | 14:07 |
ubuntourist | scooper, We should try to find a time where we can talk and set up a "mumble" client program on one of the computers there. | 14:08 |
scooper | Ok Sir we hope for the best | 14:08 |
ubuntourist | scooper, probably the most powerful computer.... | 14:08 |
scooper | I was thinking to share with Jeff that we use Libtelco internet service here in Liberia it preferable and reliable | 14:08 |
ubuntourist | scooper, I think video is going to continue to be a problem, but audio may be solveable. | 14:08 |
scooper | If we use Libtelco as our ISP the will be no trouble in our video interaction COle | 14:09 |
ubuntourist | scooper, Well, in that situation, I will wait until I hear from Jeff. (I will continue to experiment with "mumble" but if there's a better 'net connection, we might not need it.) | 14:10 |
ubuntourist | OK. Bye everybody! | 14:10 |
scooper | GOodbye COle and thanks for the time sir | 14:10 |
tboimah | okay thanks for the time. | 14:10 |
fkoikoi | thanks so much | 14:11 |
janet | alright,thanks alot | 14:11 |
fkoikoi | i learned a lot of things from you today | 14:11 |
svaye_ | thanks for your time | 14:11 |
*** tboimah has quit (Quit: Leaving) | 14:12 | |
*** scooper has quit (Remote host closed the connection) | 14:12 | |
*** janet has quit (Quit: Leaving) | 14:13 | |
free2 | hi, would it be ok to share some examples of commands? | 14:13 |
*** fkoikoi has quit (Quit: Leaving) | 14:14 | |
ubuntourist | free2, You mean sharing your commands with the rest of the class? Or what? | 14:14 |
free2 | yes | 14:14 |
free2 | I want to share some options of find and such | 14:15 |
free2 | this is a nice alternative to grep, it has an option to specify start and end lines of search https://github.com/Genivia/ugrep/wiki faster grep with an interactive query UI Universal grep: ultra fast searcher of file systems, text and binary files, source code, archives, compressed files, documents, and more. | 14:15 |
ubuntourist | Well, class is over ofor today, and I was trying to keep it simple. But sure. | 14:15 |
free2 | right I figured maybe not to post advanced commands and such | 14:15 |
free2 | for example in find manual they recommend using -execdir over -exec for security | 14:16 |
free2 | find . -type f -not -name "*.html" -exec ls -l {} \; | 14:16 |
free2 | and there is also -iname for case-insensitive search | 14:16 |
free2 | maybe it would be useful to have files for each command, where one would save examples | 14:16 |
ubuntourist | As I was typing I thouhgt about introducing both -exec and the "for x in $(...) do... done" pattern which I use a lot, but it seemed like too much for today. | 14:17 |
free2 | in that command we see how we can find all files that don't match a specific regex, and execute a command for each of those files | 14:17 |
free2 | right I see, not to rush things | 14:17 |
ubuntourist | I started typing in those and then thought "too many prerequisites" I'm already trying to cram too much into two hours. | 14:17 |
free2 | I see | 14:18 |
free2 | also -maxdepth | 14:18 |
free2 | of course they are all there in the manual, but it is useful to have a list of the most useful options | 14:18 |
ubuntourist | (And xargs too. And find has a -regex search too, used with -regextype. But sooo much.) | 14:20 |
free2 | I see | 14:20 |
ubuntourist | Maybe next week: Learning to read man pages. I remember the first time I saw those and thought "This is absolutely horrible!" but now, I am so used to them. | 14:21 |
free2 | right | 14:21 |
free2 | sometimes it is hard to find what you need | 14:21 |
ubuntourist | I will share now my favorite alias which I put together over time: | 14:21 |
free2 | poorly made manuals | 14:22 |
*** mulbah has quit (Ping timeout: 480 seconds) | 14:22 | |
*** dcammue has quit (Ping timeout: 480 seconds) | 14:22 | |
ubuntourist | alias decomment='egrep -v "^[[:space:]]*((#|;|//).*)?$" ' | 14:22 |
*** svaye_ has quit (Ping timeout: 480 seconds) | 14:22 | |
free2 | I see | 14:23 |
free2 | optional space at the start, # or ; or // then arbitrary text and one character at the end, as I understand it | 14:23 |
free2 | regex is very hard for me | 14:23 |
ubuntourist | This is REALLY useful on /etc/ configuration files. For example, some of the old Apache config files would be 500 lines long. Run one through decomment and find that there are actually 30 lines of code. The rest (470) are comments. | 14:24 |
free2 | everyone pinged out | 14:24 |
free2 | I see! | 14:24 |
free2 | right it deletes the whole line, -v invert search | 14:24 |
ubuntourist | Where are you coming in from? | 14:25 |
free2 | everyone was connected through webchat? | 14:25 |
free2 | eastern europe | 14:25 |
free2 | also everyone using real names | 14:26 |
free2 | this chat is private? | 14:26 |
ubuntourist | I believe they were all using the HexChat application. I'm in Washington, DC. They're all in Liberia. | 14:26 |
free2 | I see | 14:26 |
free2 | they pinged out at the same time | 14:27 |
ubuntourist | Yes, it's intended as a private classroom / co-operative channel. | 14:27 |
free2 | should I leave? | 14:27 |
ubuntourist | (Worker's coop. NoVA Web Development.) | 14:28 |
free2 | I see | 14:28 |
ubuntourist | probably. | 14:28 |
free2 | alright | 14:28 |
ubuntourist | But nice chatting anyway. | 14:28 |
free2 | goodbye | 14:28 |
free2 | yes, thank you | 14:28 |
*** free2 has left #novawebdev (None) | 14:28 | |
*** ubuntourist has quit (Remote host closed the connection) | 22:11 |
Generated by irclog2html.py 2.17.3 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!