天天看点

关于Linux的基础中的基础和一些基础小命令每周分享************3 帮助(man help)*****4 文件及文件夹的创建,复制,删除和软硬连接5用户和组的权限

每周分享

1 硬盘分区挂载及命令别名

  一般来说,硬盘分区有两种类型:一种是GPT,但是只支持总分区,现在很多家庭电脑Windows系统都是用这种分区类型;还有一种就是主流的MBR,主分区单块硬盘上只支持4个,如果有其它硬盘可以没有主分区。主分区安装OS。前提OS是安装在激活的主分区,一块硬盘只有一个激活 状态的主分区,在Linux中用(1-4)来表示。扩展分区在一块硬盘上只有一个,不可以直接存放数据,可划分成逻辑分区。逻辑分区是在扩展分区里划分出来的。逻辑分区数字编号必须是在“5”开始划分的。

  一般来说,初建一个系统主分区有“/” “boot” “extend”和放数据的“data”就够用,像虚拟内存swap就放在逻辑分区,一般是swap是内存的二倍,如果生产中内存很大就没必要太大的虚拟内存,8G够用。

例如一块硬盘有200G,我们可以这样划分:

    /dev/sda1 mount /boot 1G (启动)

    /dev/sda2 mount / 100G

    /dev/sda3 mount /data 50G

    /dev/sda4 extend 50G (扩展分区)

    /dev/sda5 swap 2G swap不是文件夹,它就是一个分区。(逻辑分区)。

  一般系统中常见的文件夹有:

    /home放一些用户信息。

/boot放的是系统启动相关。

/etc是放重要设备工具的。

/var/log是放变量的

/dev是存放硬盘之类硬件设备的。

/tmp存放一些临时文件。

/proc 虚拟内存(如果文件夹没有独立挂载硬盘,那么就自动挂载在“/”上,所以装系统时至少分一个硬盘分区给“/”。)

2 命令及别名(alias)

  由于计算机内部是二进制运行的,当用户敲了一个命令,传给一个软件解释给计算机,这个软件就叫shell;shell提供了用户与内核进行交互操作的一种接口;也被称为Linux的命令解释器;同时它 也是一种高级程序设计语言。目前大部分Linux用的是bash;命令

echo $SHELL

查看当前shell。可以使用命令

cat /etc/shells

查看当前系统支持的所有shell类型。命令分为内部命令和外部命令

type

可以查看是内部还是外部命令。

  当然,一个系统中最重要的就是管理员root啦,root和普通用户的区别是:UID,如果UID为0,就是管理员,其它为普通用户,id -u 可查看当前用户的UID。也可以id -u user 查看其它用户的UID。关于linux有一些刚建好系统很实用的小命令,例如:

    

lsb_release -a

查看系统版本号。

    

uname -r

查看系统内核版本。

    

tty

查看当前登录终端设备。

    

free -h

查看系统内存大小,以及占用内存大小。其中-h是显示详细信息。

    如果内存占用比较大,由于图形界面比较占内存,

init 3

关闭图形界面。

    

runlevel

查看目前的模式,也可以看到在哪个模式切换过来=who -r。

    

init

(-0是关机;-6是重启;-5进入图形界面;-3关闭图形界面;-2进入字符界面。)

    

enable

可以显示所有内部命令,

enable -n cmd

可以禁用内部命令。不加-n启用命令。同时enable也可以把自己禁用,但是只是临时生效,重启恢复。

    

which

只是用来查看外部命令的,

    

echo $PATH

查看外部命令的路径。

    

hash

显示缓存命令

hash -r

删除所有缓存命令。

*****

  更改命令别名也要写入文档。home目录下的 .bashrc文件里。

alias可以查看所有定义的命令别名。

unalias可以删除别名,当然也要在.bashrc文件里文档删除。

~/.bashrc只对当前用户有效;etc/bashrc对所有用户有效。

如果已经写入文档,不想重启,可以使用.重读别名文档。(其中.等于source)。命令前加"\"可以忽略别名,执行原命令。

**

  命令的执行过程:别名优先,其次是内部命令,再次是hash表内的命令(hash表里面的都是外部命令),最后是$PASH外部命令。如果都没有就会报错。

*****

  本小节中有一个很有趣的就是命令提示符变色。

    

PS1="\[\e[1;5;41;33m\][\u@\h \W]\\$\[\e[0m\]"

更改提示符颜色

    

PS1="\[\e[1;32m\][\[\e[0m\]\t \[\e[1;33m\]\u\[\e[36m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"

可以另提示符更加的花哨。

    

echo $PS1

显示提示符格式。(其中u为用户名;h为主机名;w为当前目录;)

  写入磁盘文档可以放入

/etc/profile.d/env.sh

;其中env.sh(env是环境的意思)是需要自己建的。可以使用nano写入,也可以使用vim。退出重新登陆就ok了。

  • Ubuntu可以使用sudu -i 进入root权限写入文档。nano .bashrc。

3 帮助(

man help

  

whatis

本身是一个外部命令,但是往往一个命令有很多章节,使用

whatis cmd

直接查看命令的有多少章节,然后直接键入自己需要的章节,例入

man # cmd

;或者

cmd # --help

。关于man最好用的就是使用less列表来实现了,

space, ^v, ^f, ^F

: 向文件尾翻屏

b, ^b

: 向文件首部翻屏

d, ^d

: 向文件尾部翻半屏

u, ^u

: 向文件首部翻半屏

RETURN, ^N, e, ^E or j or ^J

: 向文件尾部翻一行

y or ^Y or ^P or k or ^K

:向文件首部翻一行

q

: 退出

#

:跳转至第#行

1G

: 回到文件首部

G

:翻至文件尾部

  通过本地文档获取帮助

  

System->help(centos6) Applications -> documentation->help(centos7)

提供的官方使用指南和发行注记

  

/usr/share/doc

目录 多数安装了的软件包的子目录,包括了这些软件的相关原理说明

  常见文档:

README INSTALL CHANGES

  适合其它地方的文档的位置 配置文件范例

HTML/PDF/PS

格式的文档 授权书详情

  最重要的一句话就是

“获取帮助的能力就是技术的能力”

*****

  

为了避免进程突然终止,可以运行screen; 如果同一台服务器上两个人,其中一个人有解决不了的 求助人可以运行screen -S name ,然后解决人可以输入screen -x 加对方的名字。解决人可以临时退出CTRL+A+D ,但是并不完全退出。前提是同意服务器同一用户。

4 文件及文件夹的创建,复制,删除和软硬连接

  文件名最长255个字节 包括路径在内文件名称最长4095个字节 蓝色-->目录 绿色-->可执行文件 红色-->压缩文件 浅蓝色-->链接文 件 灰色-->其他文件 除了斜杠和NUL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用, 有些字符需要用引号来引用它们 标准Linux文件系统(如ext4),文件名称大小写敏感 例如:MAIL, Mail, mail, mAiL

创建文件

  

touch

命令 格式:

touch [OPTION]... FILE... -a

仅改变 atime和ctime -m 仅改变 mtime和ctime -t [[CC]YY]MMDDhhmm[.ss] 指定atime和mtime的时间戳 -c 如果文件不存在,则不予创建 。需要注意的是touch创建新文件会刷新文件修改时间 ,

>

会覆盖文件。

>>

创建文件原数据不会丢失,只是追加。

> >>

不是命令,touch是外部命令。

创建文件夹

  

mkdir

创建目录 -p: 存在于不报错,且可自动创建所需的各目录 -v: 显示详细信息 -m MODE: 创建目录时直接指定权限 。

复制

  

cp [OPTION]... [-T] SOURCE DEST

  

cp [OPTION]... SOURCE... DIRECTORY

  

cp [OPTION]... -t DIRECTORY SOURCE...

  

cp SRC DEST

SRC是文件: 如果目标不存在:新建DEST,并将SRC中内容填充至DEST中 如果目标存在: 如果DEST是文件:将SRC中的内容覆盖至DEST中 基于安全,建议为cp命令使用-i选项 如果DEST是目录:在DEST下新建与原文件同名的文件,并将SRC中内容 填充至新文件中 。

  

cp SRC... DEST

SRC... 多个文件 DEST 必须存在,且为目录,其它情形均会出错

  

cp SRC DEST

SRC是目录:此时使用选项:-r 如果DEST不存在:则创建指定目录,复制SRC目录中所有文件至DEST中 如果DEST存在: 如果DEST是文件:报错 ; 如果DEST是目录:缤购。

  

cp

常用选项

-i

覆盖前提示

-n

不覆盖,注意两者顺序

-r, -R

递归复制目录及内部的所有内容

-a

归档,相当于

-dR --preserv=all

;

-d --no-dereference

--preserv=links 不复制原文件,只复制链接名。

移动(Windows剪切)

  mv [OPTION]... [-T] SOURCE DEST

  mv [OPTION]... SOURCE... DIRECTORY

  mv [OPTION]... -t DIRECTORY SOURCE... 常用选项: -i 交互式 -f 强制 -b 目标存在,覆盖前先备份 。

删除

  

rm [OPTION]... FILE...

常用选项: -i 交互式; -f 强制删除; -r 递归; --no-preserve-root 删除/ ; 示例:

rm -rf /*

软硬连接

  每个文件的节点编号都是唯一 而且可以重复利用的 ,

ll -i

查看文件的节点编号。

df -i

可以查看挂载点可用的节点编号。

硬连接不允许跨分区,用

ln file

新链接名称;创建新连接。名字之间互不干扰,删除其中一个不影响文件。

软连接可以跨分区和设备。通过

ln -s file newfile

来创建。

  软连接如果原始文件要写相对路径的话,要相对于软连接的相对路径,不是当前目录的相对路径。(原始文件相对于软连接,软连接相对于当前目录。)

删除软连接的时候注意后面不要加/,不然它就会删除文件夹里面的内容,应该像删除文件一样。

  硬连接和软连接的区别:硬链接ln 软链接ln -s

1本质:硬连接:同一个文件多个名字,软连接是不同的文件;

2软连接可以跨分区,硬连接不可以;

3链接数,创建软连接不增长连接数,硬连接增长;

4软连接依赖源文件,如果源文件被删除就会报错;

5文件类型不一样,硬连接源文件是什么属性就是什么属性,软连接l开头,属性不同。

5用户和组的权限

用户管理命令

useradd usermod userdel

(创建,修改,删除用户)

组帐号维护命令

groupadd groupmod groupdel

(创建,修改,删除组)

useradd

  

useradd [options] LOGIN

    

-u

UID;

    

-o

配合-u 选项,不检查UID的唯一性 ;

    

-g

GID 指明用户所属基本组,可为组名,也可以GID ;

    

-c

"COMMENT“ 用户的注释信息 ;

    

-d

HOME_DIR 以指定的路径(不存在)为家目录 ;

    

-s

SHELL 指明用户的默认shell程序,可用列表在/etc/shells文件中 ;

    

-G

GROUP1[,GROUP2,...] 为用户指明附加组,组须事先存在 ;

    

-N

不创建私用组做主组,使用users组做主组;

    

-r

创建系统用户 CentOS 6: ID<500,CentOS 7: ID<1000 ;

    

-m

创建家目录,用于系统用户 ;

    

-M

不创建家目录,用于非系统用户 。

usermod

  

usermod [OPTION] login

    

-u

UID: 新UID

    

-g

GID: 新主组

    

-G

GROUP1[,GROUP2,...[,GROUPN]]]:新附加组,原来的附加组将会被 覆盖;若保留原有,则要同时使用-a选项

    

-s

SHELL:新的默认SHELL

    

-c

'COMMENT':新的注释信息

    

-d

HOME: 新家目录不会自动创建;若要创建新家目录并移动原家数据, 同时使用-m选项

    

-l

login_name: 新的名字

    

-L:

lock指定用户,在/etc/shadow 密码栏的增加 !

    

-U:

unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉

    

-e

YYYY-MM-DD: 指明用户账号过期日期

    

-f

INACTIVE: 设定非活动期限

userdel

  

userdel [OPTION]... login

    

-r

: 删除用户家目录

groupadd

  

groupadd [OPTION]... group_name

    

-g

GID 指明GID号;[GID_MIN, GID_MAX]

    

-r

创建系统组 CentOS 6: ID<500 CentOS 7: ID<1000

groupmod

  

groupmod [OPTION]... group

    

-n

group_name: 新名字

    

-g

GID: 新的GID

groupdel

  

groupdel GROUP

简单而且粗暴。

chmod(修改权限)

  

chmod [OPTION]... OCTAL-MODE FILE...

  

-R

: 递归修改权限

  

chmod [OPTION]... MODE[,MODE]... FILE...

  

MODE

: 修改一类用户的所有权限

  

u= g= o= ug= a= u=,g=

修改一类用户某位或某些位权限

  

u+ u- g+ g- o+ o- a+ a- + -

  

chmod [OPTION]... --reference=RFILE FILE...

参考RFILE文件的权限,将FILE的修改为同RFILE

passwd(设置密码)

  

passwd [OPTIONS] UserName

: 修改指定用户的密码

  常用选项:

    

-d

:删除指定用户密码

    

-l

:锁定指定用户

    

-u

:解锁指定用户

    

-e

:强制用户下次登录修改密码

    

-f

:强制操作

    

-n

mindays:指定最短使用期限

    

-x

maxdays:最大使用期限

    

-w

warndays:提前多少天开始警告

    

-i

inactivedays:非活动期限

    

--stdin

:从标准输入接收用户密码

      示例:

echo "PASSWORD" | passwd --stdin USERNAME

  在linux中

/etc/passwd:放用户机器属性信息(名称,uid、主组id等)

/etc/group:放组及其属性信息。

/etc/shadow:放用户密码及其相关属性。

/etc/shadow:放组密码及其相关属性。

*****

  另外,值得注意的是,在ubuntu默认不让登录root权限,可以使用普通用户sudo -i 切换到管理权限,输入普通用户的密码。但是这个账号是安装系统是系统给与这个账号的,新建账号没有权限切换root。但是Ubuntu默认root不让远程,只能本地登录。其它账户不能切换账户。

转载于:https://blog.51cto.com/14322562/2397103

继续阅读