linux常用

一,文件权限
chmod u+x test.txt
chmod u-x test.txt
chmod u=rwx test.txt
数字形式
chmod 755 test.txt
4 2 1
r w x
每一位用二进制表示
其中:
4表示二进制100
2表示二进制010
1表示二进制001

建立文件链接
ln
硬链接(与源文件一模一样,指向同一个目录,更链接无法给目录做链接)
ln -s test.txt test2.txt
删除源文件
rm -f test.txt
cat test2.txt
发现依然可以打开

ln 源文件 新建链接名
软链接(相当于给源文件建立快捷方式,软链接可以给目录做链接)
ln -s 源文件 新建链接名
ln -s test.txt test_l
链接建立后,修改源文件的内容
cho “hello world ” > test.txt
cat test_l
文件内容也会跟着改变
删除源文件后,就无法打开链接文件
rm -f test.txt
$ cat test_l
cat: test_l: No such file or directory

所属用户
每一个文件都有一个拥有者,文件拥有者可以改变文件的权限
root用户可以用chown来改变文件的拥有者,可以用chgrp 来更改文件的群组
chown user1 test.txt
chown user1:user1
chgrp user2 test.txt

二.标准输出
ls -l > list.file

错误输出
ls-l 2> err.file
ls-l 2>> err.file

双重输出重定向
find /Users/ -name passwd > stdout.file 2> stderr.file

使用&将输出到同一个文件
find /Users/ -name passwd &> out.file
find /Users/ -name passwd > stdout.file 2>&1

linux管道
使用 | 将前一个过滤器的输出直接送到后一个过滤器的输入,允许多个管道
比如
ls | grep pass
ls -l /etc/ | more | grep fstab

常用范例,拷贝fileA内容到fileB
cat < fileA > fileB
将多个小文件内容合并成一个大文件
cat file.* > file

三.文件查找和文件管理

1.可执行文件的搜索
which
显示一个可执行文件的完整路径
# which ls
alias ls=’ls –color=auto’
/bin/ls

2.whereis
搜索一个可执行工具及相关配置,帮助
# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

3.slocate
所有文件名及其所在路径包含关键字段的文件与目录都会显示

4.find
find 路径 参数 表达式
从抒写路径下递归向下搜索文件
支付按照各种条件进行搜索
查找拥有者为root的文件
find /root -user root
find /etc -name service
根据文件权限查找
find /home -perm 0644
查找没有用户的文件
find /home -nouser
查找没有群组的文件
find /home -nogroup
根据文件类型查找
find /home -type c

操作找到的文件
-exec 指令 {} \;
{}代表find找到的文件
\表示禁止转意
;表示酢指令结束
例子:
把所有找到的txt文件打印出来
find ./ -name *.txt -exec cat {} \;

四,常用文件操作指令
—wc 统计文件行数,字数
例子:
# echo “hello world” > hello.txt
[root@lyc test]# wc hello.txt
1 2 12 hello.txt
第一列代表内容的行数
第二列代表内容包含的字数
第三列代表内容包含字符数
第四列代表统计的文件名

只统计行数
$wc -l hello.txt
1 hello.txt
只统计字数
$wc -w hello.txt
2 hello.txt
只统计字符数
$wc -c hello.txt
12 hello.txt

—grep 显示文件中显示关键字匹配的那一行内容
grep hello hello.txt
输出号
$ grep linux -n hello.txt
2:linux
反向查找,即找出不含linux的行内容
$ grep linux -v hello.txt
hello world

—sort 按序排列文件并显示
$ sort hello.txt
aaaa
hello world
linux
zz

—diff 报告两个文件差异内容
例子,这是两个文件
$ cat ABC
A
B
C
$cat abc
A
b
C
用diff命令对比两文件
# diff ABC abc
2c2
< B --- > b
2c2代表第一个文件的第二行和第二个文件的第二行不同
< B代表第一个文件内容不同的行 > b代表第二个文件内容不同的行

—comp 报告文件差异的位置
—unip cat 文件中重复的行
—cut 显示文件中的某一列
$cat hello.txt
hello world,ccc
linux,bbb
zz,ddd
aaaa,eee

$cut -f2 -d , hello.txt
ccc
bbb
ddd
eee

—paste 将文件按列拼接
例子:
$ paste abc ABC > merge
$ cat merge
A A
B B
C C
C

五,压缩,解压缩
— gzip,gunzip
linux标准压缩工具,对文本文件可以达到75%的压缩率
压缩
gzip 文件名
解压
gunzip 文件名
gzip -d 文件名
查看压缩后文件的内容
zcat 压缩文件名

— bzip2,bunzip2
比gzip有更高的压缩率(扩展名为gz)
bzip2 文件名
解压
bunzip2 文件名
bzip2 -d 文件名
查看压缩后文件的内容(扩展名为bz2)
bzcat 文件名

打包命令
— tar
打包 tar -cvf backup.tar *.txt
解开 tar -xvf backup.tar -C backup/

c 将文件备份出来
v 将过程输出
x 从一个文件解出备份

例子:
打包
tar cvf test.tar tes
解开
tar xvf test.tar -C backup
查看包内容
tar tf test.tar

— tar和gzip一起使用压缩并打包
tar zcvf test.tar.gz test
其中z代表用gzip进行压缩
解压
tar zxvf test.tar.gz

— tar和bzip2一起使用压缩并打包
tar jcvf test1.tar.bz2 test
其中j代表用bzip2进行压缩
解压
tar jxvf test1.tar.bz2
gzip和bzip2只能对文件进行压缩,与tar配合使用,就能对目录进行打包并压缩

六,系统监控
uname 显示系统信息
uname -a
host 显示主机名
last 显示最近的用户登录
lastlog 列出每一个用户的最近登录情况
free 显示内存使用状况
top 系统监视器

进程
系统的原始进程是init,init的pid总是1
一个进程可以首先另外的个进程,除init以外,所有的进程都有父进程
查询进程
ps [option]
例子:
ps -l

pstree 用树状的方式显示进程的父子关系
列出所有进程
pstree -a
显示进程pid号
pstree -aup

控制进程
— kill
kill [-signal] PID
向进程传送一个特定讯号,默认为15(终结)
用kill -l 列出所有可以由kill传递的信号
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX

kill -9 PID 强制终止进程

— killall 进程名

进程优先级
进程的优先级用nick表示
— nice :以一个不同的nice值来运行指令
nice -n num command
例子:让top进程以-5的优先级运行
$ nice -n -5 top &
查看top进程,看到优先级为-5了
$ ps -l | grep top
4 T 0 2336 2305 0 75 -5 – 626 – pts/2 00:00:00 top
— renice 改变一个运行进程的优先级
recice -n pid
例子:将top进行的优先级从-5改成10
$ renice 10 2366
2366: old priority -5, new priority 10
查看top进程,看到优先级改为10了
$ ps -l | grep top
4 T 0 2366 2343 0 90 10 – 626 – pts/3 00:00:00 top

前台进程和后台进程
一般情况下,一个命令执行后,此指令将独占shell,并拒绝其它输入,这样的进程称为前台进程,反之,则称为后台进程。
将进程丢到后台
command & :将一个进行直接丢入后台运行
比如,top &

— jobs 列出所有后台进程
例子:
$ top &
[1] 2428
$ jobs -l
[1]+ 2428 Stopped (tty output) top

— fg 将后台进程拉回看前台
例子
$ fg 1
top
top – 01:59:34 up 3:54, 4 users, load average: 0.00, 0.00, 0.00
Tasks: 79 total, 1 running, 78 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 510884k total, 293780k used, 217104k free, 21164k buffers
Swap: 0k total, 0k used, 0k free, 103096k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 2896 1392 1200 S 0.0 0.3 0:00.94 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
成功把后台运行的进程拉回前台

— bg 将后台暂停的进程在后台执行
例子:
$ jobs
[1]+ Stopped vi t.txt
$ bg %1 ;jobs
[1]+ vi t.txt &
[1]+ Running vi t.txt &
成功让进程从暂停状态转回后台运行状态

系统日志
/var/log/dmesg
核心启动日志
/var/log/messages
系统报错日志
/var/log/maillog
邮件系统日志
/var/log/xferlog
ftp服务日志

/var/log/secure
安全信息,繁育登录与网络连接的信息

/var/log/wtmp
登录记录

检查用户身份
who 查询当前在线的用户
groups 查询用户所属的组
id 显示当前用户信息
finger 查询用户信息
# finger test1

七,用户管理
添加用户
用指令添加用户
useradd
passwd 例子:
不给新用户创建家目录
# useradd -M user1
强行给用户创建家目录
# useradd -m user1
创建系统账号
# useradd -r user1

系统添加用户的标准步骤
-编辑/etc/passwd与/etc/group
-创建用户主目录
-从/etc/skell拷贝文件与目录
-让新用户获得其主目录与文件的拥有权限
-给新用户一个密码

更改/删除用户
usermod 更改用户资料
-c 更改用户全名
-d 修改用户主目录
-e 用户密码的过期时间
# usermod -e “2017-01-01” test1
-G 将用户加入到群组里
# usermod -G root test1
-g 改变用户的群组
# usermod -g root test1
# usermod -g 0 test1
-s 更改用户默认shelll
# usermod -s /bin/csh okcc
-u 更改用户的uid
# usermod -u 504 okcc
-p 修改用户密码
# usermod -p 1234 test1
-L 锁定用户密码,不让用户登录
#usermod -L test1
-U 为锁定的用户解锁
#usermod -U test1
注,查看用户是否被密码锁定
# passwd -S test1

userdel 删除已经存在的用户
# userdel test1
-r 帮助系统将一个用户的目录等一并删除
# userdel -r test1

/etc/passwd文件
passwd文件中记录的是个用户的登录信息,每一行代表一个用户,用:分为七项,即用户的基础登录信息
– login name 登录用户名
– passwd 密码
– uid 用户身份id
– gid 登录默认所在组编号
– full name 用户命名或注释
– home directory 用户主目录
– shell 用户默认使用shell

添加或删除一个用户,最基础的操作,即在passwd文件中添加或删除相应的个人记录

/etc/shadow文件
linux默认将用户密码存储在/etc/shadow文件中,每一行表示一个系统用户的密码记录,用:分隔,分别为
-登录用户名
-用户密码(一般经md5加密)
-从1970年1月1日起到密码上一次修改的时候
-密码再过几天可以被变更(0表示随时可被变更)
-密码再过几天必须被更改(99999表示永不过期)
-密码过期前几天系统提醒用户
-密码过期几天后账号会被取消
-从1970年1月1日算起,多少天后账号失效

用户可以通过authconfig来设定是否使用shadow文件及md5加密。

Home directory
/etc/login.defs 中的CREATE_HOME决定系统在建立用户的时候是否同时创建用户主目录,系统在建立用户主目录时,会将/etc/skel下的内容复制到新目录下,最后,系统会使该目录与其下的文件归属于新用户
chown -R user.group 目录名

组管理
系统中的组信息,记录在/etc/group中,每一行代表一个组,用:隔开,分别为:
group name 群组名称
passwd 群组密码
GID 群组gid号
user_list 组成员列表

系统用户可以直接修改/etc/group文件达到更改组数据的目的,也可以使用以下命令:
groupadd 添加一个组
-r 创建系统群组
# groupadd -r group_1
groupdel 删除一个已存在组
groupmod 更改组信息
-n 修改群组名称
gpasswd 设置群组密码
# gpasswd testgroup
一般情况下不给群组添加密码,群组密码存储在/etc/gshadow文件中

给用户指定群组
gpasswd -a testgroup user1

用户可用newgrp指令改变当有效前组
$ newgrp testgroup

八,硬件配置与管理
liux沿袭unix的风格,将所有设备认成一个文件。设备文件分为两种
— 块设备文件(b),一次性能传输很多字节,也需要缓冲区,常用块设备文件如:
/dev/hd[a-t] IDE设备
/dev/sd[a-z] SCSI设备
ram[0-19] 内存
— 字符设备文件(c),一次性只传输一个字符,且不须要缓冲区,常用字符设备文件
/dev/null 无限数据接收设备
/dev/zero 无限0资源,与null相似
/dev/tty[0-31] 虚拟终端
/dev/ttys[0-9] 串口设备,如鼠标键盘
/dev/lp[0-3] 并口,如打印机
/dev/console 控制台
设备文件一般存放在/dev目录下

dd备份命令
dd < /data/install.log.b > install.log
dd if=/data/install.log.b of=install.log bz=512 count=1

九,文件系统
挂载一个文件系统
命令:
mount -t 文件系统类型 [其它参数] 设备 挂载点
-t 文件系统类型,用于指定挂载文件系统的类型,一般这个参数是必须的。
-o 补充追加的参数
例子:
mount -t /dev/sda5 /opt
mount -o ro /dev/sda5 /opt
unmount /opt

文件系统维护
fsck/filesystem check 用于检查与修复文件系统,被检测的文件系统,必须是非挂载状态的。
e2fsck 检查与修复ext2文件系统
系统在启动时会自动被检查
tune2fs 更改ext2文件系统属性
resize2fs 更改ext2文件系统大小
parted 更改多种文件系统大小

十,linux计划任务
at命令:指定一个时间执行一个任务
cron机制,根据一个时间表自动执行任务
anocron机制,在一个指定时间间隔错过后自动执行任务

发表评论

电子邮件地址不会被公开。 必填项已用*标注

(为了证明你是人类,请输入两数相加的结果)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">