文件与目录管理
pwd 显示当前目录
cd 改变目录
ls 显示文件列表
mkdir 创建文件夹
cp 文件复制
mv 移动或重命名
rm 删除文件或目录
locate 在整个找出指定的文件,该命令直接与updatedb关联。该命令依赖地索引,直接新建的文件是搜索不到的,除非使用updatedb
updatedb 更新文件数据库。
man 显示指定命令的使用帮助
用户和组
用户管理
超级用户 root
用户账户 在Linux 文件系统中的配置目录中保存丰系统用户的列表:/etc/passwd,密码保存在/etc/shadow中。
增加用户
useradd username 默认设置,一个home目录,没有有效期,默认组,登陆的BashShell 。
非登陆类的账号,如nginx , 可以使用:
useradd --shell /sbin/nologin nginx
或定位该用户的home目录的位置,如:
useradd --shell /sbin/nologin --home-dir /usr/local/nginx nginx
usermod 对账户重命名、修改密码,移动home位置
userdel username 删除账号 加-r 同时删除home目录
组管理
目的:让一个组的成员对某一文件或目录有共同的访问权限,每一个进入该组的用户都继承该组的权限。一个用户账户至少属于一个组——主要组(primary group)
用户组的列表保存 /etc/group中。
- groupadd groupname 新建用户组
- groupmod 修改用户组
- groupdel 删除用户组
- 组添加成员
usermod --append --groups groupname username
查找 搜索
find 查找命令
find /home/test -name test.sh -print 在目录下查找文件并打印路径
命令选项:
-name 按照文件名查找-perm 按照文件权限来查找文件-prune 不在当前指定的目录查找。如果同时使用了-depth,那-prune会被忽略-user 按文件属主来查找文件-group 按所属组来查找文件-mtime -n +n 按照文件更改时间来查找文件-nogroup 查找无有效所属组的文件,即在该所属组在/etc/groups中不存在-nouser 查找无有效属主的文件,即该文件的属主在/etc/passwd中不存在-newer file1 !file2 查找更改时间比file1新但比file2老的文件-type 查找某一类型的文件-size n[c]查找文件工度为n块的文件,带有c时表示文件长度以字节计算-depth 在查找文件地,首先查找当前目录中的文件,然后在其子目录中查找。-fstype 查找位于某一类型雇佣系统中的文件-mount 在查找文件地不跨越文件系统mount点-cpio 对匹配的文件使用cpio命令,将这些文件备份到磁带设备中
find ~ -name "*.txt" -print 在$HOME目录下查找后缀txt的文件
find . -name "[A-Z]*" -print 查找当前目录及子目录里大写开头的文件
find /etc -name "host*" -print 在/etc里找host开头的文件
find . -name "[a-z][a-z][0-9][0-9].txt" -print 查找两个小写字母开头,后跟两个数字的文件
find . -perm 755 -print 当前目录下找权限为755的文件
find /apps -name "/apps/bin" -prune -o -print 忽略/apps/bin目录
find . -type f -exec ls -l {} \; 用ls -l 列出所找到的文件
find . -name "*.LOG" -mtime +5 -ok rm {} \;删除5天前的日志
find /home/hap/src/* -name "*.o" -exec rm {} \;
使用xargs
find / -type f -print | xargs grep "device" 用grep命令在所有的普通文件中搜索device单词
sed
sed 是一个非交互性文本流编辑器,可以从文件和字符串中抽取所需信息。
sed -n '2p' sed.txt 打印第2行
sed -n '1,3p' sed.txt 打印1~3行
sed -n '1,3p' sed.txt >sed.tmp 1~3行输出到sed.tmp文件里
sed -n '1,$p' sed.txt 显示全文
sed -n '1p' sed.txt 打印首行
sed -n '$p' sed.txt 打印最后一行
sed '2p' sed.txt 输出全部文本,然后输出第2行
sed -n '/should/'p sed.txt 查找should的行
sed -n '/should/=' sed.txt 输出匹配的行号
sed -n '/\./'p sed.txt 特殊字符查询,需要\进行转义
sed '1,3d' sed.txt 删除1~3行
sed '/should/d' sed.txt 删除包含should的行
sed 's/PS/ps/' sed.txt 替换每行第一个单词
sed 's/PS/ps/g' sed.txt 全文替换
sed '1,3 s/should/SHOULD/g' sed.txt 指定行替换
sed '1 s/should/SHOULD/g' sed.txt 指定行范围替换
控制字符输入方式:
^M
1.Ctrl+v
2.M
3.释放Ctrl
awk
有点复杂,这里先不记录了。
系统服务
许多运行在后台的应用程序,不是通过命令加上一个&字符,而是通过一个复杂的脚本来管理。脚本最普遍是放在/etc/init.d内。
一些Linux发行版本,提供了service脚本,通过它来控制服务。
进程管理
查找pid
ps aux | grep sshd
top 列出当前在系统下运行的所有进程,并列出进程的pid
默认以CPU使用率排序。 这个显示每秒刷新一次,Ctrl+C中断或Q退出。
杀进程
kill pid
kill -9 pid 强制杀进程
killall httpd 以进程名为参数杀多个进程 本文参考:电子工业出版社《深入浅出Linux工具与编程》