linux基础入门

 

最近在学习linux的基础知识,拖了很久了。。一定得在这周学完,学习网站为:linux基础入门-实验楼。

 

 

基本概念

Linux是一个操作系统,严格来说,是操作系统的内核(内核是让其他程序运行的基础)
shell:命令行解释器,用于用户交互和编写shell脚本
 
LINUX与windows的不同:
不收费,软件开源,安全性高,指令性,可定制性高,应用范畴广,支持多用户和用户组,较少的系统资源占用
但是没有支持厂商,足够的游戏娱乐支持度和专业软件支持度
 

基本指令 

touch file 创建文件  
cd /etc 进入一个目录  
pwd 查看当前目录  
Tab 补全命令、目录、参数  
ctrl+c 强行终止当前程序  
ls 列出文件  
ls *.txt *是通配符,匹配多个字符
? 匹配一个字符   [list] 匹配list中的任意一个字符
[^list] 匹配除了list以外的其他字符 [0-9]、[a-z]  (哈哈哈这不是和MySQL里面的正则表达式一样嘛。。)
man 用户手册  
     
Ctrl+d 键盘输入结束或退出终端  
Ctrl+s    
暂停当前程序,暂停后按下任意键恢复运行  
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg  
Ctrl+a  将光标移至输入行头,相当于Home键  
Ctrl+e 将光标移至输入行末,相当于End键  
Ctrl+k  删除从光标所在位置到行末  
Alt+Backspace 向前删除一个单词  
Shift+PgUp 将终端显示向上滚动  
Shift+PgDn 将终端显示向下滚动   
 
    

用户

假如有一个屋子,里面住着三个人,每个人共用一个客厅。linux的用户道理是一样的,每个用户有自己的空间存储,也可以访问公共的内存区域。

查看用户

请打开终端,输入命令:$ who am i,就可以查看目前的用户。

创建用户

在linux中,root用户有至高无上的权利,可以增添,修改用户。(理解成一个国家的国王好了。。)

我们一般都是以普通用户身份登录的,如果想要root权限,有两个要求,首先你要在sudo用户组里面,第二点是你要知道当前登录用户的密码(首先你要是皇亲国戚,还得有钥匙)

现在我们新建一个用户:$ sudo adduser lihua

切换登录用户   

$ su -l lihua

退出登录用户

exit或者用Ctrl+d


 

用户组

linux里面每个用户都归属于一个用户组,在同一个用户组里的用户就像你家里的兄弟姐妹一样,他们可以和你共用客厅,但是也要有独立的卧室。如果没经过主人的同意,不能随意打开别人的卧室门,同理,不经过用户的同意,你不能看到该用户的私人资源。当然,一个用户可以属于多个用户组,就像你可以同时属于学校和家庭。

查看自己属于什么用户组

$groups lihua

output: 用户:用户组

将其他用户加入sudo用户组

默认新建立的用户是没有root权限的,同时也不在sudo用户组中,输入下列命令:

$su -l lihua

$sudo ls

会显示该用户不在sudoers文件中,所以我们要将该用户加入sudoers用户组中:

$su student

$sudo usermod -G sudo lihua

$groups lihua

这个时候会显示lihua:lihua sudo,说明我们成功把lihua加入sudo用户组了。

删除用户

删除用户是一件很简单的事情,

$ sudo deluser lilei --remove-home


 

Linux文件权限

文件权限就是规定哪些用户可以访问哪些文件,并能做哪些操作。不同的用户有不同的地位,对文件有不同的权限。

查看文件权限

ls可以查看当前目录下的文件,我们来试试用较长格式列出文件

$ls -l

  

  • 第一个字母是文件类型,在linux里,一切皆文件!!软连接有点像windows里的快捷方式,这些文件的具体类型我们后面会谈到
  • 文件权限:当要读文件时,可以用 cat <filename> 读文件
  • 一个文件只有同时具有读权限r和执行权限x才能打开并查看内部文件。要有写权限w和执行权限x才能创建文件
  • 链接数:连接到该文件所在的inode的文件名的数目,不在讨论范围内

 

变更文件所有者

使用$ll <filename>可以查看文件所有者

使用$sudo chown <要变更的所有者>   <filename>就可以改变文件所有者了

修改文件权限

方法一:二进制

 

要记住:每个文件有个固定的顺序:拥有者,所属用户组,其他用户,这个顺序是固定的。每个对应一个7.
chmod 777 bai 表示我对每个用户设定的权限都是可读可写可执行,如果是700,说明只有我自己可以读写。
 
方法二:直观法
 
 
 

$ chmod go-rw bai

gou分别代表:group、others、user,+、-表示分别加上还是减掉相应的权限。

 


 

 

Linux目录结构

linux在存储文件上和windows有很大的不同,windows偏向把内存分为C盘,D盘。。所以比较邋遢的人(例如我),在用了一段时间电脑后,目录就会杂乱无章了。但linux不同,它喜欢用目录代表分区,用树形来表示。换个比喻就是,linux将磁盘挂在树上了。说难也不难,因为linux对文件目录有严格的限定,那就是filesystem heierarchy standard--FHS.

FHS

filesystem heierarchy standard,定义了每个目录,每个区域该放什么类型的文件。

如下图,

目录路径

需要注意的是,目录本身也是一个文件,在linux里面,一切皆文件。以.开头的是隐藏文件,如果要查看隐藏文件,要用ls -a

cd 切换目录
. 当前目录
.. 上一级目录
~ 当前用户的home目录
- 上一次所在目录
pwd 当前路径(绝对路径

 


 

Linux文件的基本操作

touch 新建空白文件 touch bai  
mkdir(make director) 创建空目录 mkdir -p father/son/grandson 使用-p参数,可以同时创建父目录(在安装软件,配置路径时有用)
cp(copy) 复制文件 cp bai father/son/grandson 此时用的路径是相对路径
复制目录 cp -r father family 加-r参数,表示递归复制,有点株连九族的意思
rm 删除文件 rm -f bai 当有些文件有只读权限时,无法直接删除,加-f参数,可以强制删除文件
删除目录 rm -f path 和复制目录一样,要加-f参数
mv(move) 移动文件 mv bai path move 源文件 目的目录
重命名 mv bai bai1  
rename 批量重命名文件 rename file{1..5}.txt 使用正则表达式可以大量的重命名文件
cat/tac 查看文件 cat -n bai 可以加参数-n限制显示行数;cat为正序,tac为倒叙
nl

更专业的查看文件

(真的太专业了!)

同上

-b : 指定添加行号的方式,主要有两种:
  -b a:表示无论是否为空行,同样列出行号("cat -n"就是这种方式)
  -b t:只列出非空行的编号并列出(默认为这种方式)
-n : 设置行号的样式,主要有三种:
  -n ln:在行号字段最左端显示
  -n rn:在行号字段最右边显示,且不加 0
  -n rz:在行号字段最右边显示,且加 0
-w : 行号字段占用的位数(默认为 6 位)

more/less

分页查看文件

more bai 打开文件

Enter 向下滚动一行

space 向下滚动一页

h 帮助

q退出

cat是用来快速查看文件的,more/less是专业查看文件的

more的命令比较简单,只能向下滚动;less基于vi和more

head

查看文件头几行

head -n 1 bai

如果是head bai,默认查看前十行 -n 后面的数字是显示几行

tail 查看文件尾几行 同上 同上
file 查看文件类型 file bai  
vim 编辑文件 vimtutor  

 

 

 

 

posted @ 2018-11-27 17:27  白白要变成厉害的程序猿  阅读(268)  评论(0编辑  收藏  举报