首页 > 代码库 > linux基础命令(一)

linux基础命令(一)

符号链接
ln -s ~/projiect/haha/ link1  
            //在当前目录下创建指向~/projiect/haha目录的符号链接,对link1目录下的文件的操作即是对projiect目录下文件的操作
rm  link1     删除链接, 但~/projiect/haha/目录下的内容没有变   
rm -r link1/    projiect/haha下的被文件删除   链接link1 没有被删除,显示:  无法删除"link": 不是目录
ln -s ~/projiect/haha    在当前目录下创建一个名为haha的符号链接,haha指向~/prijiect/haha目录 
 
cp的用法
cp -r(递归地复制目录。用于目录中带有子目录)  -f (如果存在一个目标文件,不能被打开,那么试图先删除它再尝试) 
-a (要完整地复制一个目录,保持软硬链接和文件属性,相当于同时指定-bpr)  -p (保留源文件或目录的属性) -i(覆盖文件之前先询问用户)
cp txt txt1                         赋值txt到txt1中,txt1不存在则创建,存在则覆盖
cp -a a1 a2                      a2不存在则新建,a1中的内容复制到a2;a2存在则a1复制到a2目录下,若在a2下存在同名文件则覆盖
 
文件和目录
tree (lstree)显示文件和目录由根目录开始的树形结构
file  txt   辨识文件类型
stat txt  查看文件的atime(acess访问时间),mtime(modify修改时间),ctime(change状态改动时间)
touch txt 创建一个空文件
touch txt 更新文件txt的时间 用ls --full-time txt查看文件创建时间
touch -t 0712250000 txt  修改txt文件的创建时间为2007-12-25 00-00-00
mkdir -p  创建目录树
mkdir -m
 
用户管理
/etc/passwd     定义了每个用户账户的属性
/etc/shadow    保存密文的用户口令,只有管理员才能读取
/etc/group       保存用户组的信息
/etc/login.defs      /etc/default/useradd用这两个默认帐号设定文件来 实现创建用户时用户的基本设置的
 
useradd test   新建用户test 同时会创建一个和用户名同名的用户组
useradd -g students test1    创建test1用户,属于students组,不会创建与用户名同名的组
usermod -g students test     (修改用户属性)更改用户的用户组,将test从默认的test组更改到students组
        //将已有的用户添加到其他组,一个用户可以同时属于多个组
usermod -G training test  将test用户添加到trainnig组,test同时属于students和trainning组
        或使用gpasswd -a test trainning  将test添加到trainning
userdel -r test   删除用户及用户的宿主目录(-r排除主目录)
passwd test      root给用户设置密码,连输2次密码
passwd 登录用户test,用户自己修改密码,输入原始密码  输入新密码
chage -E 2005-12-31 user1 设置用户口令的失效期限
pwck 检查 ‘/etc/passwd‘ 的文件格式和语法修正以及存在的用户 
grpck 检查 ‘/etc/passwd‘ 的文件格式和语法修正以及存在的群组 
newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组 
groupadd -g 888 students   创建GID为888的用户组
groupdel groupname   删除用户组,要先删除或移除该组的用户
groups test  查看test用户属于哪一个组
修改组名和用户名:
groupmod -n newname oldname   
usermod -l newname oldname
 
文件类型和权限
<1>文件类型:
- 普通文件  d目录   b块设备文件(硬盘光驱/dev/sda* sr0)   c字符设备文件(/dev/ttyS*)  l符号链接文件 p是管道文件
s(socket文件)
sudo mknod -m 660 sdb4 b 8 5  //创建块设备文件,主设备号8,次设备号5
<2>文件权限:(chmod的用法)
chmod a+x hello   //增加所有者,所有组和其他用户的可执行权限
    //u(文件所有者) g(文件所有组) o(其他用户) a(三者皆是) +(增加权限) -(取消权限) =(唯一设定权限)
    //r(读) w(写) x(执行) s(设置用户或组的ID号) t(设置粘着位sticky bit,防止文件或目录被非属主删除)
chmod -R a+r *  //将目前目录下的所有档案与子目录皆设为任何人可读取(-R可递归遍历自目录)
chmod a=rwx file 或者 chmod 777 file //修改file三者都可读,可写,可执行
chmod u+s hello  //设置hello的SUID设置位,运行该文件的用户也被赋予和所有者同样的权限 
chmod g+s hello  //设置SGID设置位,类似SUID
chmod o+t projiect/ 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件 
find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
<3>SUID,SGID和STIKY设置位

-rwsr-xr-x 表示SUID和所有者权限中可执行位被设置

-rwSr--r-- 表示SUID被设置,但所有者权限中可执行位没有被设置

-rwxrwxrwt 表示STIKY位和other的可执行位被设置

<3>文件属性(chown chgrp)

chown user1 file1 改变一个文件的所有人属性 
chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性 
chown user1:group1 file1 改变一个文件的所有人和群组属性 
chgrp group1 file1 改变文件的群组 
 
时间
系统时间是从RTC(real time clock)中来的,RTC时间是从1970-1-1 00-00-00开始走过的秒数
hwclock -r 选项用来显示当前的RTC 时间
hwclock -s 选项用来将当前的RTC 时间初始化为Linux 系统时间;
hwclock -w 选项用来将当前的Linux 系统时间写入到RTC 时间;
 
date 显示系统日期 
cal 2007 显示2007年的日历表
date 041217002007.00 设置日期和时间 - 月日时分年.秒 
clock -w 将时间修改保存到 BIOS 
 
系统的关机重启登录
shutdown -h now
shutdown -h hours:minutes & 按预定时间关闭系统 
shutdown -c 取消按预定时间关闭系统 
shutdown -r now / 
reboot  重启 
logout 注销 
whoami     显示当前登录的用户
 
改变运行级别
<1>重启进入的运行级别:sudo vim /etc/inittab  改变id后的数字
<2>sudo init 5
 
添加sudo账户
#vim /etc/sudoers
zhoutian  ALL=(ALL)    ALL(或NOPASSWD:ALL)

linux基础命令(一)