____****ls的一些用法:****____
* ? [] [1~8] [a-zA-Z]
输入命令时候双击tab可以显示当前有那些可以输入
符号连接:
相当于windows下的快捷方式??
ln -s target filename
-s表示symbolic links 而不是hard links
hard links 要目标目录活文件确实存在
重定向(redirection):
用一个>表示输出到目标文件,存在的话就替换
用一个>>表示存在的话就输出到文件的末尾
用一个>&表示就算是错误信息也输出到目标文件
如ls -l >log
gcc test.c >&output
gcc test.c >output
管道(pipe):
就是将某个程序或者命令的输出当成下一个的输入?? 两个命令之间用符号 | 隔开
du | sort -n
du是显示磁盘的命令, sort是排序的, -n表示按照文件大小排列
显示的内容太多,我们可以用第二条管道来more
du | sort -n | more
搜索命令:
当你在shell中敲入命令的时候,shell会去指定的文件夹中寻找命令,输入 echo $PATH 可以查看搜索的文件夹
echo $PATH
把指定文件夹加入到搜索范围可使用以下命令:
export PATH=$PATH:/usr/sbin
后台运行程序:
在命令的后面加上&
gcc test.c &
显示:[1] 12345
[1]是该命令的工作序号,而12345是自定义的进程识别代码(process ID)
fg %1
jobs命令可以查看挂在后台的程序,[]里面的称为作业号
ctrl + z 表示挂起
ctrl + c 表示退出
bg 弄到后台
上面两个命令都是将命令带回前台,fg就是foreground的意思
用apropos命令来搜索相关的帮助手册:
apropos ls
搜索和ls有关的
添加帮助手册的路径和命令的差不多
export MANPATH=/usr/man:/usr/local/man
文件的所有权和权限:
chown这个命令用来修改文件的拥有者,只有root才能执行
chgrp这个命令用来修改文件的组
chmod这个命令用来改变权限
例如装来sampsoft这个软件
chown bin sampsoft
chgrp bin sampsoft
例如header是一个简单的程序
chmod +x header
chmod -x header
chmod u+rwx header
chmod ug+x header
chmod -R(--recursive) dir
chmod --reference=文件名或目录名 -Rv header
chmod 775 header
+表示增加权限,-表示去掉权限,u, g, o 分别表示拥有者,组和其他人,-R表示以递归形式改变目录下文件的所有权限,-v显示对每个文件或目录的处理结果,--reference用指定文件的目录来访问来设定目标文件或目录的权限,而不是以模式来指定,或者可以直接用数字来指定权限
unmask这个命令是去掉文件的权限,有点像网络地址的反掩码
unmask 005 header
启动配置文件:
配置文件一般在用户的主文件下,并且以.开头,属于隐藏文件
重要目录:
/usr/bin 命令存放的地方
/usr/sbin 管理命令,s是super的意思
/boot 启动文件,内核放在这里
/etc 子系统所用到的文件
/var 存放一些监控点的文件,如日志log
/usr/lib 标准函数库
/usr/include 头文件
/usr/src 系统源代码存放的地方
/etc/skel 启动配置的样本
看守程序(daemon):
所谓的看守程序就是在服务器的后台为你提供服务的程序,大多数都是用来处理网络上的活动。系统只会启动一个daemon程序来接收客户端的连接,当连接建立之后,就会启动适当的daemon程序去处理该连接。这样可以只启动必要的网络服务程序
进程:
ps命令用来查看进程
ps -aux
显示的tty那栏表示在哪个终端运行的程序,-a表示显示所有进程,-u表示显示用户名,-x显示daemon进程,也就是不用终端执行的进程
管理用户账户
用户信息保存在 /etc/passwd
建立帐号:
adduser 跟着指引作
删除与停用账户:
deluser -r username -r会强制删除该用户的主目录
find / -user username -ls 快速查找与该用户相关的文件
这个命令会以ls -l的方式打印出来,要使用这个命令的前提是username在passwd文件中拥有一个项目,如果已经删除了这个项目,可以用以下命令
find / -uid num -ls 用在删除用户但没删除主文件夹的情况
要暂停一个用户可以删除其在passwd中的项目,也可以在该项前面加上*
修改用户账户:
password username 修改密码
如果要修改一个用户的uid,可以直接去编辑passwd,然后用chown去修改原来文件的拥有者
chown -R aclark home/aclark
管理文件系统
挂载文件系统
mount -t type device mount-pont
编辑fstab文件,让别的用户也可以挂载文件系统
fstab文件中option中如果有多个参数可以用逗号隔开
/dev/cdrom /cdrom iso9660 ro,user
建立文件系统
命令:mkfs
mkfs -t type device blocks
mkfs -t ext2 /dev/fd0 1400 1400表示磁盘容量是1.44m
建立文件系统相当于将磁盘格式化
检查与修复文件系统
命令:fsck (file system check)
一般形式为fsck.type 如fsck.ext2
fsck -t type device
对于已经挂载的文件,一般会询问是否继续。如果找到并修复问题之后,要重新启动机器。一般会在检查之前先umount
要检查root文件系统,要用磁盘开机
升级软件和内核
备份与压缩工具
gzip garbage.txt 压缩txt文件
gunzip garbage.txt.gz 解压压缩文件
当压缩成功之后,原文件会被删除,同理,解压成功之后,压缩文件也会被删除
可以通过管道将一个命令的输出通过gzip压缩起来
ls -laR $home | gzip > filelist.gz
也可以通过管道不用解压就阅读压缩文件里面的文件, -c是关键
gunzip -c filelist.gz | more
zcat命令其实就和gunzip -c一样,相当于压缩文件上的cat命令
备份使用tar
格式:tar function option file......
function: c(建立新的备份文件) x(将备份文件解开) t(列出备份文件的内容) r(将文件附在一个备份文件后面) d(比较备份文件里面的文件和系统的文件)
一般使用的只有c,x,t
option: v(处理文件时显示更多信息) k(备份中的文件不能覆盖已存在的文件) f filenme(指定filename为读出或写入文件的文件名)
假如有一个mmt的文件夹
tar cf mmtbackup.tar mmt
c是创建备份文件,f是以mmtbackup.tar命名。。。。。。
解压文件
tar xvf mmtbackup.tar
tar tvf mmtbackup.tar 查看压缩包中的文件
tar xvf mmtbackup.tar mmt/mmt.c
单独把压缩包中的mmt/mmt.c这个文件解压出来
配套使用tar和gzip
tar cvf - files... | gzip -9 > tarfiles.tar.gz
gunzip -9c tarfiles.tar.gz | tar xvf -
简化选项,tar中加入z选项,相当于以上的功能
tar cvzf tarfiles.tar.gz
tar xvzf tarfile.tar.gz
要想配合使用tar和gzip就必须告诉tar你所使用的压缩程序
tar cvf tarfile.tar.gz --use=bzip2 files...
问题:在.bashrc文件中添加tarc () {tar cvzf $1.tar.gz $1}之后,为什么不能直接在bash中调用tarc???
已解决:函数的格式问题,应该如下:
tarc() {
tar cvzf $1.tar.gz $1
}
编辑完.bashrc之后,执行命令source ~/.bashrc
这样就好了
升级函数库
大部分函数经过编译之后或多或少都会用到共享函数库。像windows下的dll。程序本身拥有自己的一份函数库的副本,这叫做静态链接。那些以来共享函数库的叫做动态链接。当建立一个使用共享函数库的程序时,程序会加入一段程序启动时执行ld.so的代码。动态链接的程序会使用填充代码来取代原来函数中共享函数的位置,当程序执行是,ld.so会用函数库中的函数去取代填充代码。
例如:
ldd /usr/bin/virtualbox
/etc/ld.so.conf这个文件中包含了ld.so寻找共享库函数的目录清单。无论这个文件里面的内容是什么,ld.so一定回去检查/lib和/usr/lib
只要在这个文件中加入新内容,一定要使用命令:ldconfig
最长升级的是:
libc 标准c语言函数库
libm 数学函数库
每个共享函数库里面都会有下面的两个文件:
library.a 这是一个静态函数库
library.so.version :这是共享函数库本身,Version就是版本号
.a的文件通常放在/usr/lib中,而.so的文件通常放在/lib中。如果有自己的函数库,也可以把ld.so的目录指到别的地方,编译的时候加上参数-L
观察ls -l /lib 的输出
会看到符号链接。ls.so只依靠主要版本号来查找函数
更新的时候,静态函数库比较容易,直接复制到相应的文件夹,覆盖即可。而动态函数库中存在着符号链接,所以不能随便删除和覆盖。而是要用命令:
ln -sf 对原来的符号链接替换好
备份:。。。。。。
管理系统日志
syslogd这个应用程序会记录系统上各种活动,syslogd以看守进程的形式来运行,通常是开机时由一个rc文件启动
日志文件的保存目录,求解。书太旧了,上面说的找不到
不过日志目录一般都是在 /var/log文件夹下
其他日志文件:
/var/log/wtmp 包含每个用户登录次数和持续时间的二进制文件,用last显示
/var/run/utmp 包含目前登录用户信息的二进制文件,
阅读(1683) | 评论(0) | 转发(0) |