Linux-学习笔记-03

一、上堂回顾

cat:查看文件的内容 -n -b

head和tail:查看头部和尾部

more:查看文件

echo:向终端输出内容

| > >>

tree:查看指定路径的目录结构,以树型结构显示

mv:移动文件 重命名文件【常用】

cp:复制

mkdir/touch 创建目录或者文件

rmdir【只能删除空目录】rm【删除目录和文件,-rf:强制删除】

​ 注意:rm 路径,如果路径代表的是目录,则无法删除,需要添加选项-r

ln:建立链接文件【区别软连接和硬链接】

grep:搜索

find:按照指定条件查找文件【-name -size -empty】

sort:给文本内容排序

cut:提取数据【-d ;分隔,-f:提取】

tee:从终端向文件中写入内容【-a】

sed:操作文本内容

tar和gzip:打包和压缩

ifconfig

二、常用命令

1.vi/vim编辑器

vi命令是UNIX操作系统最通用的全屏幕纯文本编辑器。Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved),与vi编辑器完全兼容,而且实现了很多增强功能

vim编辑器工作模式有三种:命令模式,输入模式【编辑模式】,末行模式

说明:编辑模式可以完成文本的编辑功能,命令模式可以完成对文件的操作命令,末行模式只是充当了一个转换的功能

学习思路:熟练掌握三种工作模式之间的切换

切换方式:vim filename---->进入命令模式----》按下a或者i键进入编辑模式----》按下esc键进入命令模式----》输入:切换到末行模式-----》按下回车键切换命令模式----》退出

进入vi的命令 
    vim filename :打开或新建文件,并将光标置于第一行首 
    vim +n filename :打开文件,并将光标置于第n行首 
    vim + filename :打开文件,并将光标置于最后一行首
    vim filename1 filename2   :同时打开多个文件
    
演示命令:
yangyang@yangyang-virMachine:~$ cd Desktop/
yangyang@yangyang-virMachine:~/Desktop$ rm -rf *
yangyang@yangyang-virMachine:~/Desktop$ ls
yangyang@yangyang-virMachine:~/Desktop$ touch a1.txt
yangyang@yangyang-virMachine:~/Desktop$ ls
a1.txt
yangyang@yangyang-virMachine:~/Desktop$ tee a1.txt 
ghsjfgh
ghsjfgh
hello
hello
abc
abc
1246734
1246734
^C      #强制结束执行
yangyang@yangyang-virMachine:~/Desktop$ cat a1.txt 
ghsjfgh
hello
abc
1246734
yangyang@yangyang-virMachine:~/Desktop$ gedit a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ cat a1.txt 
ghsjfgh
hello
abc
1246734
gjgag
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ 
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ vim +3 a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ vim + a1.txt
​
插入文本类命令 
    i :在光标前   insert
    I :在当前行首 
    a:光标后      append
    A:在当前行尾 
    o:在当前行之下新开一行 
    O:在当前行之上新开一行 
    r:替换当前字符 
    R:替换当前字符及其后的字符,直至按ESC键 
#i表示在光标之前插入,a表示在光标之后追加,o表示新开辟一行
  
移动光标 
    j或下箭头 向下移动一行
    k或上箭头 向上移动一行
    h或左箭头 左移一个字符
    l或右箭头 右移一个字符
    w     右移一个词    word
    W     右移一个以空格分隔的词 
    b     左移一个词    back
    B     左移一个以空格分隔的词
    0     移到行首
    Ctrl-F  向前翻页
    Ctrl-B  向后翻页
    nG    到第n行  ------》先按下数字,再按下G
    G     到最后一行
    gg       第一行   -----》先按下g,再按下g
    n+       光标下移n行 
    n-       光标上移n行
    
esc:退出输入模式
​
:set number:在命令模式下,用于在最左端显示行号;
:set nonumber:在命令模式下,用于在最左端不显示行号;
​
保存退出 
    :wq     执行存盘退出操作;      -----》对内容做修改之后使用
    :w      执行存盘操作;
    :w!     执行强制存盘操作;
    :q      执行退出vi操作;
    :q!     执行强制退出vi操作;     -----》如果没有任何修改的时候使用
    :e文件名   打开并编辑指定名称的文件;
    :n!     如果同时打开多个文件,则保存上个文件继续编辑下一个文件;
    :f      用于显示当前的文件名、光标所在行的行号以及显示比例;
#如果对文件内容有改动,则使用:wq保存退出,如果报错则使用:wq!强制保存退出
#如果对文件内容没有任何改动,则使用:q退出,如果报错则使用:q!强制退出
    
删除操作【注意:和上面的插入文本类没有关系,进入vim后直接使用】
    x       删除光标处的单个字符 
    dd      删除光标所在行 
    dw      删除当前字符到单词尾(包括空格)的所有字符 
    de      删除当前字符到单词尾(不包括单词尾部的空格)的所有字符 
    d$      删除当前字符到行尾的所有字符 
    d^      删除当前字符到行首的所有字符 
    J       删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容
    
替换操作
    :s/old/new      将当前行中查找到的第一个字符“old” 串替换为“new”    #只替换当前行
    :#,#s/old/new   在行号“#,#”范围内替换所有的字符串“old”为“new”    #替换指定区间
    :%s/old/new     在整个文件范围内替换所有的字符串“old”为“new”     #替换全部
    :s/old/new/c    在替换命令末尾加入c命令,将对每个替换动作提示用户进行确认   #交互式替换  #confirm 确认
    
撤消操作 【注意:直接在命令模式下使用】
    u取消最近一次的操作,并恢复操作结果
    可以多次使用u命令恢复已进行的多步操作 
    U取消对当前行进行的所有操作 
    Ctrl + r对使用u命令撤销的操作进行恢复 
    
    
演示命令:
yangyang@yangyang-virMachine:~/Desktop$ cat a1.txt 
ghsjfgh
hello
abc
1246734
yangyang@yangyang-virMachine:~/Desktop$ gedit a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ cat a1.txt 
ghsjfgh
hello
abc
1246734
gjgag
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ 
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ vim +3 a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ vim + a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt `
> ^C
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt 
yangyang@yangyang-virMachine:~/Desktop$ vim a1.txt 

2.用户管理

用户管理包括用户和用户组的管理

linux使用文件保存用户信息 
/etc/passwd 用户账户信息。
/etc/shadow 安全用户账户信息。
/etc/group 组账户信息。
/etc/gshadow 安全组账户信息。
/etc/default/useradd 账户创建的默认值。
/etc/skel/ 包含默认文件的目录。
/etc/login.defs Shadow 密码套件配置。

1>whoami 查看当前系统当前用户的用户名

演示命令:
yangyang@yangyang-virMachine:~/Desktop$ cd ..
yangyang@yangyang-virMachine:~$ pwd
/home/yangyang
yangyang@yangyang-virMachine:~$ whoami
yangyang
yangyang@yangyang-virMachine:~$ su root
密码: 
root@yangyang-virMachine:/home/yangyang# whoami
root

2>who 查看当前所有登录系统的用户信息

-q:只显示用户的登录账号的和登录用户的数量
-u:显示列标题
​
演示命令:
root@yangyang-virMachine:/home/yangyang# who
yangyang tty7         2018-09-06 17:05 (:0)
root@yangyang-virMachine:/home/yangyang# su yangyang
yangyang@yangyang-virMachine:~$ who
yangyang tty7         2018-09-06 17:05 (:0)
yangyang@yangyang-virMachine:~$ who -q
yangyang
# 用户数=1
yangyang@yangyang-virMachine:~$ who -u
yangyang tty7         2018-09-06 17:05 01:21        1830 (:0)

3>exit 退出

如果是图形化界面,则退出当前终端
如果是切换后的登录用户,则返回上一个登录账号

4>sudo 用来以其他身份来执行命令,预设的身份为root

#让当前普通用户暂时以管理员的身份执行命令
#注意:如果想要一个普通用户可以使用sudo命令,则需要在/etc/sudoers进行配置
配置方式
普通用户名  ALL(ALL:ALL) ALL

5>su 切换用户

注意:
su :切换用户,没有参数时,默认切换到root
    su -:切换到root用户,并加载普通用户的环境配置
    su - user1:切换到普通用户user1
​
常用:从普通用户---》root用户使用su root
     从root用户----》普通用户使用su  user1
​
演示命令:
yangyang@yangyang-virMachine:~$ su root
密码: 
root@yangyang-virMachine:/home/yangyang# exit
exit
yangyang@yangyang-virMachine:~$ su
密码: 
root@yangyang-virMachine:/home/yangyang# exit
exit
yangyang@yangyang-virMachine:~$ su -
密码: 
root@yangyang-virMachine:~# su yangyang
yangyang@yangyang-virMachine:/root$ su - root
密码: 
root@yangyang-virMachine:~# pwd
/root
root@yangyang-virMachine:~# su - yangyang
yangyang@yangyang-virMachine:~$ pwd
/home/yangyang

6>useradd 添加用户

作用:在当前系统中添加普通用户

注意:需要通过管理员的身份进行操作

-c 备注 加上备注。并会将此备注文字加在/etc/passwd中的第5项字段中
-d 用户主文件夹。指定用户登录所进入的目录,并赋予用户对该目录的的完全控制权        
-e 有效期限。指定帐号的有效期限。格式为YYYY-MM-DD,将存储在/etc/shadow         
-f 缓冲天数。限定密码过期后多少天,将该用户帐号停用       
#-g 主要组。设置用户所属的主要组  www.cit.cn   #group        
-G 次要组。设置用户所属的次要组,可设置多组         
-M 强制不创建用户主文件夹         
#-m 强制建立用户主文件夹,并将/etc/skel/当中的文件复制到用户的根目录下         
#-p 密码。输入该帐号的密码         
-s shell。用户登录所使用的shell         
-u uid。指定帐号的标志符user id,简称uid
​
#存在的问题
yangyang@yangyang-virMachine:/home$ su - zhangsan
密码: 
$ su yangyang
密码:
​
#原因:
    在新用户下面缺少配置文件
#解决办法;
需要将.bashrc和.logout两个文件中的内容拷贝到新用户的/etc/skel,然后将/etc/passwd里面的内容更改【在新增的普通用户的后面添加/bin/bash】
​
演示命令:
yangyang@yangyang-virMachine:~$ ls /home/
yangyang
yangyang@yangyang-virMachine:~$ cd Desktop/
yangyang@yangyang-virMachine:~/Desktop$ sudo useradd zhangsan
[sudo] yangyang 的密码: 
yangyang@yangyang-virMachine:~/Desktop$ cd /home/
yangyang@yangyang-virMachine:/home$ ls
yangyang
yangyang@yangyang-virMachine:/home$ ls -l
总用量 4
drwxr-xr-x 30 yangyang rock 4096 9月   6 18:00 yangyang
yangyang@yangyang-virMachine:/home$ sudo mkdir /home/zhangsan
yangyang@yangyang-virMachine:/home$ ls -l
总用量 8
drwxr-xr-x 30 yangyang rock 4096 9月   6 18:00 yangyang
drwxr-xr-x  2 root     root 4096 9月   6 18:46 zhangsan
yangyang@yangyang-virMachine:/home$ sudo chown zhangsan:zhangsan /home/zhangsan
yangyang@yangyang-virMachine:/home$ ls -l
总用量 8
drwxr-xr-x 30 yangyang rock     4096 9月   6 18:00 yangyang
drwxr-xr-x  2 zhangsan zhangsan 4096 9月   6 18:46 zhangsan
yangyang@yangyang-virMachine:/home$ sudo passwd zhangsan
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码
yangyang@yangyang-virMachine:/home$ su - zhangsan
密码: 
$ su yangyang
密码: 
yangyang@yangyang-virMachine:/home/zhangsan$ su - zhangsan
密码: 
$ ls -a /home/yangyang/.bash*
/home/yangyang/.bash_history  /home/yangyang/.bashrc
/home/yangyang/.bash_logout
$ ls -a /etc/skel/
.  ..  .bash_logout  .bashrc  examples.desktop  .profile
$ cp /etc/skel/.bash* .
$ ls -a
.  ..  .bash_logout  .bashrc
$ 注销
yangyang@yangyang-virMachine:/home/zhangsan$ sudo vim /etc/passwd
yangyang@yangyang-virMachine:/home/zhangsan$ su - zhangsan
密码: 
zhangsan@yangyang-virMachine:~$ su - yangyang
密码: 
yangyang@yangyang-virMachine:~$ cd /home/
yangyang@yangyang-virMachine:/home$ sudo useradd -m -s /bin/bash lisi
[sudo] yangyang 的密码: 
yangyang@yangyang-virMachine:/home$ ls
lisi  yangyang  zhangsan
yangyang@yangyang-virMachine:/home$ ls -l
总用量 12
drwxr-xr-x  2 lisi     lisi     4096 9月   6 19:21 lisi
drwxr-xr-x 30 yangyang rock     4096 9月   6 19:04 yangyang
drwxr-xr-x  2 zhangsan zhangsan 4096 9月   6 19:02 zhangsan
yangyang@yangyang-virMachine:/home$ cd ..
yangyang@yangyang-virMachine:/$ cd /home/yangyang/
yangyang@yangyang-virMachine:~$ sudo useradd -m zhaosi
yangyang@yangyang-virMachine:~$ ls /home/
lisi  yangyang  zhangsan  zhaosi
yangyang@yangyang-virMachine:~$ sudo passwd zhaosi
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码

7>userdel 删除用户

userdel 用户名:只是删除/etc/passwd中的用户信息,但是home目录下的信息并没有被删除
userdel -r 用户名:将/etc/passwd和home目录下的信息全部删除
​
#注意:删除普通用户之前,需要将需要被删除的用户注销掉【ctrl + d】,执行了userdel命令之后,如果出现xxx在邮件池中未找到表示删除成功
​
演示命令:
yangyang@yangyang-virMachine:~$ sudo userdel lisi
yangyang@yangyang-virMachine:~$ ls /home/
lisi  yangyang  zhangsan  zhaosi
yangyang@yangyang-virMachine:~$ sudo rm -rf lisi
yangyang@yangyang-virMachine:~$ ls /home/
lisi  yangyang  zhangsan  zhaosi
yangyang@yangyang-virMachine:~$ sudo rm -rf /home/lisi
yangyang@yangyang-virMachine:~$ ls /home/
yangyang  zhangsan  zhaosi
yangyang@yangyang-virMachine:~$ cd /home/
yangyang@yangyang-virMachine:/home$ sudo userdel -r zhaosi
userdel: zhaosi 邮件池 (/var/mail/zhaosi) 未找到
yangyang@yangyang-virMachine:/home$ ls
yangyang  zhangsan
yangyang@yangyang-virMachine:/home$ cd /home/yangyang/
yangyang@yangyang-virMachine:~$ su - zhangsan
密码: 
zhangsan@yangyang-virMachine:~$ su - yangyang
密码: 
yangyang@yangyang-virMachine:~$ cd /home/
yangyang@yangyang-virMachine:/home$ sudo userdel -r zhangsan
userdel: user zhangsan is currently used by process 4028
yangyang@yangyang-virMachine:/home$ 注销
zhangsan@yangyang-virMachine:~$ 注销
yangyang@yangyang-virMachine:~$ cd /home/
yangyang@yangyang-virMachine:/home$ duso userdel -r zhangsan
duso:未找到命令
yangyang@yangyang-virMachine:/home$ sudo userdel -r zhangsan
userdel: user zhangsan is currently used by process 4028
yangyang@yangyang-virMachine:/home$ 注销
zhangsan@yangyang-virMachine:~$ 注销
yangyang@yangyang-virMachine:/home/zhangsan$ exit
$ 注销
yangyang@yangyang-virMachine:/home$ sudo userdel -r zhangsan
userdel: zhangsan 邮件池 (/var/mail/zhangsan) 未找到

8>passwd 设置密码

前提:在root用户下,passwd root:修改root用户的密码

9>查看用户组

查看/etc/group

10>groupadd 添加组

组的作用:将多个用户管理在同一个组下,可以给不同的用户设置相同的权限

useradd -m 用户名 -g 组名  :创建一个新的普通用户,并将其指定到相应的组下
注意:这里的组名最好是事先创建好
​
命令演示:
yangyang@yangyang-virMachine:/home$ ls
yangyang
yangyang@yangyang-virMachine:/home$ cd /home/yangyang/
yangyang@yangyang-virMachine:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,rock
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:rock
floppy:x:25:
tape:x:26:
sudo:x:27:rock
audio:x:29:pulse
dip:x:30:rock
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:rock
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-timesync:x:102:
systemd-network:x:103:
systemd-resolve:x:104:
systemd-bus-proxy:x:105:
input:x:106:
crontab:x:107:
syslog:x:108:
netdev:x:109:
messagebus:x:110:
uuidd:x:111:
ssl-cert:x:112:
lpadmin:x:113:rock
lightdm:x:114:
nopasswdlogin:x:115:
whoopsie:x:116:
mlocate:x:117:
ssh:x:118:
avahi-autoipd:x:119:
avahi:x:120:
bluetooth:x:121:
scanner:x:122:saned
colord:x:123:
pulse:x:124:
pulse-access:x:125:
rtkit:x:126:
saned:x:127:
rock:x:1000:
sambashare:x:128:rock
mysql:x:129:
user1:x:1001:
yangyang@yangyang-virMachine:~$ ls -l /home/
总用量 4
drwxr-xr-x 30 yangyang rock 4096 9月   6 19:04 yangyang
yangyang@yangyang-virMachine:~$ su - root
密码: 
root@yangyang-virMachine:~# groupadd python1804
root@yangyang-virMachine:~# cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,rock
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:rock
floppy:x:25:
tape:x:26:
sudo:x:27:rock
audio:x:29:pulse
dip:x:30:rock
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:rock
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-timesync:x:102:
systemd-network:x:103:
systemd-resolve:x:104:
systemd-bus-proxy:x:105:
input:x:106:
crontab:x:107:
syslog:x:108:
netdev:x:109:
messagebus:x:110:
uuidd:x:111:
ssl-cert:x:112:
lpadmin:x:113:rock
lightdm:x:114:
nopasswdlogin:x:115:
whoopsie:x:116:
mlocate:x:117:
ssh:x:118:
avahi-autoipd:x:119:
avahi:x:120:
bluetooth:x:121:
scanner:x:122:saned
colord:x:123:
pulse:x:124:
pulse-access:x:125:
rtkit:x:126:
saned:x:127:
rock:x:1000:
sambashare:x:128:rock
mysql:x:129:
user1:x:1001:
python1804:x:1002:
root@yangyang-virMachine:~# useradd -m zhangsan -g python1804
root@yangyang-virMachine:~# passwd  zhangsan
输入新的 UNIX 密码: 
重新输入新的 UNIX 密码: 
passwd:已成功更新密码
root@yangyang-virMachine:~# su - zhangsan
zhangsan@yangyang-virMachine:~$ pwd
/home/zhangsan
zhangsan@yangyang-virMachine:~$ ll
总用量 32
drwxr-xr-x 2 zhangsan python1804 4096 9月   6 19:44 ./
drwxr-xr-x 4 root     root       4096 9月   6 19:44 ../
-rw-r--r-- 1 zhangsan python1804  220 9月   1  2015 .bash_logout
-rw-r--r-- 1 zhangsan python1804 3771 9月   1  2015 .bashrc
-rw-r--r-- 1 zhangsan python1804 8980 4月  20  2016 examples.desktop
-rw-r--r-- 1 zhangsan python1804  655 6月  24  2016 .profile

11>usermod 修改用户的基本信息

-c<备注>  修改用户帐号的备注文字。 
-d登入目录>  修改用户登入时的目录。 
-e<有效期限>  修改帐号的有效期限。 
-f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。 
#-g<群组>  修改用户所属的群组。 
-G<群组>  修改用户所属的附加群组。 
#-l<帐号名称>  修改用户帐号名称。 
-L  锁定用户密码,使密码无效。 
-s<shell>  修改用户登入后所使用的shell。 
-u<uid>  修改用户ID。 
-U  解除密码锁定。

12>groupdel 删除组

#注意:如果用户组做为一个用户的主组,则不能直接删除,如果想要删除,则首先需要删除用户

13>sudo 让当前用户暂时以管理员的身份root来执行命令

/etc/sudores:用户名以及别名,主机名以及别名,配置信息【用户以什么样的身份进行执行】
一般情况下,拥有管理员权限的用户设置一个

14>chmod 修改文件权限

rw-  当前用户的权限 【u】          
rw-  同组内其他用户的权限  【g】   
r--  其他组内用户的权限  【o】
​
演示命令:
#字母法
angyang@yangyang-virMachine:/root$ cd /home/yangyang/Desktop/
yangyang@yangyang-virMachine:~/Desktop$ touch file1.txt
yangyang@yangyang-virMachine:~/Desktop$ vim file1.txt 
yangyang@yangyang-virMachine:~/Desktop$ cat file1.txt 
today is a good day
yangyang@yangyang-virMachine:~/Desktop$ ll
总用量 16
drwxr-xr-x  2 yangyang yangyang 4096 9月   6 22:28 ./
drwxr-xr-x 30 yangyang yangyang 4096 9月   6 22:28 ../
-rw-r--r--  1 yangyang yangyang   35 9月   6 18:00 a1.txt
-rw-rw-r--  1 yangyang yangyang   20 9月   6 22:28 file1.txt
yangyang@yangyang-virMachine:~/Desktop$ chmod u+x file1.txt 
yangyang@yangyang-virMachine:~/Desktop$ ll
总用量 16
drwxr-xr-x  2 yangyang yangyang 4096 9月   6 22:28 ./
drwxr-xr-x 30 yangyang yangyang 4096 9月   6 22:28 ../
-rw-r--r--  1 yangyang yangyang   35 9月   6 18:00 a1.txt
-rwxrw-r--  1 yangyang yangyang   20 9月   6 22:28 file1.txt*
#数字法
yangyang@yangyang-virMachine:~/Desktop$ touch file2.txt
yangyang@yangyang-virMachine:~/Desktop$ ll
总用量 16
drwxr-xr-x  2 yangyang yangyang 4096 9月   6 22:32 ./
drwxr-xr-x 30 yangyang yangyang 4096 9月   6 22:28 ../
-rw-r--r--  1 yangyang yangyang   35 9月   6 18:00 a1.txt
-rwxrw-r--  1 yangyang yangyang   20 9月   6 22:28 file1.txt*
-rw-rw-r--  1 yangyang yangyang    0 9月   6 22:32 file2.txt
yangyang@yangyang-virMachine:~/Desktop$ chmod 0764 file2.txt     #0表示占位
yangyang@yangyang-virMachine:~/Desktop$ ll
总用量 16
drwxr-xr-x  2 yangyang yangyang 4096 9月   6 22:32 ./
drwxr-xr-x 30 yangyang yangyang 4096 9月   6 22:28 ../
-rw-r--r--  1 yangyang yangyang   35 9月   6 18:00 a1.txt
-rwxrw-r--  1 yangyang yangyang   20 9月   6 22:28 file1.txt*
-rwxrw-r--  1 yangyang yangyang    0 9月   6 22:32 file2.txt*

15>chgrp 修改文件所属组

格式:chgrp 新的组名 文件名

3.系统管理

1>ps 报告当前系统的进程状态

​ 进程是处于执行期的程序以及它所包含的所有资源的总称,包括虚拟处理器,虚拟空间,寄存器,堆栈,全局数据段等。​ 针对用户进程,又可以分为交互进程、批处理进程和守护进程三类。 ​ (1) 交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。 ​ (2) 批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。 ​ (3) 守护进程:守护进程是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。例如httpd进程,一直处于运行状态,等待用户的访问。还有经常用的crond进程,这个进程类似与windows的计划任务,可以周期性的执行用户设定的某些任务。​ ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的

​ -a:显示所有进程(包括其他用户的进程)

​ -u:用户以及其他详细信息

​ -x:显示没有控制终端的进程

​ -ef:显示所有

2>kill 删除执行中的程序或工作

​ -a:当处理当前进程时,不限制命令名和进程号的对应关系;​ -l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称;​ -p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;​ -s <信息名称或编号>:指定要送出的信息;​ -u:指定用户

3>df 显示磁盘分区上的可使用的磁盘空间

​ 注意:默认显示单位为KB

​ 可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息

4>du 显示文件的内存大小

​ 注意:与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看

5>crontab 提交和管理用户的需要周期性执行的任务

​ 注意:当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务

6>free 显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区

​ -b:以Byte为单位显示内存使用情况;

​ -k:以KB为单位显示内存使用情况;

​ -m:以MB为单位显示内存使用情况;

​ -o:不显示缓冲区调节列;

​ -s<间隔秒数>:持续观察内存使用状况;

​ -t:显示内存总和列;

​ -V:显示版本信息

             total        used        free      shared  buff/cache   available
Mem:           1970         988         107          12         875         754
Swap:          4093           2        4091
​
​
说明:
第一部分
total:内存总数
used:已经使用的内存数
free:空闲的内存数
shared:当前已经废弃不用的内存数
buff/cache :缓存内存数
available:

7>mode 权限标记

8>alias 给命令起别名

​ 格式:alias 别名=原名

9>关机重启

reboot:重启
shutdown -h now   立刻关机
shutdown -r now   立刻重启
shutdown -h +1    一分钟之后关机
clear 清屏
​
init 0      关机
init 6      重启

Linux命令大全: man.linuxde.net

三、shell编程

1.简介

1.1什么是shell

把在终端下执行的命令保存到文件中,这个文件就是一个shell程序

简单来说,shell编程就是对一对Linux命令的逻辑化处理

/bin/bash,bash是大多数Linux系统默认的shell

1.2shell解析器的类型

bash,ash,ksh,csh等,默认使用bash

yangyang@yangyang-virMachine:~$ echo $SHELL
/bin/bash

1.3shell的作用

比如ls,cat... cd ,如果会重复使用某些linux命令,可以将命令写入到文件中,编写了shell脚本,然后如果再次使用到这些命令的时候,只需要执行该shell脚本,即可实现相应的效果

2.第一个shell程序

2.1实现

#!/bin/bash
echo "first"

2.2运行

方式一:作为可执行程序执行

​ 注意:最后执行的时候使用的是./xx.sh

方式二:作为解释器参数执行

​ 注意:/bin/bash或者/bin/sh ,在文件中,第一行的声明可以省略掉【#!/bin/bash】

yangyang@yangyang-virMachine:~/Desktop$ mkdir shell
yangyang@yangyang-virMachine:~/Desktop$ cd shell/
yangyang@yangyang-virMachine:~/Desktop/shell$ touch first.sh
yangyang@yangyang-virMachine:~/Desktop/shell$ vim first.sh 
yangyang@yangyang-virMachine:~/Desktop/shell$ ll
总用量 12
drwxrwxr-x 2 yangyang yangyang 4096 9月   6 23:31 ./
drwxr-xr-x 3 yangyang yangyang 4096 9月   6 23:30 ../
-rw-rw-r-- 1 yangyang yangyang   25 9月   6 23:31 first.sh
yangyang@yangyang-virMachine:~/Desktop/shell$ chmod u+x first.sh 
yangyang@yangyang-virMachine:~/Desktop/shell$ ll
总用量 12
drwxrwxr-x 2 yangyang yangyang 4096 9月   6 23:31 ./
drwxr-xr-x 3 yangyang yangyang 4096 9月   6 23:30 ../
-rwxrw-r-- 1 yangyang yangyang   25 9月   6 23:31 first.sh*
yangyang@yangyang-virMachine:~/Desktop/shell$ first.sh
first.sh:未找到命令
yangyang@yangyang-virMachine:~/Desktop/shell$ ./first.sh 
first
yangyang@yangyang-virMachine:~/Desktop/shell$ /bin/bash first.sh 
first
yangyang@yangyang-virMachine:~/Desktop/shell$ /bin/sh first.sh
first

3.shell变量

3.1定义变量

定义:变量名 = 值

echo ${变量名}

说明:变量名外面的花括号可加可不加,为了帮助解释器识别变量的边界

shell中的变量也可以被重新赋值

3.2只读变量

3.3删除变量

unset:变量被删除之后将不能再使用,unset不能删除只读变量

代码演示:

#!/bin/bash
echo "first"
​
#定义变量
yourname="zhangsan"
echo $yourname
num=10
echo ${num}
echo "your name is ${yourname}"
​
yourname="lisi"
echo ${yourname}
​
#只读变量
myurl="www.baidu.com"
readonly myurl
myurl="1000phone.com"
​
#删除变量
score=100
unset score
echo ${score}             

4.字符串和数组

4.1字符串

字符串可以是双引号,也可以是单引号,也可以不用引号

单引号字符串的限制:

​ a.单引号中的任何字符都会原样输出,单引号字符串中出现的变量是无效的

​ b.单引号字符串中不能再出现单引号【转义也不行】

#!/bin/bash
#定义字符串
name="abc"
str="hello,${name} \n"
​
#拼接字符串
s1="hello,"$name""
echo ${str} ${s1}
​
#获取字符串的长度
echo ${#name}
​
#提取子字符串
string1="today is a good day"
echo ${string1:2:6}    #字符串:开始索引:向后获取几位字符
​
#查找子字符串
echo `expr index "$string1" is`
​
总结:
双引号:可以包含除了$  `  \   "之外的任意字符
单引号:其中的任意字符都不会被解析,会原样输出
反引号:会将其中的内容作为命令输出
反斜线:转义特定的字符

4.2数组

bash只支持一维数组,并且没有限定数组的大小

定义:数组名=(值1 值2 值3.。。。)

代码演示:

#!/bin/bash
​
#定义数组
arr1=(10 20 30)
echo ${arr1}
arr2=(
10
20
30
)
echo ${arr2}
​
​
#获取数组中的元素
echo ${arr1[2]}
​
#获取数组中的全部元素
echo ${arr1[@]}
​
#获取数组的长度
l=${#arr1[@]}
l1=${#arr1[*]}
l2=${#arr1[2]}

猜你喜欢

转载自blog.csdn.net/weixin_42569562/article/details/82670326