shell第1-3章基础常用操作

基础常用操作

1、whoami
2、useradd [必须是root用户才有权限创建]
3、
Shell快捷键:
ctrl+a   光标移至命令行的开头
ctrl+e   光标移至命令行的末尾
ctrl+u   将光标处至命令行开头的内容清除
ctrl+k   将光标处至命令行结尾的内容清除
ctrl+y   恢复由(ctrl+u和ctrl+k删除的内容)
ctrl+r   在历史记录列表里搜索某一命令
ctrl+l   清屏=clear
ctrl+向左箭头 光标跳到命令行前一字的开头
ctrl+向右箭头 光标跳到命令行下一字的开头
history  显示历史命令 //!+[number] 直接执行曾经执行过的命令

4、
目录结构
根目录:/

5、查看当前所在的路径:pwd

6、查看当前路径下的文件:ls、ll : 命令格式:
ll[ls] -选项  参数(目录)
-d   只看当前目录的信息
-l   看详细信息
-a   显示所有文件,包括隐藏的文件
-h   显示文件大小

7、
路径切换:cd
cd -    返回到之前的目录
cd ..   返回到上一级目录 cd .  到当前目录
cd ~    到用户所在的家目录

8、
创建文件:touch list

9、
创建目录:mkdir test  mkdir -p test/test1 【-p强制创建,当test目录不存在时也能一起创建】
同时创建多个目录:mkdir lewis1 lewis2 lewis3 【或mkdir lewis1; mkdir lewis2; mkdir lewis3】

同时创建多个目录
mkdir test1 test2 test3

同时创建多个子目录{显然这种写法太繁琐}
mkdir /tmp/test1 /tmp/test2 /tmp/test3

同时创建多个子目录
mkdir /tmp{test1,test2,test3}

10、
目录结构:
/boot       Linux启动时,需要的文件
/dev        设备文件
/etc        配置文件
/home       用户家目录
/media      媒体文件
/mnt        挂载文件
/opt        第三方软件
/proc       虚拟化文件
/root       管理员的家目录
/run        进程文件
/srv        压缩过的文件
/sys        系统文件
/usr        安装的软件,共
/var        可变数据,日志文件
/tmp        临时文件
/usr/bin    普通用户可以使用的命令
/usr/sbin   超级用户可以使用的命令
/usr/lin    32位库文件
/usr/lib64  64位库文件

11、
Linux文件处理
d                    表示目录
-                    表示文件
l                    连接文件软连接,类似windows的快捷方式
b                    设备文件,提供存储的接口设备
c                    设备文件,提供串行的接口设备---键盘,鼠标
cp                   复制文件
cp -r 目录1 目录2     强制复制目录1到目录2
cp file1 fiel2       复制file1重命名为file2
cp file1 fiel2 /test 复制file1,file2两个文件到/test目录
mv                   剪切文件或叫做重命名,对文件和目录均可操作
rm                   删除
rm file              删除文件,不带参数只能删除文件
rm -f                只能删除文件,不能删除目录
rm -r                可删除目录或文件
rm -rf               删除目录或文件,强制删除

12、查看文件
cat命令:
    cat -b  列出行号,但是空白行不标志行号
    cat -E  将结尾的断行字符($) 显示出来
    cat -n  列出行号,空白行也会标志行号
    cat -T  将tab按键以^I 显示
    cat -v  列出一些看不来的特殊字符
    cat -A  整合的命令-vET

tac     查看文件从文件末尾开始 tac /etc/passwd
tac命令:显示文件从尾到头
cat -n file.txt|tac
2 ABC (第2行)
1 DEF (第1行)



more命令:一页一页翻动
    空格    向下翻一页
    回车    向下翻一行
    /       搜索
    b       翻到第一页
    q       退出
    :f      立刻显示文件名和行数
    
less命令: 一页一页翻动
    空格      向下翻一页
    pagedown  向下翻动一页
    pageup    向上翻动一页
    n         重复前一个搜索
    N         反方向重复前一个搜索
    q         退出
    G        翻到最后一页
    g         翻到第一页
    
head/tail命令:查看文件头或尾几行
    -n    指定显示几行,默认是10行  tail /etc/passwd  默认查看/etc/passwd 的尾10行数据
    wc    显示文件的行数,数字,字节
    -c    只显示字节
    -w    只显示字数。一个字被定义为空白、空格或换行字符分隔的字符串。
    -l    只显示行
    
 lsof -i:8080 #查看端口8080占用情况

文件处理-软链接:

软连接=windows下的快捷方式
特点:
1、可以对不存在的文件创建软链接
2、可以对文件或目录创建软链接
3、删除了软链接,不影响他的指向文件
4、删除了指向文件,该软连接就会变成死链接
创建软链接
ln -s oldfile newfile
创建硬链接
ln oldfile newfile
link oldfile newfile
创建结果是:newfile指向oldfile

删除软连接
rm -rf newfile
注意:rm -rf newfile/ 删除的是newfile目录,并未删除连接

特点:
1、不能对目录进行硬链接的创建
2、只能对已经存在的文件进行硬链接的创建
3、删除一个硬链接文件,不影响其他相同的inode编号的文件
文件名:给人看的
Inode编号:给你linux机器看的
硬链接:多个文件对应同一个inode编号,对多个文件中的某一个文件进行修改时,其他文件也会同事发生更改。多用户协同一致工作

linux关机:

关机指令:
数据同步写入磁盘 : sync
常用关机指令:shutdown 参数如下:
-t   添加秒数,几秒后关机
-k   不是真关机,而是发出告警信息
-r   在系统服务都停止后,重启  shutdown -r now 【马上重启】
-h   在系统服务都停止后,关机  shutdown -h now 【马上关机】shutdown -h +10 【在10分钟关机】
-f   关闭并且开机以后,强行略过磁盘检查
-F   重启后,强制进行磁盘检查
-c   取消已经进行的shutdown指令

帮助命令- man

man ls 【查看ls 命令的帮助文档】
man 1 passwd 【查看passwd命令的帮助文档】
man 5 passwd 【查看passwd文件的帮助文档】
帮助命令- pinfo
pinfo ls

linux权限

r 读权限4、w写权限2、x执行权限1
d   表示目录
-   表示文件
l   表示软连接
b   备文件

修改权限
chown   修改文件拥有者 -R递归修改
chgrp   修改文件所属组 -R递归修改
chmod   修改文件权限 -R递归修改

加减法  u/g/o  +/-/=    u 代表拥有者, g代表所属组, o代表其他人,  chmod g+w file [给file的所属组添加W权限]
数字法:r=4、w=2、x=1
文件的拥有者,及时没有w权限,也可以强制写入。所属组和其他人不行。
如果一个用户对一个目录没有w的权限,是否可以编辑该目录中拥有者自己的文件?【答案:可以编辑】


linux中默认权限:umask

umask 命令查看当前用户的umask权限

0002:rwxrwxr-x  所以创建文件/目录后的默认权限就是rwxrwxr-x;但是默认创建文件时,会拿走x权限,所以最终默认权限为rw-rw-r--
第一个0表示特殊权限;
第二个0表示拿走的权限[0表示没有拿走];
第三个0表示拿走的权限[0表示没有拿走];
第四个2表示拿走的权限[2表示拿走w权限]

什么情况下,要使用umask?
假设你个你的同事在同一个目录下进行同一个项目的工作。如果使用默认权限022,那么你创建的文件,你的同事将无法编辑。因此我们可以将权限调整为002

特殊权限:
当s出现在拥有者的x的权限位置时候,表示拥有者有SUID的权限
当s出现在所属组的x的权限位置时候,表示所属组有SGID的权限
当t出现在其他人的x的权限位置时候,表示其他人有SBIT的权限
SUID,临时获取文件拥有者的权限——只能针对文件
SGID,即可以作用于目录,也可以作用于文件
作用于文件:SUID一样
作用于目录:继承父集目录——目录会不定的继承
SBIT,只有文件的拥有者,才能删除、修改该目录下的文件——只能针对目录,只能在他人的位置上进行修改
S和T都有大写和小写之分:
大写说明:没有x权限
小写说明:有x权限
SUID=4,SGID=2,SBIT=1

linux账户管理

/etc/passwd:
hudechao:x:1000:1000:hudechao:/home/hudechao:/bin/bash
hudechao :用户名
x:              早期这个部分放的是用户登入密码,现在密码放入了/etc/shadow中
UID:            0表示系统管理员,1-999保留给系统使用的ID,1000以上给一般使用者
GID:            0表示系统管理员,1-999保留给系统使用的ID,1000以上给一般使用者
hudechao:       使用者信息说明
/home/hudechao:用户家目录,用户登录时所在的目录
/bin/bash:     用户在登录时,是否可以使用shell,如果不能使用则会显示/sbin/nologin
账户和组名:    人看的
UID和GID:      Linux看的
id:         查看当前登录用户的UID和GID

当使用ll查看时,系统会根据/etc/passwd和/etc/group文件中的内容,找到UID和GID对应的名称显示属组名
如果随意修改了/etc/passwd下的用户的UID,那么ll查看时,文件的属组就会变成数字而找不到对应的属组名
/etc/shadow:
/etc/group:
hudechao:x:1000:
hudechao    组名
x           组密码一般不需要
1000        组ID 、GID
最后冒号后跟的值:表示该组下的附属用户如hudechao:x:1000:huhu,表示hudechao该组下还附属有huhu用户

linux中添加用户:
useradd
-u      设置UID
-g      设置GID
-G      设置要附属组
-c      设置用户说明
-d      指定用户家目录 ,家目录最好使用不存在的目录
-s      定用户shell
-e      账号失效日期,格式为:YYYY-MM-DD
-f      指定密码是否失效,0表示立刻失效,1表示永不失效

useradd -l {username} [将用户username的密码锁定]


usermod
可以对用户账号的信息进行细微的修改
-c      账号说明
-d      修改家目录
-g      修改主要组
-G      修改附属组
-a      与-G一起用,增加附属组 {usermod -a -G 组名 用户名  【将用户添加到组里去】}
-l      修改用户名
-u      修改UID
-L      冻结账号
-U      解冻账号

passwd
-l      锁住该账号,在/etc/shadow中放密码的位置加个!
-u      解锁账号
-S      显示账号的密码参数
-n      接天数,设置多久可以不修改密码
-x      接天数,设置多久内必须修改密码
-w      接天数,设置密码过期前警告天数
-i      接天数,设置密码失效天数
passwd -l test1  {锁定用户test1}
passwd -u test1  {解锁用户test1}

chage
-l              查看一个账户和密码有关的时间参数
-d YYYY-MM-DD   修改最近一次更改密码的时间
-E YYYY-MM-DD   修改账号的失效时间
-m 天数         设置密码至少保留几天
-M 天数         设置密码多久后,需要更新
-W 天数         设置密码过期前警告时间

userdel
要彻底的删除一个账号,比较麻烦
1、删除/etc/passwd;/etc/shadow文件中的内容
2、删除/etc/group;/etc/gshadow
3、删除/home/username;/var/spool/mail/username
4、删除该用户曾经创建的文件;find进行搜索,先搜索,在使用userdel -r 连同家目录和邮箱一起删除

getfacl    获取单一使用者,针对单一文件或目录的权限
setfacl    配置单一使用者,对单一文件或目录的权限
-m         配置acl参数
-x         删除单个文件的acl
-b         删除acl的配置
-R         递归配置acl参数
setfacl用法:
setfacl -m u:用户名:rwx 文件或目录 如:setfacl -m u:hudechao:rwx 123 【-m表示修改】
setfacl -m g:组名:rwx 文件或目录   如:setfacl -m g:hudechao:rwx 123
setfacl -m m::rwx 修改mask值

-rw-rwxr--+  1 root    root        0 6月  9 17:45 123 【+表示123这个文件已经设置过特殊权限】

getfacl用法:
getfacl 文件名
mask 的定义——权限上限
1、权限的集合(特定用户,特定组,所属组的)
2、如果mask中没有的权限,即使getfacl设定了,也不会有,如下:
setfacl -m m:r 123
[root@localhost home]# getfacl 123
# file: 123
# owner: root
# group: root
user::rw-
group::r--
group:hudechao:rwx  #effective:r--
mask::r--
other::r--

你可能感兴趣的:(shell第1-3章基础常用操作)