Linux命令
exportLC_ALL='zh_CN.utf8' 编码方式开启各种服务器: 查看状态: service vsftpd status ftp: service vsftpd start samba: service smb start vi 命令:1,4
开启各种服务器:
查看状态: 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执行二进制文件
更多推荐
所有评论(0)