您的位置:首页 > 运维架构 > Linux

Linux开发前准备有关知识汇集

2014-12-13 08:42 246 查看

Linux开发前准备有关知识汇集(自open-open本人的博客搬迁过来)

http://www.open-open.com/home/space-43816-do-blog-id-8582.html

ps命令

bash

ksh

csh

sh

tcsh

ps

一个终端至少有一个shell,用来和用户打交道

登陆shell,管理员指定登陆是什么shell,平常用就用什么shell

exec ksh切换shell,切换shell之后原来的shell就没用了。可以通过ps来验证

date

操作系统要管理文件

 目录

  子目录

   文件

文件系统

 树

移动文件系统

 /

/etc/hosts

linux严格区分大小写;

pwd=print working directory打印出当前的工作目录

ps=process status打印出进程的状态

clear=ctrl+l

每个程序每运行一次有一个状态

tty是终端编号,每个终端都有一个编号

pid进程的id;内核在管理对象的时候,一般采用一个整数来分配和识别

cmd是命令

time是利用的cpu的时间

cd=change direcotry改变当前工作目录

绝对路径

相对路径

管理员在创建账户的时候会指定shell,和主目录home directory

cd /etc/alsa/cards

/~.分别表示根目录、主目录、当前目录

..表示上一级目录

../..表示上一级的上一级

ls=list列出

telnet

passwd更改密码

用户名和密码存在于/etc/passwd文件中

soft01:x:500:50::/home/soft01:/bin/bash

用户名:密码:

密码实际上都放到了shadow文件中了

group

ps -l

ps -e

ps -f

ps -p pid

ls

ls /usr

ls /usr /mnt

case-sensitive

命令 【选项】....【参数】...

man

more

man  date

date +%D

date +%F

date +%T

date 08011020

问题:

etc下的passwd、shadow、group等文件及文件格式解释

id

id username

文件系统

从/开始的树状结构

绝对路径:/打头

相对路径:当前目录之下开始

当前目录:cd .

          cd ..

主目录

 ~用户名:本用户的主目录

 username,passwd,uid,gid,,home,shell:/etc/passwd,x--->/etc/shadow

 每个命令都对应一个可执行文件;shell会支持一些内部命令,没有文件。

ls /bin  可执行文件

 如bash ,csh,tcsh,ksh等;

clear命令,清屏幕;

 

 sleep 5睡觉

 

ls -l  利用长格式显示出相关信息

ls -F打标记(*表示可执行文件,@表示软连接或者符号连接,)---快捷方式

ls -a显示全部文件.    ..  包含隐藏文件一起显示.开头的是隐藏文件,其中包含.和..

ls -A  除了.和..之外都显示

ls -l

  -打头普通文件

  d打头目录文件

  l打头链接文件

  x结尾可执行文件

  p打头管道

 

 ls  -t -l与ls -l两者的区别,两者之间一个按字母一个是按时间来排序显示

 

 ls -R,列出当前目录开始的目录树

 ls -r

 ls -F

mkfifo abc

ln -s /bin/date da

ls -l

echo hello>ghi.jk

软链接:快捷方式;存放的是路径  ln -s

硬链接:同一文件对应多个名字  ln 

硬链接 跨设备不行

cp == copy

cp  /bin/zsh ~/Desktop/

当硬链接数量为0的时候,则真正的删除该文件;

硬链接一旦建立后,硬链接之间是相互平等的

rwx= read  write  execute

drwxrwxrwx

权限===》

自己|同组人|其他人

rm  abc

rm  bs da

如何更改权限

chmod  ugo

u代表自己

g代表同组人

o代表其他人

chmod  o-rx z删除其他人的rx权限

chmod  o+rx z增加其他人的rx权限

chmod  o=rwx z设置其他组人的rwx权限

chmod  o=-  z 设置其他组人的rwx权限为空

chmod  u-w,o+r,g+w  z

chmod  a+x  z,给所有人增加x权限

chmod  0644 z;注意:在c和c++中,以0开头的是一个8进制数

r----4   w----2  x---1   ----0权限数字化

权限可以用一个3位的8进制数来表示---》如700==》c语言编程中可以借鉴这种模式

文件的创建、删除、修改、复制

创建目录:

mkdir  da db dc建立3个并排的目录

mkdir  dd/de  XX

mkdir  dd

mkdir  dd/de

==>mkdir -p dd/de/dc创建多层的目录

ls -R显示所有的目录文件

touch创建空文件

touch f1  f2 f3同时创建3个空文件

touch  da/f4   db/f5在不同的目录下创建不同的文件

touch db/f6  db/f7  db/f8

===>cd db

 touch f6 f7 f8

cd ..

date命令

date > xyz重定向;将左边命令产生的输出写到右边的文件中去;会清空文件中的原有内容;

date >>xyz把左边命令产生的输出追加到右边的文件中,不会清空原文件中的原有内容;

cat xyz用命令来查看xyz的内容或者用vi来查看xyz的内容

pwd  > abc

cal显示当月的日历

cal  2012

cal 11 2010

echo  大家好

echo  大家好  >>  f10

echo  大家好才是真的好 >> f10;cat f10=====>重要在编辑脚本时很有效

date;sleep 5;date===>在设置识别裸设备时,速度可能比较慢,最好是init过程之前等待识别30秒

/dev/tty表示的是终端鼠标\键盘\显示器

date > /dev/tty===>编辑脚本时常用

date  > /dev/null==>黑洞文件,永远的空文件,空设备文件

如:ls -l  > /dev/null

 ls -l

mv  f1  dc  将f1文件移动到dc下

mv  f1  da dc将f1,da目录移动到dc下

mv  db  dc/d2将db移动到dc下并修改为d2;只有移动一个目录或文件的时候才能改名,如果移动多个是不能改名的

cp -r  包含目录一起复制

cp -i   interactive交互;   目录覆盖的时候无提示,有文件覆盖的时候才提示

rm -r可以删除文件和非空目录;但是删除目录时比较危险

rm本身是不删除目录的

rmdir只能用来删除空目录

rm -ri

字符链接软

ln -s:通过文件系统链接一个文件或者目录

link1-->inode 3561(data blocks/file2)-->file2--->inode 1282(data blocks)

硬链接

ln

在同一个文件系统上去链接文件

多个文件被硬性的链接到相同的inode number,涉及硬盘上的相同数据

如file1,file===》inode1282 (data blocks)

 dir1====>inode 4221(data blocks  file1=inode1282;file2=inode 1282)

ls

rm dc/f1  dc/f2  dc/f3

rm dc/f*

rm dc/*

通配符号

ls  -l  dc/*2

ls -l -d dc/*2

rm -r a*b*c

命令本身并不能处理通配符,是通过shell来处理的

?只能匹配一个任意字符

[]匹配指定范围内的一个字符,如[b-j]   [135abj]

[4-12]====>[4-1,2]

cat

man

head /etc/passwd;head可以看前10行,或者head -5,显示前5行

tail  默认看后10行,看后5行,tail -5

more分屏显示

less可以上下左右的任意翻看文件内容,也是分屏显示

vi

wc===word count统计数量;行数,单词数,字符数

wc -l只要行数,-w只要单词数  -c只要字符数

grep  字符串  文件

id

grep  -i  忽略大小写i=ignore case

grep -v查找不包含指定字符串的行

grep -v 01 /etc/passwd >tempxxx

more tempxxx

rm tempxxx

grep -v 01 /etc/passwd | more   把左边命令的输出当作一个文件直接交给右边的命令来处理。这就是管道

grep nologin /etc/passwd | wc -l

gedit全屏幕的编辑器

kate

vi==vim

有两种工作状态;1、初始的命令状态;2、插入状态

命令状态(初始)----i,a,o--->插入状态---<ESC>--->命令状态

----->底行模式---->:/?

vi

    k上

h左     l右

 j下

^行首      $行尾

G文件尾     1G文件首

第N行   NG

屏幕头H,屏幕中M,屏幕底L

下翻:ctrl+f 上翻 ctrl+b

w下一个单词开头

b上一个单词开头

e下一个单词末尾

i在光标当前位置插入

a在光标所在位置后插入

o在光标所在行下插入一空行

O在光标所在行上插入一空行

 

:set nu显示行号代码

: no nu 不显示行号

I跑行首添加

A跑行尾追加

x删除一个字符3x

dw删除当前词

3dw删除3个词

dd删除当前行

5dd删除5行

:5,10d删除5-10行

删除之后如果想恢复的话,使用u,undo

p粘贴在光标位置之后

P粘贴在光标位置之前

r替换一个字符

cw替换一个单词

cc替换一行

C替换从光标至行尾

yw拷贝词

yy 拷贝行

dw剪切词

dd剪切行

p当前行下粘帖

:1,2co3 拷贝行1,行2在行3之后

:4,5m6 移动行4,5在行6之后

复制某一个字符,yl

ps  -l

S=status

S睡眠状态   T挂起状态   R运行  Z 僵尸状态

挂起状态不会分时间片,只是一个后台任务摆着;

sleep 10

sleep 10 &可以后台执行

ps只显示本终端的进程+e可以显示所有的进程

ps -e -l | grep Z

ps -f 显示完整的命令

ps -p 3846根据进程的PID来跟踪进程

init进程,其PID总是为1;父进程为0(LINUX中是不存在的;UNIX中是存在的叫总调度)

jobs专门用来查看后台任务

调出后台任务到前台fg,不带参数表示把带+号的调用到前面来执行

也可以带fg+

把stopped的任务用bg在后台执行起来

终止一个任务ctrl+c也可以用kill

kill发送的是一个sigterm信号

如果是后台任务,kill也可以删除

jobs

kill  %1为了区分进程和任务编号,进程直接写数字,任务编号需要加%号

熟悉vi

grep

> |  ; * ? [] / ~ . ..

find可以搜索文件或目录

find  目录  条件 【命令,如何处理;默认print】----在指定的目录中进行搜索;

find .  -name  f1 在当前目录下搜索

find / -name  f1(name后面只能包含一个文件名)

find . -name f*这句是错误的。

eacho find . -name f*

find . -name "f*"

eacho find . -name "f*"

find . -name "*.cpp"  -exec cp{} d6 \;

这命令的意思是

find . -name "*.cpp" 找到所有的cpp文件

\;表示转义就表示符号本身;   ;号是命令的结束标志

-exec表示后面有个执行命令

{}表示前面的内容

find d6 -name "*.cpp" -exec rm {} ";"

who当前谁在线

who am i

users只关心用户的名字的情况下  users

who | grep 192.168.24.  显示出在24网段登录的用户

w可以知道谁在做什么?

who where when what

history显示出用过的所有的命令的列表

!编号即可以执行相关命令

history其命令存储在.bash_history中

du显示磁盘空间的使用情况

du -k

du -h

du -s只有综合

df查看剩余多少空间

ping

ifconfig

ifconfig -a

ftp

!ls -l

!ls

!lcd

!表示本地的

put

mput

get

mget

prompt把交互方式打开或者关闭;

asc表示传递模式设置成字符模式;尤其是在跨平台传输文本文件时

bin按照二进制模式来传输

 

locale设置编码语言

write聊天

mesg n不想聊天

env环境命令(环境变量)

PS1是来指定命令提示符的

path环境变量---为shell指定可查找命令的目录

命令不是在当前目录下找,而是在path指定的目录下去找

假设在path路径下有多个路径指向了同名的命令的话,可以用which来查看

如果像查询哪里有某个命令,可以通过whereis cal

PATH=$PATH:.

初始化文件:系统级和用户级

系统级/etc---可以针对所有用户

用户级----只针对自己,不同的shell用不同的初始化文件,看man bash或man csh

~/.bashrc

vi ~/.bashrc

source ~/.bashrc在当前终端必须先source下才能生效,其他终端自动生效

alias起一个别名如

alias c=clear

alias pl=‘ps -l’

 

vi my.sh

#!/bin/bash

echo 大家好

sleep 5

echo  I love u,baby。

sleep 5

date

source my.sh

chmod u+x my.sh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: