Linux下的基本操作

[b]1. 终端的最基本操作[/b]
ls # 显示当前文件夹下的内容
-a -l -R -d #所有文件 /详细信息/递归的显示所有目录和文件/不递归
cd .. / - # 进入上/上一次 文件夹
mkdir cp rm rmdir rm -r vim chmod pwd mv # 创建文件夹 复制/删除/删除空文件夹/删除文件夹 编辑/改变权限/查看当前目录/移动文件
mv 文件名 新文件名 #重命名

[b]其中的一些介绍[/b]
ls -l #显示的内容意思
这是第一列的意义: -l连接文件
-d目录文件
-普通文件 文本文件和二进制文件
[bcp]特殊文件(即b或c或p)
这是第二列到第十列的意思: 读写执行权限
- rwx rwx rwx 2 root root 1234 Jun 26 11:21 test.txt
1 2 3 4 5 6 7 8 9 10
1. 文件的类型
2. 拥有者对该文件的权限(read write execute)
3. 群组对该文件的权限
4. 其他人对该文件的权限
5. 与该文件[夹]的连接数目
6. 拥有者的用户名
7. 群组的名称
8. 文件大小
9. 创建日期
10. 文件[夹]名称

[b]2. 改变权限的命令:[/b]
1. chmod [-R] 750 filename/filelist 则是 111 101 000 改变各个用户的权限。如: chmod 755 /usr/local/* 将该文件夹下的文件赋予755权限
2. chmod [-R] [ugoa] [+-=] [rwx] filename/filelist

[b]3.进入root用户,如果遇到问题,那么重置其密码就ok拉。[/b]
$ su - root
Password:
su: Authentication failure
Sorry.
这时候输入
$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

[b]4.关机 重启机器[/b]
-h 关机
-r 重启
-t 过几秒后关机
shutdown -h now #关机
shutdown -h +10 #10分钟后关机
shutdown -h 10:12 #在10:12关机

[b]5.压缩和解压缩[/b]
tar -c 创建包 –x 释放包 -v 显示命令过程 –z 代表压缩包

tar -cvf benet.tar #
tar -xvf benet.tar
tar -zcvf benet.tar.gz #
tar -zxvf benet.tar.gz #

如 tar -zcvf desktop.tar.gz Desktop/ #当前在Desktop目录下,在这里使用了相对路径

(更多的参数查看man 或者 info)

[b]6. 一些文件目录的介绍[/b]
/dev 目录下存放的是系统的设备文件
/etc 配置文件的目录
/etc/profile 配置环境变量的文件
/etc/inittab 是系统启动时需要加载的文件 #这是RedHat或者Debian中的配置文件
0停止系统
6重启系统
3文字界面启动
5图形界面启动
1单用户模式启动
/lib 系统库文件 /lib/modules/2.6.24-24-generic/kernel/drivers驱动模块
/usr/lib 应用程序使用的库

[b]7.Linux下一些重要的命令[/b]
在Linux下,有which, whereis,locate,find查找文件的命令。

(1) which #which是基于PATH环境变量来查询的,可以用于查询可执行文件

# which passwd
/usr/bin/passwd
#

(2) whereis [-bmsu]
-b 只查找二进制文件
-m 只找在说明文件manual路径下的文件
-s 只找source源文件
-u 没有说明文档的文件

# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1.gz
# whereis -b passwd
passwd: /usr/bin/passwd /etc/passwd
#

(3)locate [目录名称]
locate查找速度要远快于find命令,因为locate是基于数据库的查询。这个命令会将目录或者名称中包含要查找名称的所有文件全部列出。但是这要根据系统数据库的更新有关。如果希望数据库马上更新,则执行updatedb来进行。需要注意的是locate不支持正则表达式。
如:
# locate bing.h
/root/Desktop/new files/bing.h
/root/ns-allinone-2.34/NS_234/ns-2.34/apps/bing.h
/root/ns-allinone-2.34/ns-2.34/apps/bing.h
# locate root
。。。。(非常多的内容)

(4)find
通过man命令查看find来找到find的参数,格式为:
find [路径] [参数]。列举几个比较常用的如下:
-atime n #将n*24小时内被访问(access)的文件[夹]列出
-ctime n #将n*24小时内被创建、改变(create)的文件[夹]列出
-mtime n #将n*24小时内被修改(modify)的文件[夹]列出
-newer file #将比file文件还要新的文件列出

-gid n #将gid为n的文件[夹]列出
-uid n #将uid为n的文件[夹]列出
-group name #将群组为name的文件[夹]列出
-user name #将g用户名为name的文件[夹]列出
-name file #根据名字来查找(支持正则表达式)
-type type(其中常用的有 b二进制 d目录 l链接)

[b]8.管道问题[/b]
管道命令是用 | 来作为标志符。下面介绍几个常用的管道配合命令
(1)wc
wc [-lmw]
-l 多少行
-m 多少字符
-w 多少字

cat /etc/passwd | wc -l

(2)grep

(3)

(4)

(5)
(6)
(7)

[b]9.常识[/b]
(1)tar unix打包
rpm RedHat公司
dpkg Debian提供

(2)man [command] #用来查看命令说明
info [command] #用来查看命令说明

(3)ps -A #查看当前进程
kill 进程号 #杀掉进程

(4)用户组类型 : u创建者 g组用户 o其他用户 a所有用户
(5)scp命令(如果有自己的服务器的话)
scp linux.zip aaa@210.30.12.12:~/ #将当前文件夹下的linux.zip文件上传到根目录
scp aaa@210.30.12.12:~/linux.zip #将根目录下的linux.zip文件下载到当前文件夹
(6)查看空间大小
fdisk -l(查看硬盘的空间)
df -h (查看文件的分配情况及大小分布)
fsck (检查硬盘 当系统非正常关机的时候使用)
(7)
ifconfig #端口配置 ip地址等
netstat #网络连接状态
(8)
sudo rmmod pcspkr #去掉linux的烦人的蜂鸣
[b]10. 重定向[/b]
三种输出输入状况:
0标准输入,<
1标准输出 1>(1可省略)
2错误输出 2>

> #将内容重定向到另一个地方,是覆盖掉原来的内容
>>#将内容重定向到另一个地方,是附加在后面
2>#将错误信息重定向到另一个地方
< #重定向输入

如ls -al 1>list.txt 2>&1 #将错误信息和正确信息都输入到list.txt中
ls -al 1> list.txt 2>/dev/null#将错误信息丢弃,将正确信息重定向到list.txt

[b]11. Linux下的正则表达式[/b]

^ 开始
$ 结束
? 单个字符
* 随意任意几个
\ 转义符
[list] 列表中的一个字符
[range] 列表范围中的一个字符
[^list] 非[list]字符
[^range] 非[range]字符
\{n\} 正好匹配n次
\{m,n\} 匹配m-n次


[b]12.shell 脚本基础[/b]
bash **.sh 或者 ./**.sh #这样是执行shell脚本
echo "hello world"
"#“这是注释符号
-n #不换行输出 如:echo -n "hello world"
export #可以定义全局变量
expr 4 + 5 #求值算术表达式 4和5之间有空格的 或者如下
$((expression))
read #读入用户的输入
test [] #条件判断
exit #退出shell脚本
-eq ne gt ge lt le #等于 不等于 大于 大于等于 小于 小于等于
=: !=: -z -n #字符串测试 等于 不等于 长度为0 长度不为0
if elif else fi
case ... esac ;; #是以;;结束每个case的
* #通配符 如:
case $choice in
1) ...;;
2) ...;;
3) ...;;
*) ...;;
#文件测试命令如下:
-e #文件存在则为真
-r #文件存在且可读则为真
-w #文件存在且可写则为真
-x #文件存在且可执行则为真
-s #文件存在且至少有一个字符则为真
-d #文件存在且为目录则为真
-f #文件存在且为普通文件则为真
-c #文件存在且为字符型特殊文件则为真
-b #文件存在且为块特殊文件则为真
-a 和 -o 或 !非
while语句:
while <条件>
do
<命令>
done
until语句:
until <条件> #先执行,然后判断条件
for语句:
for variable_name in <list_of_values>
do
...
done
break #如c中的一样
continue#如c中的一样
wc tempfile & #wc 用来计算字符数量 &在后台执行
ps #显示进行信息
kill #杀掉进程
time #用来计算时间的,如: time find /etc iname "passwd" 2>/dev/null,计算find的时间并将错误信息放到null中
(|) #通过管道来执行unix和linux命令,如:
ls -l | more #分页显示当前文件夹下的详细信息
date #显示日期时间
env #显示环境变量
#shell的语言可以直接在终端使用,如 echo等
`` #是执行命令,如,要在终端输入命令显示日期时间的话,可以这样:
echo "The date is `date`"


[b]13.用来查看文件的内容[/b]
cat #从第一行到最后一行显示
tac #从最后一行到第一行显示
more#以可操作的方式显示内容,但不能向前翻页
less#以可操作的方式显示内容,能向前翻页
head [-n number]#显示前几行
tail [-n number]#显示后己行
nl #显示的时候显示行号。等于cat -n
od #用于读取非ASCII数据文件,例如二进制文件。

[b]14. 时间的一些操作 [/b]
date 用来显示时间
cal 用来显示日期
使用man date 或者 man cal可以查看命令参数的要求。列举几例如下:
# date +%Y-%m-%d\ %H:%M:%S
2010-09-24 09:49:49
# cal 2 1988
February 1988
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29

[b]15.Linux的用户群组概念非常重要,这对于文件管理来说,提供了极大的便利。[/b]
useradd username #增加用户 /etc/passwd普通用户可以读
passwd username #增加密码 /etc/shadow超级用户可以读
userdel username #删除用户
-f This option forces the removal of the user, even if she is still logged in.
-r Files in the user’s home directory will be removed along with the home directory itself and the user’s mail spool.

groupadd [-g gid] [-r]#增加群组
  -g :后面接某个特定的 GID ,用来直接给予某个 GID ~
  -r :建立系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关。
groupdel [groupname]#删除群组

su是在用户间切换,可以是从普通用户切换到root用户,也可以是从root用户切换到普通用户。
如果当前是root用户,那么切换成普通用户test用以下命令:
su - test
如果要切换回root用户,那么用以下命令:
su 或 su -
用户名root可以省略不写。
切换回root用户时要输入root密码,很烦。我一般直接输入exit命令来切换回root用户,这样就不用输入密码。

下面是改变文件或者目录所在的群组或者拥有者。(chown可以包含chgrp)
chgrp 群组名称 文件或目录
chown [-R] 帐号名称 文件或目录
chown [-r] 帐号名称:群组名称 文件或目录

如:
# ls -l paul.txt
-rw-r--r-- 1 root root 40 09-24 10:21 paul.txt
# chown paul:test paul.txt
# ls -l paul.txt
-rw-r--r-- 1 paul test 40 09-24 10:21 paul.txt


(更加详细的内容 查看man 或者 info)

[b]16.建立快捷方式[/b]
在Linux下,连接类似于Windows下的快捷方式,但Linux下的连接分为硬连接和符号连接两种。
在Linux下,系统要读取某个文件时,先读取inode table,然后根据信息到inode连接到的block块中去找文件。而硬连接实际上是又建立了一个inode表项。因此,Linux硬连接有两个限制:
(1) 不能跨文件系统
(2) 不能链接目录(因为目录只占用inode表项,不占有Block)

ln [-s] [源文件] [目标文件](如果没有-s,那么就是硬连接)

如:
# ln -s yuanbo/path path.ln
# ln yuanbo/path path.d
# ls -l path*
-rw-r--r-- 2 root root 324 09-08 16:26 path.d
lrwxrwxrwx 1 root root 11 09-24 11:06 path.ln -> yuanbo/path


17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值