非常全面的Linux知識點總結
$1 我的Linux需求
Linux博大精深。我只在此討論一些我對線上Linux機器維護人員的基本需求,比如裝機,加硬碟,配網路。只討論CentOS 6,或者類似的RHEL,當然Ubuntu也可以此類推,但是一些新特性不予討論,因為我不懂,比如CentOS 7的xfs不予討論,並不是說xfs不好,而是以目前我的Linux水平需要更新很多xfs的知識,駕馭需要時間。CentOS 7將ifconfig,netstat等原來常用的命令也幹掉了,用ip,lsof替換是更加好的工具,但是大部分的線上機器都應該還沒有更新到CentOS 7。下面我們以CentOS 6作為基礎,談我認為最基本的4點。
$1.1 最小化安裝
CentOS有一個minimal版本,相對於標準版去掉了很多Service,比如Network Manager,安裝最小版本以後的網路配置是需要admin進行寫配置檔案的。我個人認為這樣是比較好的,因為這樣才能知道Linux核心真正關心的是哪些配置檔案,直達核心。一些必要的監控工具,完全可以通過yum install來完成。作為線上機器,還是最小化安裝,做到能不開的服務就不開,能關掉的埠就關掉,這樣既能將寶貴的硬體資源留下來給應用程式,也能夠做到更加的安全。
$1.2 足夠安全
除了將能關的埠關掉,能不用的服務關掉以外,安全還需要做到特定的服務只能訪問特定的內容。哪怕是root賬戶,不能訪問的檔案和資料夾還是不能訪問,更加不能操作。開啟SELinux以後,能夠做到在不修改SELinux的情況下,指定的服務只能訪問指定的資源。對於ssh要做到關閉賬戶密碼登入,只能通過祕鑰登入,這樣在保證祕鑰不被盜用的情況下是最安全的。
$1.3 資源按需排程
我們經常會遇到這樣一個問題,假設將磁碟sda掛載到/var目錄,但是由於log太多或者上傳的檔案等等其他因素將硬碟吃光了,再建立一塊sdb磁碟就無法掛載到/var目錄了,其實Linux自帶的lvm已經解決了這個問題,並且CentOS預設就是用lvm來管理磁碟的。我們需要學會如何格式化一塊硬碟為lvm,然後掛載到對應目錄,在空間被吃光前能夠新增一塊硬碟就自動擴容。
$1.4 網路監控
Linux本地要利用好net_filter,也就是iptables,來規劃服務哪些網路流量,拋棄哪些網路流量。以及在進行組網的時候需要用router來進行閘道器的建立,在遇到網路問題的時候通過netstat來檢視網路訪問異常。網路這塊內容很多很雜,各種引數,TCP/IP協議棧等等,但是往往問題還就是出在網路這塊,所以要給與高度的關注。
$2 Linux的理念與基礎
小談幾點我對Linux的認識。
$2.1 Linux的檔案系統
Linux將所有的事物都看成檔案,這一點人盡皆知。我想說的是,除了傳統的ext檔案系統,Linux在抽象不同的資源的時候其實有各種不同的檔案系統,都是從需求和使用出發,比如proc檔案系統就是針對程序的抽象,使得修改對應程序的值就可以直接改變程序的行為。再比如,對於遠端ssh登入的pts裝置,Linux有對應的devpts檔案系統。看下面表哥的type一欄。
file_system | dir | type | options | dump | pass |
---|---|---|---|---|---|
/dev/mapper/VolGroup-lv_root | / | ext4 | defaults | 1 | 1 |
UUID=xxx | /boot | ext4 | defaults | 1 | 2 |
/dev/mapper/VolGroup-lv_swap | swap | swap | defaults | 0 | 0 |
tmpfs | /dev/shm | tmpfs | defaults | 0 | 0 |
devpts | /dev/pt | devpts | gid=5,mod=620 | 0 | 0 |
sysfs | /sys | sysfs | defaults | 0 | 0 |
proc | /proc | proc | defaults | 0 | 0 |
$2.2 Linux的許可權管理
Linux的-rwxrwxrwx
許可權管理也可謂人盡皆知,其實Linux自己也意識到了這樣的許可權管理所帶來的一些侷限性。首先rwx的許可權管理是基於使用者和組的,並且只是大致的分為owner|group|other
這三類,無法再作更加細粒度的劃分。有鑑於此,Linux目前預設是有ACL(Access Control List)管理的,所謂ACL就是能夠提供更加細粒度的使用者和組管理,比如可以明確哪個user可以有什麼樣的許可權。如下示例
getfacl abc # file: abc # owner: someone # group: someone user::rw- user:johny:r-x group::r-- mask::r-x other::r--
而SELinux提供了不基於使用者與組的許可權管理,SELinux是基於應用程式的,什麼樣的應用程式可以使用什麼資源,對於這些資源這個應用程式能幹嘛,這個就是SELinux的管理方式。
$2.3 Linux上的Service
Linux上的Service組織得非常清晰,/etc/init.d/
裡面包含了所有的Service啟動指令碼,對應的二進位制檔案在/usr/bin 、 /usr/sbin 、 /usr/local/bin
等目錄下,一般而言配置檔案在/etc/app_name
下,還有一個chkconfig的工具來管理各個runlevel
下需要啟動的Service。這樣的約定俗成使得管理員在配置和使用的時候非常方便。Linux標準的Service都會將log記錄到/var/log/messages
中,使得系統管理員不需要翻閱各種log,直接在/var/log/messages
中就可以找到絕大部分的log來判斷當前系統是否正常。更甚者,syslogd
被rsyslogd
替換以後,可以將/var/log/messages中的內容通過UDP傳送到遠端用專業的log分析工具進行分析。我們需要學習Linux上Service的這些優秀的程式設計習慣和技巧。
$3 磁碟
根據$1中的需求,下面是我記錄的一些基本的磁碟操作。
df -lah
檢視磁碟的使用情況fdisk -l
檢視插入到磁碟驅動器中的硬碟; sd(a,b,c)(1,2,3),其中a是第一塊磁碟,b是第二塊磁碟,1,2,3表示磁碟上的主分割槽,最多4個。用fdisk從磁碟建立分割槽並且格式化。- LVM(logical volume manager),主要就是滿足加硬碟就能直接寫資料的功能,而不會出現磁碟滿了,新的磁碟只能掛載其他目錄的情況。lvm有幾個概念,VG, PV。將磁碟lvm格式化,建立PV, 建立VG,將建立的PV加入VG,然後在VG中建立lvm,然後就可以動態增加大小了。注意,將磁碟格式化為lvm,但是lv的格式化需要用ext,然後才能mount上去。參考這篇文章CentOS 6 卷組掛載硬碟教程
mount -t type(ext4|nfs) /dev/sdxn /path/dir
來掛載。如果要重啟生效,必須將掛載資訊寫入到/etc/fstab
- 磁碟IO效率(IOPS)需要用
vmstat
,top
等工具來檢視。和效能相關的調優和監控留待後續文章詳述。
$4 網路
網路的坑很多,需要把網路搞通沒個3,4年很難。下面從網路的配置檔案著手,簡單理一下網路方面的內容。網路最難的方面應該是如何搭建一個合理的高效的區域網或者都會網路,這個需要有專業的網路知識。
$4.1 配置檔案
/etc/hosts
私有IP對應主機名/etc/resolv.conf
nameserver DNS的IP/etc/sysconfig/network
其中NETWORKING=要不要有網路,HOSTNAME=主機名,NETWORKING_IPV6=支援ipv6否/etc/sysconfig/network-scripts/ifcfg-xxx
其中DEVICE=網絡卡代號,BOOTPROTO=是否使用dhcp,HWADDR,IPADDR,NETMASK,ONBOOT,GATEWAY
$4.2 與網路有關的一些命令
router -n
檢視路由的命令,特別是要看帶G的,表示gateway,而帶U的表示up。netstat -anp
檢視所有啟動的tcp
,udp
,unix stream
的應用程式,以及他們的狀態,具體可以參考TCP/IP,JavaSocket簡單分析一文。
$5 安全
$5.1 PAM
PAM只需要簡單瞭解就行,是一個可插拔的認證模組。我的理解是:開發Linux的極客們搞出來的可複用的一個元件。舉個例子,現在有一個app,想要驗證當前的登入使用者是否有許可權操作某個目錄,那麼在PAM裡面有現成的模組,app只需要include
這個模組,給出一個配置檔案,就可以了。有一個非常好的關於PAM的視訊教程,請看這裡
- PAM是應用程式用來進行身份驗證的。早期的身份驗證和應用程式本身耦合,後來把身份驗證單獨抽出來,通過PAM來進行管理
/etc/pam.d/xxx
是能用pam來進行管理的應用程式PAM設定,在安裝應用程式的時候安裝。/etc/security/mmm
,/lib/security/pam_mmm
是一套。
$5.2 SELinux
SELinux也有一個非常好的視訊教程,請看這裡
getenforce
來檢視SELinux是否被啟用/etc/sysconfig/selinux enforcing
啟用SELinux- SELinux對“執行程式”配置和檢查其是否有許可權操作“物件”(檔案系統),而普通的ACL(rwx)就是根據檔案所屬owner及其組來判斷。SELinux是看可執行檔案的type和目錄檔案的type是否相容,來決定可執行檔案是否能操作資源
$5.3 防火牆
下面是學習時候的一些摘錄。特別一點,要開啟核心引數net.ipv4.ip_forward=1
,在/etc/sysctl.conf
檔案中,用sysctl -p
來儲存。所謂ip_forward指的是核心提供的從一個iface到另外一個iface的IP包轉發,比如將IP包從192.168.1.10的eth0轉發到10.0.0.123的eth1上。防火牆配置是需要專業技能的。
- tcp_wrapper需要libwrap.so的支援,可執行檔案在
ldd bin_file
出來沒有libwrap.so
的,都不能用tcp_wrapper - iptables是按照規則進行短路判斷的,即 滿足條件1->執行action1->結束
- iptables-save來更加清晰的檢視
- 先刪掉全部規則,然後新增,比較簡單。新增的時候,先新增策略,再新增細部規則。一般來講,我們需要關注的是filter這個表的INPUT與OUTPUT
- iptables -A(I) INPUT(OUTPUT,FORWARD) -i(o) iface -p tcp(ump,imp,all) -s (!)source -d dest -j ACCEPT(REJECT,DROP), 還支援的引數 —dport —sport
$6 工具
$6.1 CPU
top
特別注意loadps aux
和ps -ef
特別注意程序狀態vmstat 1
表示每秒採集一次sar -u 1
檢視所有cpu相關的執行時間
$6.2 Memory
free
vmstat 1
注意其中的swap ram block之間的關係sar -r 1
記憶體使用率sar -W 1
檢視swap,查詢是否由於記憶體不足產生大量記憶體交換
$6.3 IO
lsof -i:port
查詢哪個程序佔用了這個埠號lsof -u username
使用者開啟的檔案lsof -p pid
程序開啟的檔案
雜項
關於安裝好系統之後的執行指令碼,這邊有一個參考
#!/bin/bash ################################################# # author huachao # date 2015-12-09 # email [email protected] # web blog.huachao.me ################################################# flagFile="/root/centos6-init.executed" precheck(){ if [[ "$(whoami)" != "root" ]]; then echo "please run this script as root ." >&2 exit 1 fi if [ -f "$flagFile" ]; then echo "this script had been executed, please do not execute again!!" >&2 exit 1 fi echo -e "\033[31m WARNING! THIS SCRIPT WILL \033[0m\n" echo -e "\033[31m *1 update the system; \033[0m\n" echo -e "\033[31m *2 setup security permissions; \033[0m\n" echo -e "\033[31m *3 stop irrelevant services; \033[0m\n" echo -e "\033[31m *4 reconfig kernel parameters; \033[0m\n" echo -e "\033[31m *5 setup timezone and sync time periodically; \033[0m\n" echo -e "\033[31m *6 setup tcp_wrapper and netfilter firewall; \033[0m\n" echo -e "\033[31m *7 setup vsftpd; \033[0m\n" sleep 5 } yum_update(){ yum -y update #update system at 5:40pm daily echo "40 3 * * * root yum -y update && yum clean packages" >> /etc/crontab } permission_config(){ #chattr +i /etc/shadow #chattr +i /etc/passwd } selinux(){ sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/sysconfig/selinux setenforce 1 } stop_services(){ for server in `chkconfig --list |grep 3:on|awk '{print $1}'` do chkconfig --level 3 $server off done for server in crond network rsyslog sshd iptables do chkconfig --level 3 $server on done } limits_config(){ cat >> /etc/security/limits.conf <<EOF * soft nproc 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535 EOF echo "ulimit -SH 65535" >> /etc/rc.local } sysctl_config(){ sed -i 's/net.ipv4.tcp_syncookies.*$/net.ipv4.tcp_syncookies = 1/g' /etc/sysctl.conf sed -i 's/net.ipv4.ip_forward.*$/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf cat >> /etc/sysctl.conf <<EOF net.ipv4.tcp_max_syn_backlog = 65536 net.core.netdev_max_backlog = 32768 net.core.somaxconn = 32768 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_mem = 94500000 915000000 927000000 net.ipv4.tcp_max_orphans = 3276800 net.ipv4.ip_local_port_range = 1024 65535 EOF sysctl -p } sshd_config(){ if [ ! -f "/root/.ssh/id_rsa.pub" ]; then ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys chmod 600 /root/.ssh/authorized_keys fi #sed -i '/^#Port/s/#Port 22/Port 65535/g' /etc/ssh/sshd_config sed -i '/^#UseDNS/s/#UseDNS no/UseDNS yes/g' /etc/ssh/sshd_config #sed -i 's/#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config sed -i 's/#PermitEmptyPasswords yes/PermitEmptyPasswords no/g' /etc/ssh/sshd_config sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config /etc/init.d/sshd restart } time_config(){ #timezone echo "TZ='Asia/Shanghai'; export TZ" >> /etc/profile # Update time if [! -f "/usr/sbin/ntpdate"]; then yum -y install ntpdate fi /usr/sbin/ntpdate pool.ntp.org echo "30 3 * * * root (/usr/sbin/ntpdate pool.ntp.org && /sbin/hwclock -w) &> /dev/null" >> /etc/crontab /sbin/service crond restart } iptables(){ cat > /etc/sysconfig/iptables << EOF # Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :syn-flood - [0:0] -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -p icmp -m limit --limit 100/sec --limit-burst 100 -j ACCEPT -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j syn-flood -A INPUT -j REJECT --reject-with icmp-host-prohibited -A syn-flood -p tcp -m limit --limit 3/sec --limit-burst 6 -j RETURN -A syn-flood -j REJECT --reject-with icmp-port-unreachable COMMIT EOF /sbin/service iptables restart source /etc/profile } other(){ # initdefault sed -i 's/^id:.*$/id:3:initdefault:/' /etc/inittab /sbin/init q # PS1 #echo 'PS1="\[\e[32m\][\[\e[35m\]\u\[\e[m\]@\[\e[36m\]\h \[\e[31m\]\w\[\e[32m\]]\[\e[36m\]$\[\e[m\]"' >> /etc/profile # Wrong password five times locked 180s sed -i '4a auth required pam_tally2.so deny=5 unlock_time=180' /etc/pam.d/system-auth } vsftpd_setup(){ yum -y install vsftpd mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak touch /etc/vsftpd/chroot_list setsebool -P ftp_home_dir=1 cat >> /etc/vsftpd/vsftpd.conf <<EOF # normal user settings local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list local_max_rate=10000000 # anonymous settings anonymous_enable=YES no_anon_password=YES anon_max_rate=1000000 data_connection_timeout=60 idle_session_timeout=600 # ssl settings #ssl_enable=YES #allow_anon_ssl=NO #force_local_data_ssl=YES #force_local_logins_ssl=YES #ssl_tlsv1=YES #ssl_sslv2=NO #ssl_sslv3=NO #rsa_cert_file=/etc/vsftpd/vsftpd.pem # server settings max_clients=50 max_per_ip=5 use_localtime=YES dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd tcp_wrappers=YES #banner_file=/etc/vsftpd/welcome.txt dual_log_enable=YES pasv_min_port=65400 pasv_max_port=65410 EOF chkconfig --level 3 vsftpd on service vsftpd restart } main(){ precheck printf "\033[32m================%40s================\033[0m\n" "updating the system " yum_update printf "\033[32m================%40s================\033[0m\n" "re-config permission " permission_config printf "\033[32m================%40s================\033[0m\n" "enabling selinux " selinux printf "\033[32m================%40s================\033[0m\n" "stopping irrelevant services " stop_services printf "\033[32m================%40s================\033[0m\n" "/etc/security/limits.config " limits_config printf "\033[32m================%40s================\033[0m\n" "/etc/sysctl.conf " sysctl_config printf "\033[32m================%40s================\033[0m\n" "sshd re-configuring " sshd_config printf "\033[32m================%40s================\033[0m\n" "configuring time " time_config printf "\033[32m================%40s================\033[0m\n" "configuring firewall " # iptables printf "\033[32m================%40s================\033[0m\n" "someother stuff " other printf "\033[32m================%40s================\033[0m\n" "done! rebooting " touch "$flagFile" sleep 5 reboot } main
相關推薦
非常全面的Linux知識點總結
$1 我的Linux需求 Linux博大精深。我只在此討論一些我對線上Linux機器維護人員的基本需求,比如裝機,加硬碟,配網路。只討論CentOS 6,或者類似的RHEL,當然Ubuntu也可以此類推,但是一些新特性不予討論,因為我不懂,比如CentOS 7的xfs不予討
Linux知識點總結之磁碟儲存 1.1 磁碟的基本組成結構
磁碟的基本組成結構 ①磁頭 ②盤面 ③磁軌 ④柱面 ⑤扇區 ①磁頭 硬碟儲存原理: >>>用資料的控制電路通過硬碟讀寫頭去改變磁碟表面上極細微的磁性粒子簇的N/S極來加以儲存 >>>刪除資料即刪除對此資料的索引,不
Linux知識點總結之磁碟儲存 1.2 磁碟儲存結構和分割槽
磁碟儲存結構和分割槽 ①主引導扇區的結構 ②磁碟引導基本過程 ③為什麼Linux作業系統只有四個分割槽 ④為什麼一個擴充套件分割槽可以劃分成多個邏輯分割槽 ⑤如何對磁碟分割槽 ⑥新增硬碟步驟 ⑦生產壞境分割槽建議 ⑧Linux為什麼要分割槽和格式化
Linux知識點總結之磁碟儲存 1.3RAID技術
RAID技術 RAID0:把讀寫速度做到極致 RAID1:把安全做到極致 RAID2(淘汰) RAID3(面臨淘汰) RAID4(淘汰) RAID5(主流) RAID01:先條帶化再映象(很少使用) RAID10——高可靠性高效能(常用) RAID技
linux知識點總結
系統管理 接口 min out 鏈接 幫助文檔 文件 遠程主機 clas p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 19.0px; font: 13.0px "Helvetica Neue"; color: #
鳥哥Linux私房菜知識點總結3到5章
centos 啟動 學會 運行 lin inux 格式 開機流程 十分鐘 感覺自己對Linux的理解一直不夠,所以近期翻看了一本《鳥哥的Linux私房菜》。這是一本基礎的書,萬丈高樓平地起,會的不多但能夠學。這是我整理的一些知識點,盡管非常基礎。希望和大家共同交流。
linux學習—shell腳本知識點總結
本地變量 刪除 blob 日期 $0 返回結果 生效 -o 不能 Shell腳本 --Shell腳本有點像早期的批處理文件,將一些命令匯總起來一次執行,但Shell有更強大的功能,可以類似於程序的編寫,不需要編譯就能執行,使用起來很方便,可以簡化我們日常的管理工作。目錄什麽
Linux學習—磁盤管理知識點總結
文件類型 字段 block 還需 ast host 所在 替換 分區信息 磁盤管理目錄設備文件磁盤介紹磁盤分區創建磁盤分區同步分區表文件系統一、設備文件 設備文件關聯至設備驅動程序,用戶通過操作這些設備文件間接管理對應的硬件設備 一個設備的名稱表示整個磁盤,而分
Linux運維學習筆記-目錄知識點總結
沒有權限 sage lsp ada .com ifcfg-eth post 加載 內存信息 目錄知識點總結: Note: 1.創建一個/server/scripts目錄,用於存放腳本(命令:mkdir -p /server/scripts) 2.安裝軟件時,安裝路徑
2018年秋招面試常見Linux運維知識點總結
Linux中常見命令: ping命令:可測試網路是否通暢。ping命令使用的是網路層的ICMP協議,但從命令本身來看是屬於第七層應用層。 traceroute:電腦網路工具,可顯示資料包在IP網路經過的路由器的IP地址。 iostat命令可以檢視磁碟IO狀態。
linux部分知識點總結
斜杠 ifconf star 跨分區 知識點總結 文件夾 grep 文件的 改ip 絕對路徑:以正斜桿開頭,完整的文件的位置路徑,可用於任何想指定一個文件的時候。 相對路徑:不以斜杠開頭,指定相對於當前工作目錄或某目錄的位置。硬鏈接:ln 目標文件名 鏈接名,軟連接: l
MySQL/Oracle資料庫優化總結(非常全面)
MySQL資料庫優化的八種方式(經典必看) 引言: 關於資料庫優化,網上有不少資料和方法,但是不少質量參差不齊,有些總結的不夠到位,內容冗雜 偶爾發現了這篇文章,總結得很經典,文章流量也很大,所以拿到自己的總結文集中,積累優質文章,提升個人
鳥哥Linux私房菜知識點總結0到2章
感覺自己對Linux的理解一直不夠,所以最近翻看了一本《鳥哥的Linux私房菜》。這是一本基礎的書,萬丈高樓平地起,會的不多但可以學。這是我整理的一些知識點,雖然很基礎。希望和大家共同交流。 第0章計算機概述 1、計算機主要有三大部分組成:a.輸入部分,包括鍵盤,滑鼠。
鳥哥Linux私房菜知識點總結8到9章
最近翻看了一本《鳥哥的Linux私房菜》。這是一本基礎的書,萬丈高樓平地起,會的不多但可以學。這是我整理的一些知識點,雖然很基礎。希望和大家共同交流。第8章Linux磁碟與檔案系統管理 一、Linux磁碟管理 1、檔案系統通常會將兩部分資料分別放在不同的塊中,許可權與屬性放
鳥哥Linux私房菜知識點總結6到7章
最近翻看了一本《鳥哥的Linux私房菜》。這是一本基礎的書,萬丈高樓平地起,會的不多但可以學。這是我整理的一些知識點,雖然很基礎。希望和大家共同交流。 第6章主機規劃與磁碟分割槽 1、在進行團隊開發資源時,使用者組是很有用的一個功能。 2、Linux檔案屬性, 如:-r
linux 驅動知識點總結
1. 什麼是workqueue Linux中的Workqueue機制就是為了簡化核心執行緒的建立。通過呼叫workqueue的介面就能建立核心執行緒。並且可以根據當前系統CPU的個 數建立執行緒的數量,使得執行緒處理的事務能夠並行化。workqueue是核心中實現簡單而有效的機制,他顯然簡化了核心
後臺開發知識點總結(一、Linux和OS)
偶然在知乎上看到想要從事linux後臺開發需要的能力集錦,總結的挺全面的,鑑於自己貧弱的記憶力,還是在這裡總結一下供以後檢視,順便檢驗一下自己。 1、 命令:netstat tcpdump ipcs ipcrm 這四個命令的熟練掌握程度基本上能體現實際開發和除錯程式的
知識點--linux--不斷總結
ll顯示的是位元組,可以使用-h引數來提高檔案大小的可讀性,另外ll不是命令,是ls -l的別名 ls -al 是以位元組單位顯示檔案或者資料夾大小; 位元組b,千位元組kb, 1G=1024M=1024*1024KB=1024*1024*1024B 通常會加引數h來直觀顯示大小,會使用G、
關於QT的系統總結(非常全面)
編譯環境與開發流程 開發QT有兩種IDE可以使用,一種是使用 VS + Qt 的外掛,另一種就是使用QtCreator工具。前一種是微軟的工具,用的都比較多容易上手,缺點是訊號槽的支援不太好,需要手寫,不能自動生成,另外可能有中文編碼的問題。後一種是Qt的官方IDE,智慧提
Linux C語言程式設計-Linux資料庫操作--Linux上C語言操作SQLServer---知識點總結+例項
*********************注意:為了保證文章的完整性和全面性,作者會不定期對文章進行更新和修正********************* 1.freetds是什麼? freetds其實就是個軟體而且是一款開源軟體,而且這個軟體支援相當多的系統,比如