Linux学习笔记(一)、常用指令
一、用户名分析
luxinshuo@luxinshuo-virtual-machine:~$
luxinshuo是当前用户名,@后面的luxinshuo-virtual-machine是机器名字。最后面的$表示当前用户是普通用户,我们可以在提示符后面输入命令。
Shell:就是一个应用程序,负责接收用户输入的命令,然后根据命令做出相应的动作,负责将应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作,然后将结果反馈给应用层或者用户。
Shell命令的格式为:
Command -options [argument]
Command:shell命令名称
Options:选项,同一指令可能有不同的选项,不同的选项实现的功能不同。
Argument:shell命令是可以带参数的,也可以不带参数运行。
以ls指令为例:
(1)、ls
(2)、ls -l
(3)、ls /usr
“ls”指令用来打印出当前目录下的所有文件和文件夹,而“ls -l”同样打印出当前目录下的所有文件和文件夹,但是此指令会列出所有文件和文件夹的详细信息,比如文件大小、拥有者、创建日期等。
但是“ls /usr”用来打印出“usr”下的所有文件和文件夹。
二、Linux常用操作指令:
1、ls操作
ls:显示当前所在目录中所有文件和文件夹。
ls: [选项] [路径]
ls指令主要用于显示指定目录下的内容,列出指定目录下所包含的所有的文件以及子目录,主要的参数有:
-a: 显示所有的文件以及子目录,包括以“.”开头的隐藏文件。
-l: 显示文件的详细信息,比如文件的形态、权限、所有者、大小等信息。
-t: 将文件按照创建时间排序列出。
-A:与-a类似,但是不列出“.”(当前目录)和“..”父目录。
-R:递归列出所有文件,包括子目录的文件。
Shell命令里的参数可以组合使用,比如“-al”就是列出所有文件的详细信息,包括一“.”开头的隐藏文件
2、目录切换指令cd
要想在Shell中切换到其他目录,使用的命令是cd,命令格式为:
cd [路径]
路径即为将要进入的目录路径
cd / //进入到根目录“/”下,Linux系统的根目录为“/”
cd /usr //进入到目录“usr”里面
cd .. //进入到上一级目录(两个点.)
cd ~ //切换到当前户主目录
3、当前路径显示命令pwd
pwd命令用来显示当前工作目录的绝对路径,不需要任何的参数。
4、系统信息查看命令uname
命令格式为:
uname [选项]
可选的选项参数如下:
-r: 列出当前系统的具体内核版本号
-s:列出内核名称
-o:列出系统信息
5、清屏命令clear
clear命令用于清除终端上的所有内容,只留下一行提示符。
6、切换用户执行身份命令sudo
Ubuntu是一个允许多用户操作的系统,其中权限最大的就是超级用户root,有时候执行一些操作时需要用root用户身份才可以执行,比如安装软件。通过sudo命令可以使我们将身份暂时切换到root用户。当使用root命令时需要输入密码
命令格式为: sudo [选项] [命令]
选项的主要参数为:
-h:显示帮助信息
-l:列出当前用户可执行与不可执行的命令
-p:改变询问密码的提示符
7、添加用户命令adduser
格式: adduser [参数] [用户名]
常用参数:
-system:
-home DIR: DIR表示用户的主目录路径
-uid ID ID表示用户的uid
-ingropup GRP 表示用户所属的组名
8、删除用户命令deluser
命令参数: deluser [参数] [用户名]
主要参数有:
-system: 当用户是一个系统用户的时候才能删除
-remove-home:删除用户的主目录
-remove-all-files 删除与用户有关的所有文件
同样,deluser也要使用sudo来以root用户运行。
9、切换用户命令su
Sudo是以root用户身份执行的一个命令,并没有更改当前的用户身份,所有需要root身份执行的命令都必须在前面加上sodu。命令su可以直接将当前用户切换为root用户,切换到root、用户就可以尽情操作了(已经获得系统最高权限)。在root用户下,所有的命令都可以无障碍执行,不需要在前面加上sudo。Su命令格式为:
su [选项] [用户名]
常用的选项参数为:
-c -command 执行指定的命令,执行完毕以后恢复原用户身份
-login 改变用户身份,同时改变工作目录目录和PATH环境变量
-m 改变用户身份的时候不改变环境变量
-h 显示帮助信息
例如:当前位于用户环境下,切换到root用户,可以使用su指令进行用户切换,由于用户权限不足,前面需要加上sudo,但是在root用户下不需要sudo限定。
10、显示文件内容cat
格式 cat [选项] [文件]
选项的主要参数为:
-n:由1开始对所有输出的行进行编号
-b:与-n类似,但是不对空白行进行编号
-s:当遇上梁旭两个行以上空白行的话就合并为一个空白行
比如要打开位于桌面的lxs文件:
11、显示和配置网络属性命令ifconfig
ifconfig是一个与网络属性配置和显示密切相关的命令,可以通过该命令查看当前网络属性,也可以通过此命令配置网络属性,比如设置网络IP地址等。
格式 ifconfig interface options|address
主要参数为:
interface:网络接口名称,比如eth0等。
up:开启网络设备
down:关闭网络设备。
add:IP地址,设置网络IP地址。
netmask add:子网掩码
比如使用ifconfig查看网络属性,之后使用他ifconfig修改网卡IP地址,在使用ifconfig查看:
修改前:
修改后:
12、系统帮助命令man
man命令可以查看其他命令的语法格式、主要功能、主要参数说明等。
格式: man [命令名]
13、系统重启命令命令reboot
14、系统关闭命令poweroff
15、软件安装命令install
Ubuntu下很多软件是需要先自行下载源码,下载源码以后自行编译,编译完成以后使用命令install来安装。
格式: install [选项] … [-T] 源文件 目标文件
或 install [选项] … 源文件… 目录
或 install [选项] … -t 目录 源文件…
或 install [选项] … -d 目录…
Install命令是将文件(通常是编译后的文件)复制到目的位置,在前三种形式中,将源文件复制到目标文件或多个源文件复制到一个已经存在的目录中同时设置其所有权和权限模式。第四种形式会创建指定的目录。
一般install命令与apt指令搭配使用。
三、APT下载操作
在ubuntu环境中常使用APT下载工具完成软件的自动下载、配置、安装二进制或者源码的功能。APT下载工具与install命令结合构成了ubuntu下最常用的下载和安装软件的方法。
ATP采用C/S模式,即客户端/服务器模式,与套接字类似,客户端向服务器端发出下载请求,服务器端解码请求并提供安装软件。
1、更新本地数据库
当检查那些软件可以更新时使用指令:
sudo apt-get update
该指令会访问源地址,并且获取软件列表保存在本电脑上,该指令运行时候需要root权限,所以需要sudo指令提高权限。
2、检查依赖关系
sudo apt-get check
3.软件安装
sudo apt-get install package-name
package-name:安装的软件名
4、软件更新
sudo apt-get upgrade package-name
5、软件卸载
sudo apt-get remove package-name
四、VI/VIM编辑器
首先使用apt指令:sudo apt-get install vim,安装VIM编辑器,安装完毕之后使用指令:vim l.txt即可新建一个l.txt文本文档并打开。
VIM默认以只读形式打开文档,因此需要切换到输入模式,切换到输入模式的命令为:
输入编辑完成后,从输入模式切换到指令模式,方式为按下ESC键,然后按下:进入底行模式,输入wq保存并退出。
五、Linux文件结构
Linux根目录是“/”,Ubuntu为每个用户创建了一个根目录,比如虚拟机目前是luxinshuo,用户登录后默认登录的是用户xinshuo的根目录,只要创建一个用户,那么系统就会在/home这个目录下创建一个以这个用户名命名的文件夹,这个文件夹就是这个用户的根目录。使用cd ~即可快速切换到用户根目录。
1、新文件命令—touch
Touch不仅可用来创建文本文档还介意常见其他类型的文档,命令格式为: Touch [参数] [文件名]
2、文件创建命令—mkdir
mkdir [参数] [文件夹名]
3、文件夹及目录删除命令——rm
rm [参数] [目的文件或文件夹目录名]
常用rm -rf [目的文件或者文件夹目录名],强制递归删除文件夹或目录。
4、文件夹删除命令——rmdir
Rm删除文件夹需要添加删除参数,rmdir并不需要。
Rmdir [参数] [源地址]
5、文件复制命令—cp
格式: cp [参数] [源地址] [目的地址]
Example:
cp *.c ../test2
以上指令的作用是将本文件夹下的所有.c格式的文件都移动到上一级目录的test2文件夹下。
../表示的是上一级目录。
6、文件移动命令
格式:mv [参数] [源地址] [目的地址]
7、文件查找与搜索
find命令:
find [路径] [参数] [关键字]
路径就是要查找的目录路径,不写的话默认在当前目录下查找。
如搜索目录/etc中以vin开头的文件:
find /etc/ -name vim*
grep命令:
grep [参数] 关键字 文件列表
find命令主要用于在目录中查找文件,grep主要用于在文件中查找关键字,查找包含指定关键字的文件。
六、关于权限
ls -l查看文件的操作属性
-rw-r—r--
drwxr-xr-x
……
上面的10bit前缀表示的文件权限与用户和用户组之间的关系:
第一位:表示文件类型,
剩下的9位3:3:3,3,3个一组,分别表示文件拥有者的权限、文件拥有者所在用户组的权限、其他用户的权限。
R:可读
W:可写
X:可执行
对于文件夹,拥有可读权限才可以使用命令ls查看文件夹中的内容,拥有可执行权限才可以进入到文件夹内部。遇到提示提示权限不够时可以使用sudo命令暂时以root用户身份去执行。
文件的权限有3种,r、w、x,还可以用二进制表示,一种权限对应一个二进制位,
权限组合:
What’s more,可以使用a、u、g、o表示文件的归属关系,用=、+、-表示文件权限的变化:
如果想修改某一文件归属用户对其拥有可执行权限,可使用u+x,如果希望设置归属用户及其所在的用户组都对其拥有可执行权限就可以使用gu_+x。
1、权限修改指令—chmod
chmod为change mode的缩写,可用于修改文件或者文件夹的权限,权限可以用数字或者字母表示,格式:
chmod [参数] [文件名/目录名]
创建一个test文件,ls -l显示文件属性:
可以看到test文件的属性为:
(1)、—表示普通文件
(2)、文件拥有者的权限为:rw—
(3)、文件所在用户组的权限为:rw—
(4)、其他用户的权限为:r——
现在修改test文件的属性为谁都是rwx:
当给文件的归属组添加权限时可以使用chmod u+x test 等。
当给文件夹下的所有文件的权限都进行同一修改时,可使用chmod -R 777 test/,其中-R表示递归处理。
2、文件归属者修改命令—chown
Chown即change owner,可用来修改某个文件或者目录的拥有者用户和用户组,格式:
chown [参数] [用户名.组名] [文件名/目录]