基础"/>
day 0807 Linux 基础
Linux 基础
Lniux,Windows,MacOS,操作系统,基于Unix发展而来
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
** Linux学习的系统版本的选择**
Linux系统种类繁多,为方便学习,本课程我们选择Ubuntu。Ubuntu分桌面版和服务器版。为方便大家学习,我们优先选择拥有图形化界面桌面版Ubuntu 14.04 LTS来学习Linux基本命令。这里,14.04是版本号,代表2014年出的稳定版本LTS 代表这个版本是Ubuntu长期支持的版本。现在已更新至Ubuntu 18.04 LTS(版本越高,对计算机的硬件要求越高)。Ubuntu 项目完全遵从开源软件开发的原则;并且鼓励人们使用、完善并传播开源软件。也就是说Ubuntu目前是并将永远是免费的。 然而,这并不仅仅意味着零成本,自由软件的理念是人们应该以所有“对社会有用”的方式自由地使用软件。“自由软件” 并不只意味着您不需要为其支付费用,它也意味着您可以以自己想要的方式使用软件:任何人可以任意方式下载、修改、修正和使用组成自由软件的代码。因此,除去自由软件常以免费方式提供这一事实外,这种自由也有着技术上的优势:进行程序开发时,就可以使用其他人的成果或以此为基础进行开发。对于非自由软件而 言,这点就无法实现,进行程序开发时,人们总得白手起家。基于上述原因,自由软件的开发是迅捷、高效和激动人心的!
基本思想
Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。
文件和目录操作的基本指令
1 pwd(print Working Directory)
xdw@xdw-virtual-machine:~$ pwd
/home/xdw
- 显示工作目录
2.cd(Change Directory)
- 切换工作目录
cd ..
四个特殊符号
符号 | 含义 |
---|---|
~ | 表示用户的主目录 |
- | 表示前一个工作目录 |
. | 表示当前目录 |
… | 表示上一层目录 |
ls
ls:
-
-F 给不同的文件添加不同表示,添加帽子
-
d/ l* =s
-
-a: 显示隐藏文件 以.开头的文件
-
-p: 只给目录添加/
-
-t: 按照修改时间排序 time
-
–time-style=long-iso: ls -l --time-style=long-iso 显示友好长格式时间
-
-r: 倒着排序 reverse
-
-S: 按照文件大小排序
-
-h: 以人类理解的范围显示
-
-i: 索引节点(inode==书的目录) print the index number of each file(内核根据此区别文件是否同一文件)
No. | 命令 | 说明 |
---|---|---|
1 | ls -a | 列出文件下所有的文件,包括以“.”开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在…代表存在着父目录)。 |
2 | ls -l | 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。 |
3 | ls -F | 在每一个文件的末尾加上一个字符说明该文件的类型“@”表示符号链接、“|”表示FIFOS、“/”表示目录、“=”表示套接字。 |
4 | ls -s | 在每个文件的后面打印出文件的大小。 size(大小) |
5 | ls -t | 按时间进行文件的排序。 Time(时间) |
6 | ls -A | 列出除了“.”和“…”以外的文件。 |
7 | ls -R | 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现 |
8 | ls -L | 列出文件的链接名。Link(链接) |
9 | ls -S | 以文件的大小进行排序。 |
不同文件名称有不同的颜色,颜色的含义:
颜色 | 含义 |
---|---|
绿色 | 可执行文件 |
红色 | 压缩文件 |
深蓝色 | 目录 |
浅蓝色 | 链接文件 |
灰色 | 其他文件 |
tree
xdw@xdw-virtual-machine:/bin$ tree
.
├── bash
├── bunzip2
├── busybox
├── bzcat
├── bzcmp -> bzdiff
├── bzdiff
├── bzegrep -> bzgrep
├── bzexe
├── bzfgrep -> bzgrep
├── bzgrep
├── bzip2
├── bzip2recover
├── bzless -> bzmore
├── bzmore
├── cat
├── chacl
├── chgrp
├── chmod
├── chown
├── chvt
├── cp
├── cpio
├── dash
├── date
├── dd
├── df
├── dir
├── dmesg
├── dnsdomainname -> hostname
├── domainname -> hostname
├── dumpkeys
├── echo
├── ed
├── efibootmgr
├── egrep
├── false
├── fgconsole
├── fgrep
├── findmnt
├── fuser
├── fusermount
├── getfacl
├── grep
├── gunzip
├── gzexe
├── gzip
├── hciconfig
├── hostname
├── ip
├── journalctl
├── kbd_mode
├── kill
├── kmod
├── less
├── lessecho
├── lessfile -> lesspipe
├── lesskey
├── lesspipe
├── ln
├── loadkeys
├── login
├── loginctl
├── lowntfs-3g
├── ls
├── lsblk
├── lsmod -> kmod
├── mkdir
├── mknod
├── mktemp
├── more
├── mount
├── mountpoint
├── mt -> /etc/alternatives/mt
├── mt-gnu
├── mv
├── nano
├── nc -> /etc/alternatives/nc
├── nc.openbsd
├── netcat -> /etc/alternatives/netcat
├── netstat
├── networkctl
├── nisdomainname -> hostname
├── ntfs-3g
├── ntfs-3g.probe
├── ntfs-3g.secaudit
├── ntfs-3g.usermap
├── ntfscat
├── ntfscluster
├── ntfscmp
├── ntfsfallocate
├── ntfsfix
├── ntfsinfo
├── ntfsls
├── ntfsmove
├── ntfstruncate
├── ntfswipe
├── open -> openvt
├── openvt
├── pidof -> /sbin/killall5
├── ping
├── ping6
├── plymouth
├── ps
├── pwd
├── rbash -> bash
├── readlink
├── red
├── rm
├── rmdir
├── rnano -> nano
├── run-parts
├── sed
├── setfacl
├── setfont
├── setupcon
├── sh -> dash
├── sh.distrib -> dash
├── sleep
├── ss
├── static-sh -> busybox
├── stty
├── su
├── sync
├── systemctl
├── systemd -> /lib/systemd/systemd
├── systemd-ask-password
├── systemd-escape
├── systemd-hwdb
├── systemd-inhibit
├── systemd-machine-id-setup
├── systemd-notify
├── systemd-tmpfiles
├── systemd-tty-ask-password-agent
├── tailf
├── tar
├── tempfile
├── touch
├── true
├── udevadm
├── ulockmgr_server
├── umount
├── uname
├── uncompress
├── unicode_start
├── vdir
├── vmmouse_detect
├── wdctl
├── which
├── whiptail
├── ypdomainname -> hostname
├── zcat
├── zcmp
├── zdiff
├── zegrep
├── zfgrep
├── zforce
├── zgrep
├── zless
├── zmore
└── znew
mkdir
- 创建一个目录或者一个级联目录
mkdir -p first/second
mkdir 常见选项参数
选项参数 | 说明 |
---|---|
-m | 为目录指定访问权限 |
-p | 建立目录时,如果父目录不存在,则与子目录一起建立 |
-v | 为每个目录显示提示信息 |
touch
- 在当前目录下创建文件
- 在指定目录下创建文件
- 当前目录子目录
- 当前目录父目录的非当前目录的子目录下
- 指定文件格式
- 一次创建多个文件
`xdw@xdw-virtual-machine:~/first$ touch test1
xdw@xdw-virtual-machine:~/first$ touch second/test2
xdw@xdw-virtual-machine:~/first$ mkdir file1 file2
xdw@xdw-virtual-machine:~/first$ cd file1
xdw@xdw-virtual-machine:~/first/file1$ touch sb1 sb2
xdw@xdw-virtual-machine:~/first/file1$ mkdir file{3..5}
xdw@xdw-virtual-machine:~/first/file1$
选项参数如下表:
选项参数 | 说明 |
---|---|
-a | 仅修改访问时间 |
-c | 仅修改文件的时间,若该文件不存在则不创建新文件。 |
-d | 后面可以接欲修改的日期而不用目前的日期,或用 --d=“日期或时间” |
-m | 仅修改mtime |
-t | 后面可以接欲修改的时间而不用目前的时间,格式为[YYMMDDhhmm] |
rmdir
- 删除空目录
remove directory
rm
- 删除文件
remove
cp
- 复制
copy
mv
-
移动
-
将文件移动一个地方且重命名
-
同一个目录下,重命名
用户及权限管理命令
-
whoami
查看当前系统当前账号
exit命令
Exit命令用来退出登录账户。如果当前是图形界面,退出当前终端;如果是使用ssh远程登录,退出远程登陆账户;如果是切换后的登陆用户,则退出返回上一个登陆账号。
得到最高权限
- su root
用户(user)和用户组(group)管理命令
用户(user)的概念
Linux是多用户操作系统,我们可以建立多个用户(user)。比如,朋友想借你的电脑使用一下,但你的用户名下有不想让人看到的资料,这时就可以新建一个用户名给朋友使用。
除此以外,Linux中还有一些用户是用来完成特定任务的,比如nobody和ftp 等,我们访问[外链图片转存失败(img-g62liy5w-1565260495372)(file:///C:\Users\xdw\AppData\Local\Temp`7_{~]GF$3{MOQ4V_}PH]YC.png)]LinuxSir.Org的网页程序,就是nobody用户;我们匿名访问ftp时,会用到用户ftp或nobody;如果您想了解Linux系统的一些帐号,可以查看 /etc/passwd 。
用户组(group)的概念
用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的。
用户和用户组的****关系
二者的关系是:一对一、多对一、一对多或多对多。
关系 | 说明 |
---|---|
一对一 | 某个用户可以是某个组的唯一成员 |
多对一 | 多个用户可以是某个唯一的组的成员,不归属其它用户组 |
一对多 | 某个用户可以是多个用户组的成员 |
多对多 | 多个用户对应多个用户组,并且几个用户可以是归属相同的组 |
用户(user)和用户组(group)相关的配置文件、命令
1与用户(user)和用户组(group)相关的配置文件
1)与用户(user)相关的配置文件
/etc/passwd (用户(user)的配置文件);
/etc/shadow (用户(user)影子口令文件);
2)与用户组(group)相关的配置文件
/etc/group (用户组(group)配置文件);
/etc/gshadow (用户组(group)的影子文件);
2、管理用户(user)和用户组(group)的相关工具或命令;
1)管理用户(user)的工具或命令
命令 | 说明 |
---|---|
useradd 用户名 | 添加用户 |
passwd 用户名 | 为用户设置密码 |
usermod | 修改用户命令,可以通过usermod 来修改登录名、用户的家目录 |
pwcov | 同步用户从/etc/passwd 到/etc/shadow |
2)管理用户组(group)的工具或命令
命令 | 说明 |
---|---|
groupadd | 添加用户组 |
groupdel | 删除用户组 |
groupmod | 修改用户组信息 |
|
| passwd 用户名 | 为用户设置密码 |
| usermod | 修改用户命令,可以通过usermod 来修改登录名、用户的家目录 |
| pwcov | 同步用户从/etc/passwd 到/etc/shadow |
2)管理用户组(group)的工具或命令
命令 | 说明 |
---|---|
groupadd | 添加用户组 |
groupdel | 删除用户组 |
groupmod | 修改用户组信息 |
groups | 显示用户所属的用户组 |
更多推荐
day 0807 Linux 基础
发布评论