返回列表 发帖

linux下常用命令集成

du --max-depth=1 -h //列出当前目录下目录大小
ls -alSh //查看文件大小按降序排列
ls -al|grep ^-|wc -l //计算当前目录下文件总数
ls -al|grep ^d|wc -l //计算当前目录下目录总数
df -h //查看磁盘分区使用情况
top //查看系统性能
free //查看内存使用情况
uname -a //查看内核、机器名等
route //查看路由
traceroute //跟踪路由
ifconfig //查看网卡IP地址
arp -a //查看网络中MAC地址
netstat -ln //查看网络服务
ping 192.168.0.1 //网络故障诊断
ping
dig
host
nslookup
whois china.com //诊断域名有关问题
tail -f /var/log/maillog //动态监视日志文件
ln -s yy zz //产生一个 symbolic link : zz
ln yy xx //产生一个 hard link : zz
ps -aux //查看系统进程
rm -rf //删除目录
mkdir -p /mnt/disk2/aaa/bbb/ccc //建立多个目录
cp -r 目录1 目录2 //拷贝目录
userdel -r username //删除用户及home所在目录
显示文件内容命令:cat more less head tail od
tar
1.压缩一组文件为tar.gz后缀。
# tar cvf backup.tar /etc
#gzip -q backup.tar

# tar cvfz backup.tar.gz /etc/
2.释放一个后缀为tar.gz的文件。
#gunzip backup.tar.gz
#tar xvf backup.tar

# tar xvfz backup.tar.gz
3.用一个命令完成压缩
#tar cvf - /etc/ | gzip -qc > backup.tar.gz
4.用一个命令完成释放
# gunzip -c backup.tar.gz | tar xvf -
5.如何解开tar.Z的文件?
# tar xvfz backup.tar.Z

# uncompress backup.tar.Z
#tar xvf backup.tar
6.如何解开.tgz文件?
#gunzip backup.tgz
7.如何压缩和解压缩.bz2的包?
#bzip2 /etc/smb.conf
这将压缩文件smb.conf成smb.conf.bz2
#bunzip2 /etc/smb.conf.bz2
这将在当前目录下还原smb.conf.bz2为smb.conf
注: .bz2压缩格式不是很常用,你可以man bzip2
rpm
1.安装一个包
# rpm -ivh
2.升级一个包
# rpm -Uvh
3.移走一个包
# rpm -e
4.安装参数
--force 即使覆盖属于其它包的文件也强迫安装 --nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
5.查询一个包是否被安装
&#35; rpm -q < rpm package name>
3.6.得到被安装的包的信息
&#35; rpm -qi < rpm package name>
7.列出该包中有哪些文件
&#35; rpm -ql < rpm package name>
8.列出服务器上的一个文件属于哪一个RPM包
&#35;rpm -qf
9.可综合好几个参数一起用
&#35; rpm -qil < rpm package name>
10.列出所有被安装的rpm package
&#35; rpm -qa
11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?
&#35; rpm -qilp < rpm package name>
chmod
mode : 权限设定字串,格式如下 : [ugoa...][+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
范例 :将档案 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取 :                             
chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行 :
chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
r=4,w=2,x=1
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7。
若用chmod 4755 filename可使此程式具有root的权限
chown
范例 :
将档案 file1.txt 的拥有者设为 users 群体的使用者 jessie :
chown jessie:users file1.txt
将目前目录下的所有档案与子目录的拥有者皆设为 users 群体的使用者 lamport :
chmod -R lamport:users *
find
find 根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部份为 path,之后的是 expression。如果 path 是空字串则使用目前路径,如果 expression 是空字串则使用 -print 为预设 expression
-mount, -xdev : 只检查和指定目录在同一个档案系统下的档案,避免列出其它档案系统中的档案
-amin n : 在过去 n 分钟内被读取过
-anewer file : 比档案 file 更晚被读取过的档案
-atime n : 在过去 n 天过读取过的档案
-cmin n : 在过去 n 分钟内被修改过
-cnewer file :比档案 file 更新的档案
-ctime n : 在过去 n 天过修改过的档案
-empty : 空的档案-gid n or -group name : gid 是 n 或是 group 名称是 name
-ipath p, -path p : 路径名称符合 p 的档案,ipath 会忽略大小写
-name name, -iname name : 档案名称符合 name 的档案。iname 会忽略大小写
-size n : 档案大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。-type c : 档案类型是 c 的档案。
d: 目录
c: 字型装置档案
b: 区块装置档案
p: 具名贮列
f: 一般档案
l: 符号连结
s: socket
-pid n : process id 是 n 的档案
-exec : exec后面跟随着所要执行的命令,然后是一对儿{},一个空格和一个\,最后是一个分号。例如:在/log目录中查找更改时间有5日以前的文件并删除,可以用:
find log -type f -mtime +5 -exec rm {} \;

crontab
使用方式 :
crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表
时程表的格式如下 :
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
例子 :
每月每天每小时的第 0 分钟执行一次 /bin/ls :
0 7 * * * /bin/ls
在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次 /usr/bin/backup :
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信给 alex@domain.name :
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"
20 0-23/2 * * * echo "haha"
kill
kill [ -s signal | -p ] [ -a ] pid ...
kill -l [ signal ]
说明:kill 送出一个特定的信号 (signal) 给行程 id 为 pid 的行程根据该信号而做特定的动作, 若没有指定, 预设是送出终止 (TERM) 的信号
-s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重跑, 砍掉, 结束; 详细的信号可以用 kill -l
-p : 印出 pid , 并不送出信号
-l (signal) : 列出所有可用的信号名称
范例:
将 pid 为 323 的行程砍掉 (kill) :
kill -9 323
将 pid 为 456 的行程重跑 (restart) :
kill -HUP 456
expr
使用权限:所有使用者
&#35;&#35;&#35; 字串长度
shell>> expr length "this is a test"
14
&#35;&#35;&#35; 数字商数
shell>> expr 14 % 9
5
&#35;&#35;&#35; 从位置处抓取字串
shell>> expr substr "this is a test" 3 5
is is
&#35;&#35;&#35; 数字串 only the first character
shell>> expr index "testforthegame" e
2
&#35;&#35;&#35; 字串真实重现
shell>> expr quote thisisatestformela
thisisatestformela
tr
&#35;&#35;&#35; 1.比方说要把目录下所有的大写档名换为小写档名?
似乎有很多方式,"tr"是其中一种:
&#35;!/bin/sh
dir="/tmp/testdir";
files=`find &#36;dir -type f`;
for i in &#36;files
do
dir_name=`dirname &#36;i`;
ori_filename=`basename &#36;i`
new_filename=`echo &#36;ori_filename | tr [:upper:] [:lower:]` > /dev/null;
&#35;echo &#36;new_filename;
mv &#36;dir_name/&#36;ori_filename &#36;dir_name/&#36;new_filename
done
&#35;&#35;&#35; 2.自己试验中...lowercase to uppercase
tr abcdef...[del] ABCDE...[del]
tr a-z A-Z
tr [:lower:] [:upper:]
shell>> echo "this is a test" | tr a-z A-Z > www
shell>> cat www
THIS IS A TEST
&#35;&#35;&#35; 3.去掉不想要的字串
shell>> tr -d this &#35;&#35;&#35; 去掉有关 t.e.s.t
this
man
man
test
e
&#35;&#35;&#35; 4.取代字串
shell>> tr -s "this" "TEST"
this
TEST
th
TE
root密码--forget
对于LILO,当系统启动至出现LILO引导画面时,对于图形引导方式按TAB键进入文本方式,然后在LILO处输入linux single回车;
对于GRUB,当系统启动到出现GRUB引导画面时,按字母e键,进入GRUB编辑状态。按键盘上或下键选择kernel项,接字母e键进入命令行编辑。在出现的命令行后添加“空格single”并按回车返回编辑状态,再按字母b即可。
在bash&#35;提示符下,修改密码:
bash&#35;passwd //输入新密码,然后
bash&#35;init 3 //进入多用户模式。

返回列表 回复 发帖