export LC_ALL='zh_CN.utf8'   编码方式



开启各种服务器:


    查看状态: service vsftpd status

    ftp:  service vsftpd start

    samba:  service smb start

    

vi 命令:


1,4 s/#/*/g  将1至4行的#全部换成*

4,5 d 删除第4行至第5行末尾的全部字符

5,6 m 0 将第5行到第6行结尾移到开始

批量添加注释:

    1,3 s/^/#/g      1至3行行首加上  :#

    !!执行上一步的命令

    history 5   显示最近5次的命令


查看目录下面有多少个文件夹及文件:  ls |wc -w


/*

左h

下j

上k

右l

 *

 *^|$行首|行尾·

 *查看版本:cat /etc/issue 

 *

 * 添加用户 su - useradd user1因为su是只取得ROOT的权限,su - 是取得ROOT的权限后还执行ROOT的PROFILE来取得ROOT的环境变量

 删除用户 userdel -r user1

 su 不加 - 环境变量不切换

 echo $PATH

 passwd -d 清空用户密码

 passwd -S username 提取用户的信息(例如:查看是否有密码)


向文件中写入内容:echo “11111” > one.txt

查看:ll

cat one.txt

cat one.php > two.php//将two.php中的内容换为one.php中的内容

cat one.php >>two.php//将two.php中的内容连接上one.php中的内容




cd -返回上次目录

查看上次访问的目录cd !$S

mkdir aaa

cp aaa /root/ 不行!!

cp -a aaa /root/ 复制(包括子目录)

-f 强制拷贝



head -2 filename //列出文件的前两行

tail -3 filename

tail -f filename //动态显示文件末尾的内容(用于查看日志)




软连接:(类似于快捷方式(可以跨文件系统))

                (源文件)(链接)

                ln -s(软连接) /root/demo.txt /home/

                时间值:创建链接的时间

                改变哪个都会改变demo.txt

        看磁盘分区df -T

硬链接不能跨磁盘分区

硬链接(类似copy(但是同步更新))

                硬链接和源文件有相同的i节点

为什么同步更新:ln -s a a.soft

                ln a a.hard

                ls -i(i节点(数字标识,linux核心是内核,内核不认识字母,任何处理对象必须有数字标识)每个文件必须有i节点。否则内核无法定位)硬链接和源文件具有相同的i 节点

                 除了位置不同,其他没啥区别

                 cp -p 文件位置 拷贝到这里    使得两个文件的创建时间相同

                 ls -i(实际上是类型标识 )

                




        rmdir 删除空目录

目录下建立目录

mkdir -p a/b/c/d


查看命令在哪里

whereis cd

查看帮助手册所在目录 

man 3 printf


date:月日小时分钟年:   更改日期

cal 2013: 查看2013年的日历


查看命令什么意思

whatis ln

查找 find /etc/ -name f*

locate demo.txt(先更新数据库updatedb)


如果里面有很多命令(不止一页)

more /root/services这样就可以翻页实现了

空格或者f 显示下一页

enter 显示下一行

Q或者q 退出 



节点:ls -i



权限管理:

chmod u-所有者

      g-所属组

 o-其他人

rwx  可读可写可执行 chmod u+wx  chmod o-rx chmod g=rwx

 

r-4 w-2 x-1

 


文件

    r:查看文件内容:r-cat more head tail

    w:写(可以修改):w-echo vi

    X-命令、脚本


目录(对目录具有删写权限才可以对他的文件进行删除)

    (列出目录的内容)r-ls

    (修改目录(删、改))w-touch/mkdir、rm

    X-cd(进入目录)


如果只有r权限:只能看有什么文件,死活进不去

如果只有x权限:  能进去,但是看不见有什么



改变所有者:chown chown majianjie a(文件)

系统默认有nobody用户,所以可chown nobody a


添加用户 useradd user2

         passwd user2(回车输入密码)



umask:改变缺省创建文件的权限

umask -S(大):可以查看缺省的权限

umask:返回0022

第一个0:特殊权限位

022-用户权限位,权限掩码值

 用    777

      -022

    --------

       755(真正创建一个文件的权限)

linux基本权限规则:缺省创建的文件没有可执行X权限 



如果想创建权限为750,需要用     777

                               -750

                              ---------

                                027

所以:umask 027 then

      umask -S 会出现

u-rwx,g=rx,o=

所以建立一个目录后查看ll会显示:rwxr-x---   750

....建立一个文件后查看ll会显示:rw-r-----   640 (减去2个可执行权限(默认没有可执行权限))



Linux用户分为三种:

    超级用户(root,UID=0)

    普通用户(UId 500-60000)

    伪用户(UID 1-499)



将普通用户更改为超级用户:(root下)more /etc/passwd    vi /etc/passwd 将uid 改为0就可以了


查看系统中有多少用户:wc -l /etc/passwd


用户的密码位放在/etc/passwd中,而密码放在/etc/shadow中,因为passwd中的内容任何人

都能看见,而shadow只有管理员可读!


etc/passwd中包括的几个组成部分

root:x:0:0:root:/root:/bin/bash

用户名:密码位(现在不是,以前是):UID:GID:描述信息: 宿主目录:shell


如果用户忘记密码怎么办?

进入:#more /etc/shadow/ 删除加密密码

root:$1$nHV.UgwX$5Usv0eDqwHXjX8rkPj9N01:15935:0:99999:7:::

用户名:加密密码:最后一次修改时间:最小时间间隔(一般是0不限定):最大时间间隔:警告时间(默认7天):账号闲置时间:失效时间


用户配置文件

vi /etc/login.defs 系统默认值

vi etc/default/useradd 设置默认组(失效时间、默认目录)

查看缺省shells:

[root@localhost home]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/bin/bash2

/bin/ash

/bin/bsh

/bin/tcsh

/bin/csh



如何显示登录终端?

登录前显示什么:etc/issue

登录成功后显示信息:etc/motd




不用useradd添加用户而是用vi添加:vi /etc/passwd

[root@localhost root]# vi /etc/passwd

[root@localhost root]# mkdir /home/user3

[root@localhost root]# ls -ld  /home/user3

drwxr-xr-x    2 root     root         4096  8月 23 22:56 /home/user3

[root@localhost root]# chown user3 /home/user3

[root@localhost root]# vi /etc/shadow

[root@localhost root]# ls

a                a.php  demo.txt     install.log.syslog

anaconda-ks.cfg  b.php  install.log  user1

[root@localhost root]# cd home

-bash: cd: home: 没有那个文件或目录

[root@localhost root]# cd /

[root@localhost /]# ls

bin   dev  home    lib         misc  opt   proc  sbin  usr

boot  etc  initrd  lost+found  mnt   prem  root  tmp   var

[root@localhost /]# cd home

[root@localhost home]# ls

demo.txt  majianjie  user2  user3

[root@localhost home]# cd user3



为什么普通用户能改密码?下面:

setuid=4

设置setuid的权限:(必须授予可执行程序)

授予:chmod u+s(或者4755) 可执行程序

撤销:chmod u-s(或者755)


setgid=2

    设置setgid的权限:(必须授予可执行程序)

    授予:chmod g+s(或者2755) 可执行程序

    撤销:chmod g-s(或者755)


查看在根目录下具有setuid和setgid的文件:find / -perm -4000 -o(连接符) -perm -2000


粘着位:(临时文件(都可以看,但是不能删除别人的))

粘着位=1   如果一个目录具有粘着位,权限777,能创建文件,能删除是所有者的文件

chmod o+t(或者1777) /目录

/tmp 默认具有粘着位



more /etc/group

sys:x:3:root,bin,adm

组名:组密码位:组id:组成员


添加组:groupadd group1

查看组信息:grep group1 /etc/grop


添加用户详细信息:s

useradd -u(uid) 4444 -g(缺省所属组) group1 -G(属于多个组) sys,root -d(宿 主目录) /backup -s(使用的shell) -c(描述信息) -e(失效时间) username


修改:usermod -l newname oldname

将用户加到组里:usermod -G  username groupname

另外一种方法加到组里:gpasswd -a username groupname 

把用户在组里删除:gpasswd -d username groupname


给组设置密码:gpasswd groupname 

设置一个用户为该组的管理员:gpasswd -A username groupname

删除组密码:gpasswd -r groupname

禁止用户切换到改组:gpasswd -R groupname

把一个用户切换到一个另外一个组中:newgrp groupname

查看用户属于哪个组:先groups username在id

grpconv:转换

grpunconv


pwck 检测etc/passwd文件(少个冒号)

vipw 编辑etc/passwd文件

id 查看用户组信息

finger username 查看用户详细信息

su 切换用户(su - 环境变量切换)

passwd -S(查看用户密码状态)

删除用户密码:passwd -d username

更改用户名:usermod -l newname oldname

锁定用户:usermod -L newname

给用户加密码:passwd username

锁定用户:passwd -l username

解锁:passwd -u[f(force)] username


vigr 编辑etc/group文件

*

*

*linux用户管理(三)

授权用nry对目录/software有写的权限:

思路:将jack和mary放在一个组里,改变这个组对/software目录的权限

mkdir software

ls -ld /software

useradd jack

useradd mary

passwd jackn


groupadd softadm

grep softadm /etc/group

一种添加用户到一个组

usermod -G softadm jack

grep softadm /etc/group

另一种添加方法

gpasswd -a mary softadm

grep softadm /etc/group

ls -ld /software

改变所属组

chgrp softadm /software

*

*ls -ld /software

*chmod g+w /software

ls -ld /software

*

* ok 

* su - mary

* touch /software/abc

* 没问题

*给组改名:groupmod -n newname oldname

*

*查看六个命令终端:vi etc/inittab

*

*查看当前有谁在登录:who

查看更详细信息(查看当前登录用户的的信息):w

*

*检查组的配置文件:grpck

*锁定文件vigr(类似vipw)(锁定etc/group和etc/passwd)

*

*在home下查找有关用户的信息:find /home -user username

*找到后问你是否要删除 find /home -user username ok rm {} \;

*设置密码:chage

    -l 查看用户密码设置 

    -m 密码修改最小天数

    -M密码修改最大天数

    -d 密码最后修改的日期

    -I 密码过期后锁定账户的天数

    -E 设置密码的过期日期,如果为0,代表密码立即过期,为-1,代表永不过期

    -W 设置密码过期前,开始警告的天数

    

    

启用或者停用shadow的功能


vi /etc/sysconfig/authconfig(设置一些缺省的设置)




*

*

*linux用户管理(四)

*

*

*批量添加用户:

*步骤: 1 newusers命令导入用户信息文件

        2 pwunconv命令取消shadow password功能

        3 chpasswd命令 导入密码文件(格式:用户名:密码)

        4 pwconv命令 将密码写入shadow文件


        cd /test

        vi user.info


*brother01:密码:1001(uid):3(gid):描述信息:(宿主目录)/home/brother01:(shell)bin/bash

*brother02:密码:1002(uid):3(gid):描述信息:(宿主目录)/home/brother02:(shell)bin/bash

*brother03:密码:1003(uid):3(gid):描述信息:(宿主目录)/home/brother03:(shell)bin/bash

*brother04:密码:1004(uid):3(gid):描述信息:(宿主目录)/home/brother04:(shell)bin/bash

*brother05:密码:1005(uid):3(gid):描述信息:(宿主目录)/home/brother05:(shell)bin/bash

*

*

*1、生成用户信息( 加入用户信息,创建宿主目录 ):newusers < user.info

tail -5 /etc/passwd

ls /home

2、 取消shadow password功能:pwunconv

3、 生成密码文件:vi pass.info

*

*brother01:majianjie

*brother02:majianjie

*brother03:majianjie

*brother04:majianjie

*brother05:majianjie


4、 chpasswd < pass.info

tail -5 /etc/passwd

5、 pwconv

tail -5 /etc/passwd

*

*

* 限制用户su为root(避免瞎猜)

* 思路:1、创建一个组sugroup

*          groupadd sugroup

*       2、将sugroup的权限为4550(默认所有人都有权限)

*           chmod 4550 /bin/su(去掉其他人的权限,现在只有所有者和所属组有权限)

*           ls -l /bin/su

*       3、把所有组改为sugroup

             chgrp sugroup /bin/su

                ls -l /bin/su

        4、usermod -G sugroup  user1(将user1添加到这个组里面)


*

*给用户授权:用sudo代替su

*

rpm -q sudo

rpm -ql sudo

*

*格式:用户名(组名) 主机名=命令 (绝对路径)

*

*编辑visudo 

 visudo

格式: username 主机名=授权命令,授权命令,授权命令。。。


*pluser1 localhost=/usr/sbin/useradd,/usr/sbin/userdel

*

*su - pluser1

用sudo添加新用户:

sudo /usr/sbin/useradd newusername

*查看是否被添加:grep newusername /etc/passwd

看看新用户可以以root身份执行什么命令:sudo -l 


sudo命令精确化:(pluser2 localhost=/sbin/shutdown -h now)


授权一个用户完全管理apache服务器

思路:

    编辑apache配置文件

    使用apache启动脚本

    更新网页


    1.设置用户为配置文件的所有者 chown

    2.改变所属组,把用户加入组,授予w 权限

    3.visudo 用户 地址=/bin/vi

       visudo (pluser2 localhost=/bin/vi/etc/httpd/conf/httpd.conf)



       查看系统的进程

       进程号pid

       父进程的进程号:ppid

       进程启动的终端:tty

       进程当前的状态:stat(S休眠状态,D不可中断的休眠状态,R运行,Z僵死状态,T停止)

       NI:进程优先级

       

       TIME:进程自从启动以来启用cpu的总时间

       COMMAND/CMD :进程的命令名

       USER:用户名

       %CPU:占用cpu时间和总时间的百分比

       %MEM:占用内存与系统内存总量的百分比

查看用户进程:ps


            ps -le 或者ps -aux 查看所有用户执行的进程的详细信息

                

            查看自己的进程: ps -u or ps -l

            ps -aux --sort pid 可按进程执行时间、PID、UID对进程进行排序

            查看某个用户启动的进程信息:ps -uU majianjie    ps -aux |gerp majianjie

            查看指定进程信息:ps -le | grep init


            查看系统所有进程的树状信息:pstree |more

            杀死一个进程(占用大量资源、别的进程无法运行):kill pid(3576)


            kill -l 列出kill所有信号

            halt:关机

            kill 9 pid:强行关闭

            kill -1 pid 重启进程

            关闭图形进程:xkill

            关闭所有进程:killall

           查看服务进程号:pgrep 服务名称

            的

            S:休眠的

            T:暂停执行

            Z:不存在但是暂时无法删除

            <:高优先顺序的进程

            N:低优先级顺序得进程



            作业控制:


            at命令: 

                at 17:35         (在17:35执行)


            atq命令:查看作业

            atrm命令:删除作业

            atrm 


            查看软件包: rpm -a 显示所有的软件包

            解压*.tar.gz的文件:tar -xfz filename.tar.gz


        sort:排序


            

        输入重定向: wc </aa/aa.php   查看aa.php的行数/单词数/字符数


        wc <<aa  然后回车,输入内容,最终以aa结束,

        


        ifconfig eth0 up:启动dhcp



        FTP:


            查看是否安装: rpm -qa | grep vsftpd


            如果没有安装: 挂载第三张  mount/mnt/cdrom

            cd /mnt/cdrom/redhat/RPMS


            安装: rpm -ivh vsftpd-1.1.3-8.i386.rpm


            启动ftp:  service vsftpd start

                

            测试DNS :  # nslookup 

                            > 正向查询www.baidu.com的地址

                        >192.168.1.101  反向查询主机名



linux的软件包的管理:

            

        rpm -e 软件名称   :卸载软件包

        rpm -e nodeps  软件名称   :强行卸载软件包


安装软件包: rpm -i


挂载光盘: mount  /dev/cdrom  /mnt/cdrom 


查看是否安装了某软件:  rpm -q 软件报名字



samba文件共享服务:

    

#====== Share Definitions ===========


[public]

comment = the share for Alluser

path = /tmp/public  //共享目录路径

valid users = @user   //能使用该共享资源的用户和组

#read list   只能读取该共享资源的用户和组。


Write list = @user     //能读取和写入该共享资源的用户和组

browseable = no       //是否列出共享,no即隐藏

4.smbclient //ip_addr/public_name -U user_name%passwd //访问共享目录


/etc/samba/smb.conf    :samba配置文件


http://blog.csdn.net/smonster/article/details/3361386

net  use  *  /del    断开连接(一定要在windows命令行中输入!!!!!!!!!!!!!!!!!!!!!!!)

/etc/samba/smbpasswd : 查看所有的用户


man -f 命令: 查看命令的作用

info 命令  (更加详细)




linux下编写C程序: 步骤

                            

      1.  vi filename

       2. #include <stdio.h>

       3. #include <math.h>

       4. main()

        {

            int i;

            double a;

            for(i=1;i<11;i++)

            {

                a=i*1.0;

                printf("%2d",i*i,sqrt(a));

            }

        }


        5. gcc -lm -o aa filename 生成a.out文件,-lm是连接上库文件math,用-o选项生成可执行文件

        6. ./aa执行二进制文件






Logo

更多推荐