linux小窍门Linux技能如何拔高主
挑战一下自我?看看这5招Linux拔高技能。
< 第1招 >
上帝模式的权限-sudo
你要是稍微留心,就会发现在windows里面,在右键某个程序的时候,可以选择“以管理员身份运行”。
其实在Linux里面,也是一样的原理。Linux里面,存在一个超级用户:root。root就算是开启上帝模式的账户了,你可以随意修改,删除系统文件。
但是也就因为可以随意修改系统文件,为了避免可能存在的误删除等问题。Linux就通过一个简单的路障,来做一个基本的保护。
首先每一个登陆Linux系统的人都会有一个账户,此账户能够执行常见的Linux命令,以及在此账户目录下的任何操作。
但是,若你因为某些原因需要修改系统文件,那就得通过这么一个简单的路障,来跳到root账户。那所谓的跳跃这个动作,就是sudo。
那sudo都怎么用呢?
#第一个用法,粗暴型:直接登陆root用户
gingerbeer@Ubuntu-Desktop:~$ sudo su
[sudo] password for gingerbeer:
root@Ubuntu-Desktop:/home/gingerbeer#
#通过sudo su,输入当前用户的密码,直接跳到root账户。
#请看上面一行最左边,用户名原来是gingerbeer,现在改为root了。
#但是这样做,有个弊端,就是安全性问题,你若不小心忘了自己是root身份以后。
#有些误操作就会导致系统故障,而不像以前还有一个保护机制。
#第二种方法,安全简洁型:
#即每一次执行某个需要root权限的行为时,使用sudo。
#例如,我平常是无法执行软件更新等操作,如下所示:
gingerbeer@Ubuntu-Desktop:~$ apt update
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)
gingerbeer@Ubuntu-Desktop:~$
#直接告诉我,没权限。
#采用sudo的方法就很简单,我现在只需要对apt update这个操作采用root属性。
#如下所示
gingerbeer@Ubuntu-Desktop:~$ sudo apt update
[sudo] password for gingerbeer:
#记住,第一次需要输入密码,然后系统15分钟之内会记住你的认证。
#15分钟内,第二次使用sudo就不需要密码了。
Hit:1 http://nz.archive.ubuntu.com/ubuntu bionic InRelease
Hit:2 http://nz.archive.ubuntu.com/ubuntu bionic-updates InRelease
Get:3 http://nz.archive.ubuntu.com/ubuntu bionic-backports InRelease [74.6 kB]
Get:4 http://security.ubuntu.com/ubuntu bionic-security InRelease [83.2 kB]
Fetched 158 kB in 2s (95.6 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
5 packages can be upgraded. Run 'apt list --upgradable' to see them.
gingerbeer@Ubuntu-Desktop:~$
< 第2招 >
软件安装篇apt/yum
此处我主要介绍以Ubuntu和Debian为首的apt安装方法,而以RHEL,Centos为主的yum和apt大同小异。
在Ubuntu中,如需要安装软件,最简单的方法就是通过apt。
注意,在Ubuntu里面,存在两个安装软件:apt 和apt-get。不要认为你输入apt install 的时候,是执行apt-get install的简写。
其实 他们两个是完全独立的程序,但是apt功能更丰富,简洁。你平时使用时,直接采用apt 就行了。
apt的全名是Advanced Package Tool,高级包管理工具。说简单一点,就是个安装软件的程序。
以下是常见的apt 使用方法:
#常见apt使用方法:
apt install xxx #安装xxx软件包
#记住xxx名字一定要全,例如安装python3,不能光打一个pyth。
apt remove xxx #卸载软件包
apt update #根据sources.list提供的源来检查更新。
#功能类似于windows的检查更新,但是只限于检查,不做更新操作。
#当检查完以后,Ubuntu就知道哪些软件可以被更新了。
#此时再执行真正的更新操作:
apt upgrade
#看清楚哦,一个是update,另外一个是upgrade。
你可能会问,我是如何知道ssh的服务器软件名字是openssh-server?
我刚开始学些也不知道,别忘了还有百度和google!当然,你也可以通过如下小窍门找找你需要的相关软件。
#示例如下:
gingerbeer@Ubuntu-Desktop:~$ apt search ssh-server
Sorting... Done
Full Text Search... Done
openssh-server/bionic,now 1:7.6p1-4 amd64 [installed]
secure shell (SSH) server, for secure access from remote machines
telnetd/bionic 0.17-41 amd64
basic telnet server
#通过apt search功能,你可以通过部分关键字查找你要的软件。
#当然,有些关键字返回的内容可能很多,例如你要是做apt search python。
#你就等着翻页吧。
在以红帽为首的RHEL和Centos里面,包管理工具则是YUM。yum的全名是:Yellowdog Updater, Modified
和Ubuntu的apt类似,yum也存在如下几个常见命令:
#常用yum使用方法:yum check-update #检查是否有新的更新包yum update #根据上面的检查结果做更新。yum install xxx #安装xxx软件。yum remove xxx #删除xxx软件。yum search xxx #搜索某个xxx关键字的软件包。
< 第3招 >.bashrc.bashrc,是每一个用户目录下单独存在的一个系统文件。请注意,前面的点(.)是必须存在的,不是随便打上去的。
当你通过各种方法登陆Linux系统时,上面说过的bash shell就会运行。而在bash shell里面.bashrc就定义了基本的shell参数。
同时,记住这句话,同时.bashrc可以放置某些命令,从而实现你登陆时候就执行的功能。
让我们来看看文件内容:
示例如下:
#还记不记得ls -a的参数可以查看隐藏文件,
#如下所示:
#记住,一定要在你的用户目录下:
gingerbeer@Ubuntu-Desktop:~$ pwd
/home/gingerbeer
gingerbeer@Ubuntu-Desktop:~$ ls -la | grep bashrc
-rw-r--r-- 1 gingerbeer gingerbeer 3771 Aug 26 17:11 .bashrc
#如何读取内容呢?
#你可以试试cat,more,less
#以less为例:
gingerbeer@Ubuntu-Desktop:~$ less .bashrc
<由于.bashrc内容太多,就不粘贴过来了,大家请自行查阅>
.bashrc刚上面提到过,它可以预加载某些命令。
此处我想实现一个功能:
平时ssh 一堆设备,是这样做的:ssh 1.1.1.1 -l gingerbeerssh 2.2.2.2 -l gingerbeerssh xxxx很繁琐,我可以不可以把它简化掉?成这样:输入A,就自动ssh 1.1.1.1输入B,就自动ssh 2.2.2.2?
< 第4招 >
Linux 文件夹介绍
无论是上面这个/bin 文件夹也好,还是你日常接触的/etc/也好,/var/等文件夹也好。
大家都会有一个相同的问题,他们都是干什么的?
就好比windows,你知道C盘里面的Windows文件夹全是系统文件。Program Files 是程序文件,用户文件夹里面的全是各个用户的文件。
那Linux呢?
#此处就给大家简单介绍一下常见的文件夹功能:/ #不用说,根文件夹,一切文件的源头。/root #root账户的文件夹。/home/ #其他用户所在的文件夹,例如/home/gingerbeer//usr/ #这里相当于Windows的用户文件夹,里面可以存放你自定义的软件。#注意:这里说明一下,/usr/下也有bin和sbin.#它和下面即将要是的两个文件夹是重复的。#但是,既然放在/usr下,就是告诉你,请把你自定义开发的程序放到此处。gingerbeer@Ubuntu-Desktop:/bin$ ls /usr/bin games include lib local sbin share srcgingerbeer@Ubuntu-Desktop:/bin$/bin #Linux的系统常用程序,例如刚看的ls,chmod,cp等。/sbin #这个不是bin的SB版,而是指系统工具。类似磁盘工具等。/etc #各种系统配置文件,例如网络的配置文件,用户名,密码等。/var #这里存放了经常产生和文件,例如syslog等。/tmp #不用说,临时文件夹。
< 第5招 >
系统程序的地图-PATH
Linux在全局维护了一个叫做PATH的路径表,里面有Linux软件的常见目录。
当用户执行某个命令的时候,Linux就去这些预定义的目录里面一个个的找,找到了就给你执行。
让我们一起看看这个PATH的真身吧:
#查看真身,你还得用shell命令格式,辅以echo这个print功能:#记住,美元符号一定要,shell命令格式哦。gingerbeer@Ubuntu-Desktop:~$ echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bingingerbeer@Ubuntu-Desktop:~$#看到了么,里面有很多目录路径,每一个路径被一个:冒号隔开。#仔细一看,这都是我们上面讨论过的各种bin目录。#顺便,再给你演示一个更简单的方法 env#env全名为全局环境变量#通过env,你可以看出整个Linux的所有各种预定义的环境变量。#其中就有我们需要的PATH,静静的躺在那里。gingerbeer@Ubuntu-Desktop:~$ env<无关配置被省略>TERM=xtermSHELL=/bin/bashSHLVL=1LOGNAME=gingerbeer<无关配置被省略>PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin<无关配置被省略>gingerbeer@Ubuntu-Desktop:~$#env貌似是个执行命令,那它在哪?#来一把whichgingerbeer@Ubuntu-Desktop:~$ which env/usr/bin/envgingerbeer@Ubuntu-Desktop:~$#哦也,找到了,/usr/bin/env。
关注微信公众号:安徽思恒信息科技有限公司,了解更多技术内容……