<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on Time Friend</title><link>https://time-friend.com/en/tags/linux/</link><description>Recent content in Linux on Time Friend</description><generator>Hugo</generator><language>en-GB</language><lastBuildDate>Wed, 29 Jul 2026 15:15:07 +0800</lastBuildDate><atom:link href="https://time-friend.com/en/tags/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>Centos7 How to Use yum to Upgrade Git to Latest Version</title><link>https://time-friend.com/en/archive/centos7-upgrade-git-with-yum/</link><pubDate>Mon, 24 Dec 2018 20:32:05 +0000</pubDate><guid>https://time-friend.com/en/archive/centos7-upgrade-git-with-yum/</guid><description>&lt;h1 id="yum-upgrade-cannot-upgrade-git-to-latest-version"&gt;yum upgrade Cannot Upgrade Git to Latest Version&lt;/h1&gt;
&lt;p&gt;In CentOS7, the default git version is 1.8.x&lt;/p&gt;
&lt;h2 id="check-local-git-version"&gt;Check Local Git Version&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git --version
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git version 1.8.3.1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If you want to use yum to upgrade to 2.0+ version&lt;/p&gt;
&lt;h2 id="direct-yum-upgrade-wont-upgrade-to-latest-version"&gt;Direct yum Upgrade Won&amp;rsquo;t Upgrade to Latest Version&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;yum -y upgrade git
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git version 1.8.3.1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But I don&amp;rsquo;t want to download source package, compile on local machine and export environment variables that way.
Still too troublesome.&lt;/p&gt;</description></item><item><title>Linux - CentOS Timezone Setting</title><link>https://time-friend.com/en/archive/linux-centos-timezone-setting/</link><pubDate>Mon, 30 Jul 2018 20:32:05 +0000</pubDate><guid>https://time-friend.com/en/archive/linux-centos-timezone-setting/</guid><description>&lt;h2 id="timedatectl-command"&gt;timedatectl Command&lt;/h2&gt;
&lt;h3 id="check-current-timezone-status"&gt;Check Current Timezone Status&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ timedatectl status
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Local time: Fri 2018-08-31 13:42:42 CST
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Universal time: Fri 2018-08-31 05:42:42 UTC
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; RTC time: n/a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Time zone: Asia/Shanghai &lt;span style="color:#f92672"&gt;(&lt;/span&gt;CST, +0800&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; NTP enabled: n/a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;NTP synchronized: yes
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; RTC in local TZ: no
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; DST active: n/a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="set-timezone-to-shanghai"&gt;Set Timezone to Shanghai&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ timedatectl set-timezone Asia/Shanghai &lt;span style="color:#75715e"&gt;# Set system timezone to Shanghai&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="other-operations"&gt;Other Operations&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ timedatectl list-timezones &lt;span style="color:#75715e"&gt;# List all timezones&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$ timedatectl set-local-rtc &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt; &lt;span style="color:#75715e"&gt;# Adjust hardware clock to match local clock, 0 means set to UTC time&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Linux - SSH Connect to Remote Server Directly Execute Command PATH Incomplete Solution</title><link>https://time-friend.com/en/archive/linux-ssh-path-issue-non-interactive/</link><pubDate>Thu, 15 Mar 2018 20:32:05 +0000</pubDate><guid>https://time-friend.com/en/archive/linux-ssh-path-issue-non-interactive/</guid><description>&lt;h2 id="path-incomplete-in-non-interactive-mode"&gt;PATH Incomplete in non-interactive mode&lt;/h2&gt;
&lt;p&gt;ssh &lt;a href="mailto:username@desktop.domain"&gt;username@desktop.domain&lt;/a&gt; &amp;lsquo;command&amp;rsquo; is a typical non-interactive shell, PATH incomplete.&lt;/p&gt;
&lt;h2 id="reason"&gt;Reason&lt;/h2&gt;
&lt;p&gt;A common way to determine if it&amp;rsquo;s an interactive shell in Linux systems is through the PS1 variable. Although there are other ways, currently .bashrc determines if it&amp;rsquo;s interactive mode through PS1.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# .bashrc file&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# If not running interactively, don&amp;#39;t do anything &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;[&lt;/span&gt; -z &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$PS1&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="solution"&gt;Solution&lt;/h2&gt;
&lt;p&gt;Move all necessary export PATH declarations before [ -z &amp;ldquo;$PS1&amp;rdquo; ] &amp;amp;&amp;amp; return. Ensure PATH settings also take effect in non-interactive mode.&lt;/p&gt;</description></item><item><title>Linux - vim vi Learning Notes</title><link>https://time-friend.com/en/archive/linux-vim-vi-learning-notes/</link><pubDate>Sat, 17 Feb 2018 20:32:05 +0000</pubDate><guid>https://time-friend.com/en/archive/linux-vim-vi-learning-notes/</guid><description>&lt;p&gt;Often on Mac or Linux, because we frequently need to use it, but its operations differ greatly from other editors, so I&amp;rsquo;ll specifically learn it. When using it, won&amp;rsquo;t be too confused. In learning, need to practice more and use more to become proficient.&lt;/p&gt;
&lt;h1 id="three-modes-of-vimvi"&gt;Three Modes of vim/vi&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Command mode&lt;/li&gt;
&lt;li&gt;Insert mode&lt;/li&gt;
&lt;li&gt;Last line mode&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="command-mode"&gt;Command Mode&lt;/h2&gt;
&lt;p&gt;When we use vim to open a file, we enter command mode. In command mode, we cannot input/edit text.
In command mode, we can input the following to switch to other modes&lt;/p&gt;</description></item><item><title>Linux - Install Nginx Steps</title><link>https://time-friend.com/en/archive/linux-install-nginx-steps/</link><pubDate>Tue, 16 Jan 2018 20:32:05 +0000</pubDate><guid>https://time-friend.com/en/archive/linux-install-nginx-steps/</guid><description>&lt;h3 id="install-nginx-related-dependencies"&gt;Install Nginx Related Dependencies&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;yum install gcc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;yum install pcre-devel
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;yum install zlib zlib-devel
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;yum install openssl openssl-devel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Of course you can also install together&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="download-nginx-tar-archive"&gt;Download Nginx tar Archive&lt;/h3&gt;
&lt;p&gt;Go to webpage &lt;a href="http://nginx.org/download/"&gt;http://nginx.org/download/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Choose the version you need:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Enter local folder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cd /usr/local
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# I chose a relatively new version, download to current directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; wget http://nginx.org/download/nginx-1.13.9.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Extract&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; tar -xvf nginx-1.13.9.tar.gz
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Rename&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; mv nginx-1.13.9.tar.gz nginx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Enter nginx directory&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; cd nginx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Execute following commands&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ./configure
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# Compile&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; make
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;After completing the above steps, your nginx is already installed&lt;/p&gt;</description></item><item><title>Linux - Use ssh-copy-id Command to Achieve SSH Passwordless Login</title><link>https://time-friend.com/en/archive/linux-ssh-copy-id-passwordless-login/</link><pubDate>Sat, 16 Dec 2017 20:32:05 +0000</pubDate><guid>https://time-friend.com/en/archive/linux-ssh-copy-id-passwordless-login/</guid><description>&lt;h3 id="1-generate-public-and-private-keys"&gt;1. Generate Public and Private Keys&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ssh-keygen -t rsa
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;After entering according to prompts, will generate id_rsa and id_rsa.pub files in ~/.ssh directory&lt;/p&gt;
&lt;h3 id="2-establish-connection-with-server"&gt;2. Establish Connection with Server&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ssh-copy-id root@192.168.0.100 //Example IP
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Next will require entering connection password, after successful verification&lt;/p&gt;
&lt;h3 id="3-passwordless-login-to-server"&gt;3. Passwordless Login to Server&lt;/h3&gt;
&lt;p&gt;Try the following command to see if login succeeds directly:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;ssh root@192.168.0.100
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;It&amp;rsquo;s that simple&lt;/p&gt;</description></item></channel></rss>